You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by sw...@apache.org on 2014/01/18 08:02:03 UTC

git commit: made changes to client to copy appspec

Updated Branches:
  refs/heads/helix-provisioning e03a9228c -> ae77f9149


made changes to client to copy appspec


Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/ae77f914
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/ae77f914
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/ae77f914

Branch: refs/heads/helix-provisioning
Commit: ae77f9149656fa152e006913f6a710015ff28112
Parents: e03a922
Author: Swaroop <sw...@gmail.com>
Authored: Fri Jan 17 23:01:53 2014 -0800
Committer: Swaroop <sw...@gmail.com>
Committed: Fri Jan 17 23:01:53 2014 -0800

----------------------------------------------------------------------
 .../helix/provisioning/yarn/ApplicationSpec.java  |  3 ++-
 .../apache/helix/provisioning/yarn/Client.java    | 18 ++++++++++++++++++
 .../yarn/YamlApplicationSpecFactory.java          | 14 ++++++++++----
 3 files changed, 30 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/helix/blob/ae77f914/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/ApplicationSpec.java
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/ApplicationSpec.java b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/ApplicationSpec.java
index 6773b4a..16b23fa 100644
--- a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/ApplicationSpec.java
+++ b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/ApplicationSpec.java
@@ -7,5 +7,6 @@ public interface ApplicationSpec {
 	public int getMinContainers();
 	public int getMaxContainers();
 	public AppConfig getConfig();
-	public List<ServiceConfig> getServices();
+	public List<String> getServices();
+	public ServiceConfig getServiceConfig(String name);
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/ae77f914/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/Client.java
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/Client.java b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/Client.java
index 15b43a6..6611ec6 100644
--- a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/Client.java
+++ b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/Client.java
@@ -137,6 +137,8 @@ public class Client {
   private String appMasterArchive = "";
   // Main class to invoke application master
   private final String appMasterMainClass;
+  
+  private String appSpecFile = "";
 
   // No. of containers in which helix participants will be started
   private int numContainers = 1;
@@ -205,6 +207,7 @@ public class Client {
     opts.addOption("master_memory", true,
         "Amount of memory in MB to be requested to run the application master");
     opts.addOption("archive", true, "Archive file containing the app code");
+    opts.addOption("appSpec", true, "Application specification");
     opts.addOption("num_containers", true,
         "No. of containers on which Helix Participants will be launched");
     opts.addOption("log_properties", true, "log4j.properties file");
@@ -368,6 +371,21 @@ public class Client {
     amJarRsrc.setTimestamp(destStatus.getModificationTime());
     amJarRsrc.setSize(destStatus.getLen());
     localResources.put("app-pkg", amJarRsrc);
+    
+    Path localAppSpec = new Path(appSpecFile);
+    pathSuffix = appName + "/" + appId.getId() + "/app-spec.yaml";
+    Path dstAppSpec = new Path(fs.getHomeDirectory(), pathSuffix);
+    fs.copyFromLocalFile(false, true, localAppSpec, dstAppSpec);
+    destStatus = fs.getFileStatus(dst);
+    LocalResource appSpecResource = Records.newRecord(LocalResource.class);
+
+    appSpecResource.setType(LocalResourceType.FILE);
+    appSpecResource.setVisibility(LocalResourceVisibility.APPLICATION);
+    appSpecResource.setResource(ConverterUtils.getYarnUrlFromPath(dstAppSpec));
+    appSpecResource.setTimestamp(destStatus.getModificationTime());
+    appSpecResource.setSize(destStatus.getLen());
+    localResources.put("app-spec", appSpecResource);
+
 
     // Set the log4j properties if needed
     if (!log4jPropFile.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/helix/blob/ae77f914/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YamlApplicationSpecFactory.java
----------------------------------------------------------------------
diff --git a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YamlApplicationSpecFactory.java b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YamlApplicationSpecFactory.java
index 0c50fc0..d5ac2c0 100644
--- a/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YamlApplicationSpecFactory.java
+++ b/helix-provisioning/src/main/java/org/apache/helix/provisioning/yarn/YamlApplicationSpecFactory.java
@@ -2,6 +2,7 @@ package org.apache.helix.provisioning.yarn;
 
 import java.io.InputStream;
 import java.util.List;
+import java.util.Map;
 
 import org.yaml.snakeyaml.Yaml;
 
@@ -12,7 +13,8 @@ class DefaultApplicationSpec implements ApplicationSpec {
 	
 	public AppConfig appConfig;
 
-	public List<ServiceConfig> serviceConfig;
+	public List<String> services;
+	public Map<String, ServiceConfig> serviceConfigMap;
 
 	@Override
 	public String getAppName() {
@@ -35,10 +37,14 @@ class DefaultApplicationSpec implements ApplicationSpec {
 	}
 
 	@Override
-	public List<ServiceConfig> getServices() {
-		return serviceConfig;
+	public List<String> getServices() {
+		return services;
+	}
+
+	@Override
+	public ServiceConfig getServiceConfig(String name) {
+		return serviceConfigMap.get(name);
 	}
-	
 }
 
 public class YamlApplicationSpecFactory {