You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2011/12/21 04:48:13 UTC
svn commit: r1221589 -
/incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/SchedulerTest.java
Author: lahiru
Date: Wed Dec 21 03:48:13 2011
New Revision: 1221589
URL: http://svn.apache.org/viewvc?rev=1221589&view=rev
Log:
adding tests for scheduler
Added:
incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/SchedulerTest.java
Added: incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/SchedulerTest.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/SchedulerTest.java?rev=1221589&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/SchedulerTest.java (added)
+++ incubator/airavata/trunk/modules/gfac-core/src/test/java/org/apache/airavata/core/gfac/services/impl/SchedulerTest.java Wed Dec 21 03:48:13 2011
@@ -0,0 +1,176 @@
+/*
+ *
+ * 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.core.gfac.services.impl;
+
+import org.apache.airavata.commons.gfac.type.ActualParameter;
+import org.apache.airavata.commons.gfac.type.ApplicationDeploymentDescription;
+import org.apache.airavata.commons.gfac.type.HostDescription;
+import org.apache.airavata.commons.gfac.type.ServiceDescription;
+import org.apache.airavata.core.gfac.context.invocation.impl.DefaultExecutionContext;
+import org.apache.airavata.core.gfac.context.invocation.impl.DefaultInvocationContext;
+import org.apache.airavata.core.gfac.context.message.impl.ParameterContextImpl;
+import org.apache.airavata.core.gfac.notification.impl.LoggingNotification;
+import org.apache.airavata.core.gfac.provider.Provider;
+import org.apache.airavata.core.gfac.provider.impl.GramProvider;
+import org.apache.airavata.core.gfac.provider.impl.LocalProvider;
+import org.apache.airavata.core.gfac.scheduler.Scheduler;
+import org.apache.airavata.core.gfac.scheduler.impl.SchedulerImpl;
+import org.apache.airavata.registry.api.impl.JCRRegistry;
+import org.apache.airavata.schemas.gfac.ApplicationDeploymentDescriptionType;
+import org.apache.airavata.schemas.gfac.InputParameterType;
+import org.apache.airavata.schemas.gfac.OutputParameterType;
+import org.apache.airavata.schemas.gfac.StringParameterType;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.fail;
+
+public class SchedulerTest {
+ private JCRRegistry jcrRegistry;
+ @Before
+ public void setUp() throws Exception {
+ /*
+ * Create database
+ */
+ jcrRegistry = new JCRRegistry(null,
+ "org.apache.jackrabbit.core.RepositoryFactoryImpl", "admin",
+ "admin", null);
+
+ /*
+ * Host
+ */
+ HostDescription host = new HostDescription();
+ host.getType().setHostName("localhost");
+ host.getType().setHostAddress("10.11.111.1");
+
+
+
+
+
+ /*
+ * App
+ */
+ ApplicationDeploymentDescription appDesc = new ApplicationDeploymentDescription();
+ ApplicationDeploymentDescriptionType app = appDesc.getType();
+ ApplicationDeploymentDescriptionType.ApplicationName name = ApplicationDeploymentDescriptionType.ApplicationName.Factory.newInstance();
+ name.setStringValue("EchoLocal");
+ app.setApplicationName(name);
+ app.setExecutableLocation("/bin/echo");
+ app.setScratchWorkingDirectory("/tmp");
+ app.setStaticWorkingDirectory("/tmp");
+ app.setInputDataDirectory("/tmp/input");
+ app.setOutputDataDirectory("/tmp/output");
+ app.setStandardOutput("/tmp/echo.stdout");
+ app.setStandardError("/tmp/echo.stdout");
+
+
+
+ /*
+ * Service
+ */
+ ServiceDescription serv = new ServiceDescription();
+ serv.getType().setName("SimpleEcho");
+
+
+
+ List<InputParameterType> inputList = new ArrayList<InputParameterType>();
+ InputParameterType input = InputParameterType.Factory.newInstance();
+ input.setParameterName("echo_input");
+ input.setParameterType(StringParameterType.Factory.newInstance());
+ inputList.add(input);
+ InputParameterType[] inputParamList = inputList.toArray(new InputParameterType[inputList
+ .size()]);
+
+ List<OutputParameterType> outputList = new ArrayList<OutputParameterType>();
+ OutputParameterType output = OutputParameterType.Factory.newInstance();
+ output.setParameterName("echo_output");
+ output.setParameterType(StringParameterType.Factory.newInstance());
+ outputList.add(output);
+ OutputParameterType[] outputParamList = outputList
+ .toArray(new OutputParameterType[outputList.size()]);
+
+ serv.getType().setInputParametersArray(inputParamList);
+ serv.getType().setOutputParametersArray(outputParamList);
+
+ /*
+ * Save to registry
+ */
+ jcrRegistry.saveHostDescription(host);
+ jcrRegistry.saveDeploymentDescription(serv.getType().getName(), host
+ .getType().getHostName(), appDesc);
+ jcrRegistry.saveServiceDescription(serv);
+ jcrRegistry.deployServiceOnHost(serv.getType().getName(), host
+ .getType().getHostName());
+
+ }
+
+ @Test
+ public void testExecute() {
+ try {
+
+ DefaultInvocationContext ct = new DefaultInvocationContext();
+ DefaultExecutionContext ec = new DefaultExecutionContext();
+ ec.addNotifiable(new LoggingNotification());
+ ct.setExecutionContext(ec);
+
+ ct.setServiceName("SimpleEcho");
+
+ /*
+ * Input
+ */
+ ParameterContextImpl input = new ParameterContextImpl();
+ ActualParameter echo_input = new ActualParameter();
+ ((StringParameterType)echo_input.getType()).setValue("echo_output=hello");
+ input.add("echo_input", echo_input);
+
+ /*
+ * Output
+ */
+ ParameterContextImpl output = new ParameterContextImpl();
+ ActualParameter echo_output = new ActualParameter();
+ output.add("echo_output", echo_output);
+
+ // parameter
+ ct.setInput(input);
+ ct.setOutput(output);
+ ct.getExecutionContext().setRegistryService(jcrRegistry);
+ Scheduler scheduler = new SchedulerImpl();
+ Provider provider = scheduler.schedule(ct);
+
+
+ if(provider instanceof GramProvider){
+ junit.framework.Assert.assertTrue(true);
+ }else {
+ junit.framework.Assert.assertTrue(false);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ fail("ERROR");
+ }
+ }
+}