private Plugin getPlugin(String pluginId) { Plugin plugin = plugins.get(pluginId); Preconditions.checkArgument(plugin != null, "Plugin with id %s does not exist in program %s of application %s.", pluginId, programId.getProgram(), programId.getApplication()); return plugin; } }
@Override public void setInstances(int instances) { Preconditions.checkArgument(instances > 0, "Instance count should be > 0."); try { appFabricClient.setWorkerInstances(programId.getNamespace(), programId.getApplication(), programId.getProgram(), instances); } catch (Exception e) { throw Throwables.propagate(e); } }
@Override public void setFlowletInstances(String flowletName, int instances) { Preconditions.checkArgument(instances > 0, "Instance counter should be > 0."); try { appFabricClient.setFlowletInstances(programId.getNamespace(), programId.getApplication(), programId.getProgram(), flowletName, instances); } catch (Exception e) { throw Throwables.propagate(e); } }
private ServiceInstances getInstances() { try { return appFabricClient.getServiceInstances(programId.getNamespace(), programId.getApplication(), programId.getProgram()); } catch (Exception e) { throw Throwables.propagate(e); } }
@Override public int hashCode() { Integer hashCode = this.hashCode; if (hashCode == null) { this.hashCode = hashCode = Objects.hash(super.hashCode(), getNamespace(), getApplication(), getVersion(), type, program); } return hashCode; }
private static Map<String, String> getMetricsContext(ProgramType type, ProgramId programId) { return ImmutableMap.of(Constants.Metrics.Tag.NAMESPACE, programId.getNamespace(), Constants.Metrics.Tag.APP, programId.getApplication(), ProgramTypeMetricTag.getTagName(type), programId.getProgram()); }
private static ServiceSpecification getServiceSpecOrFail(ProgramId id, ApplicationSpecification appSpec) { ServiceSpecification spec = appSpec.getServices().get(id.getProgram()); if (spec == null) { throw new NoSuchElementException("no such service @ namespace id: " + id.getNamespace() + ", app id: " + id.getApplication() + ", service id: " + id.getProgram()); } return spec; }
/** * Returns the Twill app name to be used for a Twill app launched for a given program. */ public static String toTwillAppName(ProgramId programId) { return String.format("%s.%s.%s.%s", programId.getType().name().toLowerCase(), programId.getNamespace(), programId.getApplication(), programId.getProgram()); }
private static WorkerSpecification getWorkerSpecOrFail(ProgramId id, ApplicationSpecification appSpec) { WorkerSpecification workerSpecification = appSpec.getWorkers().get(id.getProgram()); if (workerSpecification == null) { throw new NoSuchElementException("no such worker @ namespace id: " + id.getNamespaceId() + ", app id: " + id.getApplication() + ", worker id: " + id.getProgram()); } return workerSpecification; }
public static String programIdFor(ProgramId program, SchedulableProgramType programType) { return String.format("%s:%s:%s:%s:%s", program.getNamespace(), program.getApplication(), program.getVersion(), programType.name(), program.getProgram()); } }
@Override public RuntimeMetrics getMetrics() { return metricsManager.getServiceMetrics(programId.getNamespace(), programId.getApplication(), programId.getProgram()); } }
@Override public void perform(Arguments arguments, PrintStream output) throws Exception { ProgramId programId = parseProgramId(arguments, elementType); String appName = programId.getApplication(); String appVersion = programId.getVersion(); String programName = programId.getProgram(); programClient.stop(programId); output.printf("Successfully stopped %s '%s' of application '%s.%s'\n", elementType.getName(), programName, appName, appVersion); }
private String getServiceName() { ProgramId programId = getProgramRunId().getParent(); RunId runId = getRunId(); return String.format("workflow.%s.%s.%s.%s", programId.getNamespace(), programId.getApplication(), programId.getProgram(), runId.getId()); } }
private LoggingContext createLoggingContext(ProgramId programId, RunId runId, @Nullable WorkflowProgramInfo workflowProgramInfo) { if (workflowProgramInfo == null) { return new SparkLoggingContext(programId.getNamespace(), programId.getApplication(), programId.getProgram(), runId.getId()); } ProgramId workflowProramId = Ids.namespace(programId.getNamespace()).app(programId.getApplication()) .workflow(workflowProgramInfo.getName()); return new WorkflowProgramLoggingContext(workflowProramId.getNamespace(), workflowProramId.getApplication(), workflowProramId.getProgram(), workflowProgramInfo.getRunId().getId(), ProgramType.SPARK, programId.getProgram(), runId.getId()); }
/** * Creates a {@link ProgramRunId} of this program id with the given run id. */ public ProgramRunId run(String run) { return new ProgramRunId(new ApplicationId(getNamespace(), getApplication(), getVersion()), type, program, run); }
protected List<BatchProgramHistory> getProgramRuns(NamespaceId namespace, List<ProgramId> programs) throws Exception { List<BatchProgram> request = programs.stream() .map(program -> new BatchProgram(program.getApplication(), program.getType(), program.getProgram())) .collect(Collectors.toList()); HttpResponse response = doPost(getVersionedAPIPath("runs", namespace.getNamespace()), GSON.toJson(request)); Assert.assertEquals(200, response.getResponseCode()); return GSON.fromJson(response.getResponseBodyAsString(), BATCH_PROGRAM_RUNS_TYPE); }
protected MDSKey.Builder getProgramKeyBuilder(String recordType, @Nullable ProgramId programId) { MDSKey.Builder builder = new MDSKey.Builder().add(recordType); if (programId != null) { builder.add(programId.getNamespace()); builder.add(programId.getApplication()); builder.add(programId.getVersion()); builder.add(programId.getType().name()); builder.add(programId.getProgram()); } return builder; }
/** * Tries to start the given program with the given runtime arguments and expect the call completed with the status. */ protected void startProgram(ProgramId program, Map<String, String> args, int expectedStatusCode) throws Exception { String path = String.format("apps/%s/versions/%s/%s/%s/start", program.getApplication(), program.getVersion(), program.getType().getCategoryName(), program.getProgram()); startProgram(path, program.getNamespace(), args, expectedStatusCode); }
public List<RunRecord> getHistory(ProgramId programId, ProgramRunStatus status) throws Exception { String namespace = programId.getNamespace(); String application = programId.getApplication(); String applicationVersion = programId.getVersion(); String programName = programId.getProgram(); String categoryName = programId.getType().getCategoryName(); return doGetHistory(namespace, application, applicationVersion, programName, categoryName, status); }
private void testVersionedProgramRuntimeArgs(ProgramId programId) throws Exception { String versionedRuntimeArgsUrl = getVersionedAPIPath("apps/" + programId.getApplication() + "/versions/" + programId.getVersion() + "/" + programId.getType().getCategoryName() + "/" + programId.getProgram() + "/runtimeargs", Constants.Gateway.API_VERSION_3_TOKEN, programId.getNamespace()); verifyRuntimeArgs(versionedRuntimeArgsUrl); }