private int getPriority(final ExecutableFlow exflow) { final ExecutionOptions options = exflow.getExecutionOptions(); int priority = ExecutionOptions.DEFAULT_FLOW_PRIORITY; if (options != null && options.getFlowParameters() != null && options.getFlowParameters() .containsKey(ExecutionOptions.FLOW_PRIORITY)) { try { priority = Integer.valueOf(options.getFlowParameters().get( ExecutionOptions.FLOW_PRIORITY)); } catch (final NumberFormatException ex) { priority = ExecutionOptions.DEFAULT_FLOW_PRIORITY; logger.error( "Failed to parse flow priority for exec_id = " + exflow.getExecutionId(), ex); } } return priority; } }
Executor executor = null; if (options != null && options.getFlowParameters() != null && options.getFlowParameters().containsKey( ExecutionOptions.USE_EXECUTOR)) { try { final int executorId = Integer.valueOf(options.getFlowParameters().get( ExecutionOptions.USE_EXECUTOR)); executor = fetchExecutor(executorId);
/** * <pre> * Remove following flow param if submitting user is not an Azkaban admin * FLOW_PRIORITY * USE_EXECUTOR * @param userManager * @param options * @param user * </pre> */ public static void filterAdminOnlyFlowParams(final UserManager userManager, final ExecutionOptions options, final User user) throws ExecutorManagerException { if (options == null || options.getFlowParameters() == null) { return; } final Map<String, String> params = options.getFlowParameters(); // is azkaban Admin if (!hasPermission(userManager, user, Type.ADMIN)) { params.remove(ExecutionOptions.FLOW_PRIORITY); params.remove(ExecutionOptions.USE_EXECUTOR); } else { validateIntegerParam(params, ExecutionOptions.FLOW_PRIORITY); validateIntegerParam(params, ExecutionOptions.USE_EXECUTOR); } }
if (options.getFlowParameters().containsKey("alert.type")) { final String alertType = options.getFlowParameters().get("alert.type"); final Alerter alerter = alerterHolder.get(alertType); if (alerter != null) {
public static ExecutableFlow createExecutableFlow() throws IOException { final ExecutableFlow flow = TestUtils.createTestExecutableFlow("exectest1", "exec1"); flow.getExecutionOptions().getFlowParameters() .put(ExecutionOptions.FLOW_PRIORITY, "1"); flow.getExecutionOptions().getFlowParameters() .put(ExecutionOptions.USE_EXECUTOR, "2"); return flow; }
if (options.getFlowParameters().containsKey("alert.type")) { final String alertType = options.getFlowParameters().get("alert.type"); final Alerter alerter = alerterHolder.get(alertType); if (alerter != null) { if (options.getFlowParameters().containsKey("alert.type")) { final String alertType = options.getFlowParameters().get("alert.type"); final Alerter alerter = alerterHolder.get(alertType); if (alerter != null) {
ret.put("flowParam", options.getFlowParameters());
private ExecutableFlow createExecutableFlow(final String flowName, final int priority, final long updateTime, final int executionId) throws IOException { final ExecutableFlow execFlow = TestUtils.createTestExecutableFlow("exectest1", flowName); execFlow.setUpdateTime(updateTime); execFlow.setExecutionId(executionId); if (priority > 0) { execFlow.getExecutionOptions().getFlowParameters() .put(ExecutionOptions.FLOW_PRIORITY, String.valueOf(priority)); } return execFlow; }
@Test public void TestFilterNonAdminOnlyFlowParams() throws IOException, ExecutorManagerException, UserManagerException { final ExecutableFlow flow = createExecutableFlow(); final UserManager manager = TestUtils.createTestXmlUserManager(); final User user = manager.getUser("testUser", "testUser"); HttpRequestUtils.filterAdminOnlyFlowParams(manager, flow.getExecutionOptions(), user); Assert.assertFalse(flow.getExecutionOptions().getFlowParameters() .containsKey(ExecutionOptions.FLOW_PRIORITY)); Assert.assertFalse(flow.getExecutionOptions().getFlowParameters() .containsKey(ExecutionOptions.USE_EXECUTOR)); }
@Test public void TestFilterAdminOnlyFlowParams() throws IOException, ExecutorManagerException, UserManagerException { final ExecutableFlow flow = createExecutableFlow(); final UserManager manager = TestUtils.createTestXmlUserManager(); final User user = manager.getUser("testAdmin", "testAdmin"); HttpRequestUtils.filterAdminOnlyFlowParams(manager, flow.getExecutionOptions(), user); Assert.assertTrue(flow.getExecutionOptions().getFlowParameters() .containsKey(ExecutionOptions.FLOW_PRIORITY)); Assert.assertTrue(flow.getExecutionOptions().getFlowParameters() .containsKey(ExecutionOptions.USE_EXECUTOR)); }
private static void testEquals(final ExecutionOptions optionsA, final ExecutionOptions optionsB) { Assert.assertEquals(optionsA.getConcurrentOption(), optionsB.getConcurrentOption()); Assert.assertEquals(optionsA.getNotifyOnFirstFailure(), optionsB.getNotifyOnFirstFailure()); Assert.assertEquals(optionsA.getNotifyOnLastFailure(), optionsB.getNotifyOnLastFailure()); Assert.assertEquals(optionsA.getFailureAction(), optionsB.getFailureAction()); Assert.assertEquals(optionsA.getPipelineExecutionId(), optionsB.getPipelineExecutionId()); Assert.assertEquals(optionsA.getPipelineLevel(), optionsB.getPipelineLevel()); Assert.assertEquals(optionsA.isFailureEmailsOverridden(), optionsB.isFailureEmailsOverridden()); Assert.assertEquals(optionsA.isSuccessEmailsOverridden(), optionsB.isSuccessEmailsOverridden()); testDisabledEquals(optionsA.getDisabledJobs(), optionsB.getDisabledJobs()); testEquals(optionsA.getSuccessEmails(), optionsB.getSuccessEmails()); testEquals(optionsA.getFailureEmails(), optionsB.getFailureEmails()); testEquals(optionsA.getFlowParameters(), optionsB.getFlowParameters()); }
private int getPriority(final ExecutableFlow exflow) { final ExecutionOptions options = exflow.getExecutionOptions(); int priority = ExecutionOptions.DEFAULT_FLOW_PRIORITY; if (options != null && options.getFlowParameters() != null && options.getFlowParameters() .containsKey(ExecutionOptions.FLOW_PRIORITY)) { try { priority = Integer.valueOf(options.getFlowParameters().get( ExecutionOptions.FLOW_PRIORITY)); } catch (final NumberFormatException ex) { priority = ExecutionOptions.DEFAULT_FLOW_PRIORITY; logger.error( "Failed to parse flow priority for exec_id = " + exflow.getExecutionId(), ex); } } return priority; } }
Executor executor = null; if (options != null && options.getFlowParameters() != null && options.getFlowParameters().containsKey( ExecutionOptions.USE_EXECUTOR)) { try { final int executorId = Integer.valueOf(options.getFlowParameters().get( ExecutionOptions.USE_EXECUTOR)); executor = fetchExecutor(executorId);
/** * <pre> * Remove following flow param if submitting user is not an Azkaban admin * FLOW_PRIORITY * USE_EXECUTOR * @param userManager * @param options * @param user * </pre> */ public static void filterAdminOnlyFlowParams(final UserManager userManager, final ExecutionOptions options, final User user) throws ExecutorManagerException { if (options == null || options.getFlowParameters() == null) { return; } final Map<String, String> params = options.getFlowParameters(); // is azkaban Admin if (!hasPermission(userManager, user, Type.ADMIN)) { params.remove(ExecutionOptions.FLOW_PRIORITY); params.remove(ExecutionOptions.USE_EXECUTOR); } else { validateIntegerParam(params, ExecutionOptions.FLOW_PRIORITY); validateIntegerParam(params, ExecutionOptions.USE_EXECUTOR); } }
if(options.getFlowParameters().containsKey("alert.type")) { String alertType = options.getFlowParameters().get("alert.type"); Alerter alerter = alerters.get(alertType); if(alerter != null) {
if(options.getFlowParameters().containsKey("flow.num.job.threads")) { try{ int numJobs = Integer.valueOf(options.getFlowParameters().get("flow.num.job.threads")); if(numJobs > 0 && numJobs <= numJobThreads) { numJobThreads = numJobs; throw new ExecutorManagerException("Failed to set the number of job threads " + options.getFlowParameters().get("flow.num.job.threads") + " for flow " + execId, e);
if (options.getFlowParameters().containsKey("alert.type")) { final String alertType = options.getFlowParameters().get("alert.type"); final Alerter alerter = this.alerterHolder.get(alertType); if (alerter != null) {
ret.put("flowParam", options.getFlowParameters());
Map<String,String> flowParam = flow.getExecutionOptions().getFlowParameters(); if (flowParam != null && !flowParam.isEmpty()) { commonFlowProps = new Props(commonFlowProps, flowParam);
Map<String,String> flowParam = flow.getExecutionOptions().getFlowParameters(); if (flowParam != null && !flowParam.isEmpty()) { props = new Props(props, flowParam);