diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java index b3ac7bbe748..3a1ae0e1158 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/client/ServiceClient.java @@ -1036,8 +1036,8 @@ ApplicationId submitApp(Service app) throws IOException, YarnException { submissionContext.setQueue(queue); submissionContext.setApplicationName(serviceName); submissionContext.setApplicationType(YarnServiceConstants.APP_TYPE); - Set appTags = - AbstractClientProvider.createApplicationTags(serviceName, null, null); + Set appTags = AbstractClientProvider.createApplicationTags( + serviceName, app.getVersion(), app.getDescription()); if (!appTags.isEmpty()) { submissionContext.setApplicationTags(appTags); } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestYarnNativeServices.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestYarnNativeServices.java index 948c4076820..c2b124fb078 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestYarnNativeServices.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/test/java/org/apache/hadoop/yarn/service/TestYarnNativeServices.java @@ -982,4 +982,28 @@ public void testAMFailureValidity() throws Exception { Assert.assertEquals(ServiceState.STABLE, client.getStatus( exampleApp.getName()).getState()); } + + @Test (timeout = 200000) + public void testApplicationTags() throws Exception { + setupInternal(NUM_NMS); + ServiceClient client = createClient(getConf()); + Service exampleApp = new Service(); + exampleApp.setName("example-app"); + exampleApp.setVersion("v1"); + exampleApp.setDescription("test"); + exampleApp.addComponent(createComponent("compa", 1, "sleep 1000")); + client.actionCreate(exampleApp); + waitForServiceToBeStable(client, exampleApp); + + Service appStatus = client.getStatus(exampleApp.getName()); + ApplicationId exampleAppId = ApplicationId.fromString(appStatus.getId()); + YarnClient yarnClient = createYarnClient(getConf()); + + ApplicationReport app = yarnClient.getApplicationReport( + exampleAppId); + Assert.assertEquals(3, app.getApplicationTags().size()); + Assert.assertTrue(app.getApplicationTags().contains("name: example-app")); + Assert.assertTrue(app.getApplicationTags().contains("version: v1")); + Assert.assertTrue(app.getApplicationTags().contains("description: test")); + } }