/** * It returns the template uri for job. * This method can be overridden by derived FlowToJobSpecCompiler classes. * @param flowSpec * @return template URI */ protected URI jobSpecTemplateURIGenerator(FlowSpec flowSpec) { // For now only first template uri will be honored for Identity return flowSpec.getTemplateURIs().get().iterator().next(); }
@VisibleForTesting protected static Spec disableFlowRunImmediatelyOnStart(FlowSpec spec) { Properties properties = spec.getConfigAsProperties(); properties.setProperty(ConfigurationKeys.FLOW_RUN_IMMEDIATELY, "false"); Config config = ConfigFactory.parseProperties(properties); FlowSpec flowSpec = new FlowSpec(spec.getUri(), spec.getVersion(), spec.getDescription(), config, properties, spec.getTemplateURIs(), spec.getChildSpecs()); return flowSpec; }
} else if (spec.getTemplateURIs().isPresent()) { flowConfig.setTemplateUris(StringUtils.join(spec.getTemplateURIs().get(), ",")); } else { flowConfig.setTemplateUris("NA");
@Test public void testDisableFlowRunImmediatelyOnStart() throws Exception { Properties properties = new Properties(); properties.setProperty(ConfigurationKeys.FLOW_RUN_IMMEDIATELY, "true"); properties.setProperty(ConfigurationKeys.JOB_SCHEDULE_KEY, TEST_SCHEDULE); properties.setProperty(ConfigurationKeys.JOB_GROUP_KEY, TEST_GROUP_NAME); properties.setProperty(ConfigurationKeys.JOB_NAME_KEY, TEST_FLOW_NAME); Config config = ConfigFactory.parseProperties(properties); FlowSpec spec = FlowSpec.builder().withTemplate(new URI(TEST_TEMPLATE_URI)).withVersion("version") .withConfigAsProperties(properties).withConfig(config).build(); FlowSpec modifiedSpec = (FlowSpec) GobblinServiceJobScheduler.disableFlowRunImmediatelyOnStart(spec); for (URI templateURI : modifiedSpec.getTemplateURIs().get()) { Assert.assertEquals(templateURI.toString(), TEST_TEMPLATE_URI); } Assert.assertEquals(modifiedSpec.getVersion(), "version"); Config modifiedConfig = modifiedSpec.getConfig(); Assert.assertFalse(modifiedConfig.getBoolean(ConfigurationKeys.FLOW_RUN_IMMEDIATELY)); Assert.assertEquals(modifiedConfig.getString(ConfigurationKeys.JOB_GROUP_KEY), TEST_GROUP_NAME); Assert.assertEquals(modifiedConfig.getString(ConfigurationKeys.JOB_NAME_KEY), TEST_FLOW_NAME); } }
Assert.assertEquals(flowSpec.getConfig().getBoolean(RUN_IMMEDIATELY_KEY), true); Assert.assertEquals(flowSpec.getConfig().getString("param1"), "a:b:c*.d"); Assert.assertEquals(flowSpec.getTemplateURIs().get().size(), 1); Assert.assertTrue(flowSpec.getTemplateURIs().get().contains(new URI(TEST_TEMPLATE_URI))); Assert.assertEquals(flowSpec.getConfig().getString("param2"),"value1-123"); Assert.assertEquals(flowSpec.getConfig().getString("param3"), "a:b:c*.d"); Assert.assertEquals(flowSpec.getTemplateURIs().get().size(), 1); Assert.assertTrue(flowSpec.getTemplateURIs().get().contains(new URI(TEST_TEMPLATE_URI)));
.withVersion(flowSpec.getVersion()); if (flowSpec.getTemplateURIs().isPresent() && templateCatalog.isPresent()) { jobSpecBuilder = jobSpecBuilder.withTemplate(flowSpec.getTemplateURIs().get().iterator().next()); try { jobSpec = new ResolvedJobSpec(jobSpecBuilder.build(), templateCatalog.get());
/** * It returns the template uri for job. * This method can be overridden by derived FlowToJobSpecCompiler classes. * @param flowSpec * @return template URI */ protected URI jobSpecTemplateURIGenerator(FlowSpec flowSpec) { // For now only first template uri will be honored for Identity return flowSpec.getTemplateURIs().get().iterator().next(); }
@VisibleForTesting protected static Spec disableFlowRunImmediatelyOnStart(FlowSpec spec) { Properties properties = spec.getConfigAsProperties(); properties.setProperty(ConfigurationKeys.FLOW_RUN_IMMEDIATELY, "false"); Config config = ConfigFactory.parseProperties(properties); FlowSpec flowSpec = new FlowSpec(spec.getUri(), spec.getVersion(), spec.getDescription(), config, properties, spec.getTemplateURIs(), spec.getChildSpecs()); return flowSpec; }
.withVersion(flowSpec.getVersion()); if (flowSpec.getTemplateURIs().isPresent() && templateCatalog.isPresent()) { jobSpecBuilder = jobSpecBuilder.withTemplate(flowSpec.getTemplateURIs().get().iterator().next()); try { jobSpec = new ResolvedJobSpec(jobSpecBuilder.build(), templateCatalog.get());