/** * Returns {@code true} if running in local mode. */ static boolean isLocal(ProgramOptions programOptions) { return !Boolean.parseBoolean(programOptions.getArguments().getOption(DISTRIBUTED_MODE)); }
/** * Returns {@code true} if running in local mode. */ static boolean isLocal(ProgramOptions programOptions) { return !Boolean.parseBoolean(programOptions.getArguments().getOption(DISTRIBUTED_MODE)); }
@Nullable private TriggeringScheduleInfo getTriggeringScheduleInfo(ProgramOptions programOptions) { String scheduleInfoString = programOptions.getArguments().getOption(ProgramOptionConstants.TRIGGERING_SCHEDULE_INFO); return scheduleInfoString == null ? null : GSON.fromJson(scheduleInfoString, TriggeringScheduleInfo.class); }
@Nullable private TriggeringScheduleInfo getTriggeringScheduleInfo(ProgramOptions programOptions) { String scheduleInfoString = programOptions.getArguments().getOption(ProgramOptionConstants.TRIGGERING_SCHEDULE_INFO); return scheduleInfoString == null ? null : GSON.fromJson(scheduleInfoString, TriggeringScheduleInfo.class); }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
@Nullable private File getPluginArchive(ProgramOptions options) { if (!options.getArguments().hasOption(ProgramOptionConstants.PLUGIN_ARCHIVE)) { return null; } return new File(options.getArguments().getOption(ProgramOptionConstants.PLUGIN_ARCHIVE)); } }
/** * Returns the {@link ArtifactId} stored inside the given {@link ProgramOptions#getArguments()}. */ public static ArtifactId getArtifactId(ProgramOptions programOptions) { String id = programOptions.getArguments().getOption(ProgramOptionConstants.ARTIFACT_ID); Preconditions.checkArgument(id != null, "Missing " + ProgramOptionConstants.ARTIFACT_ID + " in program options"); return ArtifactId.fromIdParts(Splitter.on(':').split(id)); }
/** * Returns the {@link RunId} stored inside the given {@link ProgramOptions#getArguments()}. * * @throws IllegalArgumentException if the given options doesn't contain run id. */ public static RunId getRunId(ProgramOptions programOptions) { String id = programOptions.getArguments().getOption(ProgramOptionConstants.RUN_ID); Preconditions.checkArgument(id != null, "Missing " + ProgramOptionConstants.RUN_ID + " in program options"); return RunIds.fromString(id); }
/** * Static helper method to return the secure keys location from the given {@link ProgramOptions}. */ private static Location getKeysDirLocation(ProgramOptions programOptions, LocationFactory locationFactory) { return locationFactory.create( GSON.fromJson(programOptions.getArguments().getOption(ProgramOptionConstants.SECURE_KEYS_DIR), URI.class)); }
/** * Returns the {@link ClusterMode} stored inside the given {@link ProgramOptions#getArguments()}. */ public static ClusterMode getClusterMode(ProgramOptions programOptions) { String clusterMode = programOptions.getArguments().getOption(ProgramOptionConstants.CLUSTER_MODE); // Default to ON_PREMISE for backward compatibility. return clusterMode == null ? ClusterMode.ON_PREMISE : ClusterMode.valueOf(clusterMode); }
/** * Returns the application principal if there is one. * * @param programOptions the program options to extract information from * @return the application principal or {@code null} if no application principal is available. */ @Nullable public static KerberosPrincipalId getApplicationPrincipal(ProgramOptions programOptions) { Arguments systemArgs = programOptions.getArguments(); boolean hasAppPrincipal = Boolean.parseBoolean(systemArgs.getOption(ProgramOptionConstants.APP_PRINCIPAL_EXISTS)); return hasAppPrincipal ? new KerberosPrincipalId(systemArgs.getOption(ProgramOptionConstants.PRINCIPAL)) : null; }
private ProgramOptions createComponentOptions(int instanceId, int instances, RunId runId, ProgramOptions options) { Map<String, String> systemOptions = Maps.newHashMap(); systemOptions.putAll(options.getArguments().asMap()); systemOptions.put(ProgramOptionConstants.INSTANCE_ID, Integer.toString(instanceId)); systemOptions.put(ProgramOptionConstants.INSTANCES, Integer.toString(instances)); systemOptions.put(ProgramOptionConstants.RUN_ID, runId.getId()); systemOptions.put(ProgramOptionConstants.HOST, host); return new SimpleProgramOptions(options.getProgramId(), new BasicArguments(systemOptions), options.getUserArguments()); }
private ProgramOptions createComponentOptions(int instanceId, int instances, RunId runId, ProgramOptions options) { Map<String, String> systemOptions = Maps.newHashMap(); systemOptions.putAll(options.getArguments().asMap()); systemOptions.put(ProgramOptionConstants.INSTANCE_ID, Integer.toString(instanceId)); systemOptions.put(ProgramOptionConstants.INSTANCES, Integer.toString(instances)); systemOptions.put(ProgramOptionConstants.RUN_ID, runId.getId()); systemOptions.put(ProgramOptionConstants.HOST, host); return new SimpleProgramOptions(options.getProgramId(), new BasicArguments(systemOptions), options.getUserArguments()); }
private ProgramOptions createFlowletOptions(int instanceId, int instances, ProgramOptions options) { Map<String, String> systemArgs = new HashMap<>(); systemArgs.putAll(options.getArguments().asMap()); systemArgs.put(ProgramOptionConstants.INSTANCE_ID, Integer.toString(instanceId)); systemArgs.put(ProgramOptionConstants.INSTANCES, Integer.toString(instances)); return new SimpleProgramOptions(options.getProgramId(), new BasicArguments(systemArgs), options.getUserArguments()); }
private static Injector createInjector(CConfiguration cConf, Configuration hConf) { MapReduceContextConfig mapReduceContextConfig = new MapReduceContextConfig(hConf); // principal will be null if running on a kerberos distributed cluster ProgramOptions programOptions = mapReduceContextConfig.getProgramOptions(); Arguments systemArgs = programOptions.getArguments(); String runId = systemArgs.getOption(ProgramOptionConstants.RUN_ID); return Guice.createInjector( new DistributedProgramContainerModule(cConf, hConf, mapReduceContextConfig.getProgramId().run(runId), systemArgs) ); } }
ClusterKeyInfo(ProgramOptions programOptions, LocationFactory locationFactory) throws IOException, GeneralSecurityException { Arguments systemArgs = programOptions.getArguments(); Location keysDir = getKeysDirLocation(programOptions, locationFactory); this.cluster = GSON.fromJson(systemArgs.getOption(ProgramOptionConstants.CLUSTER), Cluster.class); this.sshConfig = createSSHConfig(cluster, keysDir); this.serverKeyStore = KeyStores.load(keysDir.append(Constants.RuntimeMonitor.SERVER_KEYSTORE), () -> ""); this.clientKeyStore = KeyStores.load(keysDir.append(Constants.RuntimeMonitor.CLIENT_KEYSTORE), () -> ""); }
private ProgramOptions resolveFlowletOptions(ProgramOptions options, String flowlet) { Map<String, String> systemArgs = new HashMap<>(options.getArguments().asMap()); systemArgs.put(ProgramOptionConstants.FLOWLET_NAME, flowlet); return new SimpleProgramOptions(options.getProgramId(), new BasicArguments(systemArgs), new BasicArguments(RuntimeArguments.extractScope( FlowUtils.FLOWLET_SCOPE, flowlet, options.getUserArguments().asMap()))); }
/** * Creates a {@link ProgramOptions} by deserializing the given json file. */ private ProgramOptions createProgramOptions(File programOptionsFile) throws IOException { ProgramOptions original = readJsonFile(programOptionsFile, ProgramOptions.class); // Overwrite them with environmental information Map<String, String> arguments = new HashMap<>(original.getArguments().asMap()); arguments.putAll(getExtraSystemArguments()); // Use the name passed in by the constructor as the program name to construct the ProgramId return new SimpleProgramOptions(original.getProgramId(), new BasicArguments(arguments), resolveScope(original.getUserArguments()), original.isDebug()); }
private boolean programOptionsEquals(ProgramOptions opt1, ProgramOptions opt2) { return Objects.equals(opt1.getProgramId(), opt2.getProgramId()) && opt1.isDebug() == opt2.isDebug() && Objects.equals(opt1.getArguments().asMap(), opt2.getArguments().asMap()) && Objects.equals(opt1.getUserArguments().asMap(), opt2.getUserArguments().asMap()); } }