You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2012/12/31 18:09:16 UTC

svn commit: r1427182 - in /airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client: api/ impl/

Author: samindaw
Date: Mon Dec 31 17:09:15 2012
New Revision: 1427182

URL: http://svn.apache.org/viewvc?rev=1427182&view=rev
Log:
workflow scheduling settings API update + impl

Added:
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSettings.java   (contents, props changed)
      - copied, changed from r1425154, airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSchedulingSettings.java
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java   (with props)
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java   (with props)
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java   (with props)
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/WorkflowSchedulingSettingsImpl.java   (with props)
Removed:
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSchedulingSettings.java
Modified:
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HostSchedulingSettings.java
    airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/NodeSettings.java

Copied: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSettings.java (from r1425154, airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSchedulingSettings.java)
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSettings.java?p2=airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSettings.java&p1=airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSchedulingSettings.java&r1=1425154&r2=1427182&rev=1427182&view=diff
==============================================================================
--- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSchedulingSettings.java (original)
+++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSettings.java Mon Dec 31 17:09:15 2012
@@ -21,7 +21,7 @@
 
 package org.apache.airavata.client.api;
 
-public interface HPCSchedulingSettings {
+public interface HPCSettings {
 	
 	/**
 	 * Get the job manager to use for this job submission
@@ -33,13 +33,13 @@ public interface HPCSchedulingSettings {
 	 * Get the no of CPU cores to allocate for this job 
 	 * @return
 	 */
-	public int getCPUCount();
+	public Integer getCPUCount();
 	
 	/**
 	 * Get the no of nodes to allocate for this job
 	 * @return
 	 */
-	public int getNodeCount();
+	public Integer getNodeCount();
 	
 	/**
 	 * Get the job queue name 
@@ -51,7 +51,7 @@ public interface HPCSchedulingSettings {
 	 * Get the maximum time the job should be allocated for execution 
 	 * @return
 	 */
-	public int getMaxWallTime();
+	public Integer getMaxWallTime();
 	
 	/**
 	 * Set the job manager to use for this job submission

Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HPCSettings.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HostSchedulingSettings.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HostSchedulingSettings.java?rev=1427182&r1=1427181&r2=1427182&view=diff
==============================================================================
--- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HostSchedulingSettings.java (original)
+++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/HostSchedulingSettings.java Mon Dec 31 17:09:15 2012
@@ -33,7 +33,7 @@ public interface HostSchedulingSettings 
 	 * Using WS-Gram or not (Pre WS-GRAM) 
 	 * @return
 	 */
-	public boolean isWSGRAMPreffered();
+	public Boolean isWSGRAMPreffered();
 	
 	/**
 	 * Get the gatekeeper endpoint reference

Modified: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/NodeSettings.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/NodeSettings.java?rev=1427182&r1=1427181&r2=1427182&view=diff
==============================================================================
--- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/NodeSettings.java (original)
+++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/api/NodeSettings.java Mon Dec 31 17:09:15 2012
@@ -45,7 +45,7 @@ public interface NodeSettings {
 	 * HPC settings for the grid application exposed by the service descriptor
 	 * @return
 	 */
-	public HPCSchedulingSettings getHPCSettings();
+	public HPCSettings getHPCSettings();
 	
 	/**
 	 * Set the node Id of the workflow

Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java?rev=1427182&view=auto
==============================================================================
--- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java (added)
+++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java Mon Dec 31 17:09:15 2012
@@ -0,0 +1,108 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.client.impl;
+
+import org.apache.airavata.client.api.HPCSettings;
+
+public class HPCSettingsImpl implements HPCSettings {
+	private String jobManager;
+	private String queueName;
+	private Integer cpuCount;
+	private Integer nodeCount;
+	private Integer maxWallTime;
+	
+	@Override
+	public String getJobManager() {
+		return jobManager;
+	}
+
+	@Override
+	public Integer getCPUCount() {
+		return cpuCount;
+	}
+
+	@Override
+	public Integer getNodeCount() {
+		return nodeCount;
+	}
+
+	@Override
+	public String getQueueName() {
+		return queueName;
+	}
+
+	@Override
+	public Integer getMaxWallTime() {
+		return maxWallTime;
+	}
+
+	@Override
+	public void setJobManager(String jobManager) {
+		this.jobManager=jobManager;
+	}
+
+	@Override
+	public void setCPUCount(Integer cpuCount) {
+		this.cpuCount=cpuCount;
+	}
+
+	@Override
+	public void setNodeCount(Integer nodeCount) {
+		this.nodeCount=nodeCount;
+	}
+
+	@Override
+	public void setQueueName(String queueName) {
+		this.queueName=queueName;
+	}
+
+	@Override
+	public void setMaxWallTime(Integer maxWallTime) {
+		this.maxWallTime=maxWallTime;
+	}
+
+	@Override
+	public void resetJobManager() {
+		this.jobManager=null;
+	}
+
+	@Override
+	public void resetCPUCount() {
+		this.cpuCount=null;
+	}
+
+	@Override
+	public void resetNodeCount() {
+		this.nodeCount=null;
+	}
+
+	@Override
+	public void resetQueueName() {
+		this.queueName=null;
+	}
+
+	@Override
+	public void resetMaxWallTime() {
+		this.maxWallTime=null;
+	}
+
+}

Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HPCSettingsImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java?rev=1427182&view=auto
==============================================================================
--- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java (added)
+++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java Mon Dec 31 17:09:15 2012
@@ -0,0 +1,71 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.client.impl;
+
+import org.apache.airavata.client.api.HostSchedulingSettings;
+
+public class HostSchedulingSettingsImpl implements HostSchedulingSettings {
+	private String hostId;
+	private String gatekeeperEPR;
+	private Boolean wsgramPreffered;
+	
+	@Override
+	public String getHostId() {
+		return hostId;
+	}
+
+	@Override
+	public Boolean isWSGRAMPreffered() {
+		return wsgramPreffered;
+	}
+
+	@Override
+	public String getGatekeeperEPR() {
+		return gatekeeperEPR;
+	}
+
+	@Override
+	public void setHostId(String hostId) {
+		this.hostId=hostId;
+	}
+
+	@Override
+	public void setWSGramPreffered(boolean wsgramPreffered) {
+		this.wsgramPreffered=wsgramPreffered;
+	}
+
+	@Override
+	public void setGatekeeperEPR(String gatekeeperEPR) {
+		this.gatekeeperEPR=gatekeeperEPR;
+	}
+
+	@Override
+	public void resetWSGramPreffered() {
+		this.wsgramPreffered=null;
+	}
+
+	@Override
+	public void resetGatekeeperEPR() {
+		this.gatekeeperEPR=null;
+	}
+
+}

Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/HostSchedulingSettingsImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java?rev=1427182&view=auto
==============================================================================
--- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java (added)
+++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java Mon Dec 31 17:09:15 2012
@@ -0,0 +1,79 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.client.impl;
+
+import org.apache.airavata.client.api.HPCSettings;
+import org.apache.airavata.client.api.HostSchedulingSettings;
+import org.apache.airavata.client.api.NodeSettings;
+
+public class NodeSettingsImpl implements NodeSettings {
+	private String nodeId;
+	private String serviceId;
+	private HPCSettings hpcSettings;
+	private HostSchedulingSettings hostSchedulingSettings;
+	
+	public NodeSettingsImpl(String nodeId) {
+		this(nodeId,null);
+	}
+
+	public NodeSettingsImpl(String nodeId, String serviceId) {
+		setNodeId(nodeId);
+		setServiceId(serviceId);
+	}
+	
+	@Override
+	public String getNodeId() {
+		return nodeId;
+	}
+
+	@Override
+	public String getServiceId() {
+		return serviceId;
+	}
+
+	@Override
+	public HostSchedulingSettings getHostSettings() {
+		if (hostSchedulingSettings==null){
+			hostSchedulingSettings=new HostSchedulingSettingsImpl();
+		}
+		return hostSchedulingSettings;
+	}
+
+	@Override
+	public HPCSettings getHPCSettings() {
+		if (hpcSettings==null){
+			hpcSettings=new HPCSettingsImpl();
+		}
+		return hpcSettings;
+	}
+
+	@Override
+	public void setNodeId(String nodeId) {
+		this.nodeId=nodeId;
+	}
+
+	@Override
+	public void setServiceId(String serviceId) {
+		this.serviceId=serviceId;
+	}
+
+}

Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/NodeSettingsImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/WorkflowSchedulingSettingsImpl.java
URL: http://svn.apache.org/viewvc/airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/WorkflowSchedulingSettingsImpl.java?rev=1427182&view=auto
==============================================================================
--- airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/WorkflowSchedulingSettingsImpl.java (added)
+++ airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/WorkflowSchedulingSettingsImpl.java Mon Dec 31 17:09:15 2012
@@ -0,0 +1,96 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.client.impl;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.airavata.client.api.NodeSettings;
+import org.apache.airavata.client.api.WorkflowSchedulingSettings;
+
+public class WorkflowSchedulingSettingsImpl implements
+		WorkflowSchedulingSettings {
+
+	private List<NodeSettings> nodeSettingsList;
+	
+	private List<NodeSettings> getNodeSettingsList(){
+		if (nodeSettingsList==null){
+			nodeSettingsList=new ArrayList<NodeSettings>();
+		}
+		return nodeSettingsList;
+	}
+	
+	@Override
+	public NodeSettings[] getNodeSettings() {
+		return getNodeSettingsList().toArray(new NodeSettings[]{});
+	}
+
+	@Override
+	public NodeSettings addNewNodeSettings(String nodeId) {
+		getNodeSettingsList().add(new NodeSettingsImpl(nodeId));
+		return getNodeSettingsList().get(getNodeSettingsList().size()-1);
+	}
+
+	@Override
+	public NodeSettings addNewNodeSettings(String nodeId, String serviceId,
+			int cpuCount, int nodeCount) {
+		NodeSettingsImpl nodeSettings = new NodeSettingsImpl(nodeId, serviceId);
+		nodeSettings.getHPCSettings().setCPUCount(cpuCount);
+		nodeSettings.getHPCSettings().setNodeCount(nodeCount);
+		return nodeSettings;
+	}
+
+	@Override
+	public void addNewNodeSettings(NodeSettings... newNodeSettingsList) {
+		getNodeSettingsList().addAll(Arrays.asList(newNodeSettingsList));
+	}
+
+	@Override
+	public boolean hasNodeSettings(String nodeId) {
+		return getNodeSettings(nodeId)!=null;
+	}
+
+	@Override
+	public NodeSettings getNodeSettings(String nodeId) {
+		for(NodeSettings nodeSettings:getNodeSettingsList()){
+			if (nodeSettings.getNodeId().equals(nodeId)){
+				return nodeSettings;
+			}
+		}
+		return null;
+	}
+
+	@Override
+	public void removeNodeSettings(String nodeId) {
+		if (hasNodeSettings(nodeId)){
+			getNodeSettingsList().remove(getNodeSettings(nodeId));
+		}
+
+	}
+
+	@Override
+	public void removeAllNodeSettings() {
+		getNodeSettingsList().clear();
+	}
+
+}

Propchange: airavata/trunk/modules/airavata-client/src/main/java/org/apache/airavata/client/impl/WorkflowSchedulingSettingsImpl.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain