diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/client/ApiServiceClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/client/ApiServiceClient.java index a3a3c73..d435f7d 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/client/ApiServiceClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/client/ApiServiceClient.java @@ -503,26 +503,11 @@ public int actionDestroy(String appName) throws IOException, YarnException { @Override public int actionFlex(String appName, Map componentCounts) throws IOException, YarnException { - int result = EXIT_SUCCESS; - try { - Service service = new Service(); - service.setName(appName); - service.setState(ServiceState.FLEX); - for (Map.Entry entry : componentCounts.entrySet()) { - Component component = new Component(); - component.setName(entry.getKey()); - Long numberOfContainers = Long.parseLong(entry.getValue()); - component.setNumberOfContainers(numberOfContainers); - service.addComponent(component); - } - String buffer = jsonSerDeser.toJson(service); - ClientResponse response = getApiClient(getServicePath(appName)) - .put(ClientResponse.class, buffer); - result = processResponse(response); - } catch (Exception e) { - LOG.error("Fail to flex application: ", e); - result = EXIT_EXCEPTION_THROWN; - } + ServiceClient sc = new ServiceClient(); + sc.init(getConfig()); + sc.start(); + int result = sc.actionFlex(appName, componentCounts); + sc.close(); return result; }