/** * * 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. */ ///* // * // * 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.job; // //import java.io.File; //import java.util.ArrayList; //import java.util.List; //import java.util.concurrent.BlockingQueue; //import java.util.concurrent.LinkedBlockingQueue; // //import org.apache.airavata.common.utils.LocalEventPublisher; //import org.apache.airavata.commons.gfac.type.HostDescription; //import org.apache.airavata.gfac.core.monitor.MonitorID; //import org.apache.airavata.gfac.monitor.HPCMonitorID; //import org.apache.airavata.gfac.monitor.UserMonitorData; //import org.apache.airavata.gfac.monitor.impl.pull.qstat.HPCPullMonitor; //import org.apache.airavata.gfac.ssh.api.Cluster; //import org.apache.airavata.gfac.ssh.api.SSHApiException; //import org.apache.airavata.gfac.ssh.api.ServerInfo; //import org.apache.airavata.gfac.ssh.api.authentication.GSIAuthenticationInfo; //import org.apache.airavata.gfac.ssh.api.job.JobDescriptor; //import org.apache.airavata.gfac.ssh.impl.HPCRemoteCluster; //import org.apache.airavata.gfac.ssh.impl.authentication.MyProxyAuthenticationInfo; //import org.apache.airavata.gfac.ssh.util.CommonUtils; //import org.apache.airavata.model.messaging.event.JobStatusChangeEvent; //import org.apache.airavata.schemas.gfac.GsisshHostType; //import org.junit.Assert; //import org.testng.annotations.Test; // //import com.google.common.eventbus.EventBus; //import com.google.common.eventbus.Subscribe; // //public class QstatMonitorTestWithMyProxyAuth { // private String myProxyUserName; // private String myProxyPassword; // private String certificateLocation; // private String pbsFilePath; // private String workingDirectory; // private HostDescription hostDescription; // private LocalEventPublisher monitorPublisher; // private BlockingQueue<UserMonitorData> pullQueue; // private Thread monitorThread; // // @org.testng.annotations.BeforeClass // public void setUp() throws Exception { //// System.setProperty("myproxy.username", "ogce"); //// System.setProperty("myproxy.password", ""); //// System.setProperty("basedir", "/Users/lahirugunathilake/work/airavata/sandbox/gsissh"); //// System.setProperty("gsi.working.directory", "/home/ogce"); //// System.setProperty("trusted.cert.location", "/Users/lahirugunathilake/Downloads/certificates"); // myProxyUserName = System.getProperty("myproxy.username"); // myProxyPassword = System.getProperty("myproxy.password"); // workingDirectory = System.getProperty("gsi.working.directory"); // certificateLocation = System.getProperty("trusted.cert.location"); // if (myProxyUserName == null || myProxyPassword == null || workingDirectory == null) { // System.out.println(">>>>>> Please run tests with my proxy user name and password. " + // "E.g :- mvn clean install -Dmyproxy.username=xxx -Dmyproxy.password=xxx -Dgsi.working.directory=/path<<<<<<<"); // throw new Exception("Need my proxy user name password to run tests."); // } // // monitorPublisher = new LocalEventPublisher(new EventBus()); // class InnerClassQstat { // // @Subscribe // private void getStatus(JobStatusChangeEvent status) { // Assert.assertNotNull(status); // System.out.println(status.getState().toString()); // monitorThread.interrupt(); // } // } // monitorPublisher.registerListener(this); // pullQueue = new LinkedBlockingQueue<UserMonitorData>(); // final HPCPullMonitor qstatMonitor = new // HPCPullMonitor(pullQueue, monitorPublisher); // try { // (new Thread(){ // public void run(){ // qstatMonitor.run(); // } // }).start(); // } catch (Exception e) { // e.printStackTrace(); // } // // hostDescription = new HostDescription(GsisshHostType.type); // hostDescription.getType().setHostAddress("trestles.sdsc.edu"); // hostDescription.getType().setHostName("gsissh-gordon"); // ((GsisshHostType) hostDescription.getType()).setPort(22); // ((GsisshHostType)hostDescription.getType()).setInstalledPath("/opt/torque/bin/"); // } // // @Test // public void testQstatMonitor() throws SSHApiException { // /* now have to submit a job to some machine and add that job to the queue */ // //Create authentication // GSIAuthenticationInfo authenticationInfo // = new MyProxyAuthenticationInfo(myProxyUserName, myProxyPassword, "myproxy.teragrid.org", // 7512, 17280000, certificateLocation); // // // Server info // ServerInfo serverInfo = new ServerInfo("ogce", hostDescription.getType().getHostAddress()); // // // Cluster pbsCluster = new HPCRemoteCluster(serverInfo, authenticationInfo, CommonUtils.getPBSJobManager("/opt/torque/bin/")); // // // // Execute command // System.out.println("Target PBS file path: " + workingDirectory); // // constructing the job object // JobDescriptor jobDescriptor = new JobDescriptor(); // jobDescriptor.setWorkingDirectory(workingDirectory); // jobDescriptor.setShellName("/bin/bash"); // jobDescriptor.setJobName("GSI_SSH_SLEEP_JOB"); // jobDescriptor.setExecutablePath("/bin/echo"); // jobDescriptor.setAllEnvExport(true); // jobDescriptor.setMailOptions("n"); // jobDescriptor.setStandardOutFile(workingDirectory + File.separator + "application.out"); // jobDescriptor.setStandardErrorFile(workingDirectory + File.separator + "application.err"); // jobDescriptor.setNodes(1); // jobDescriptor.setProcessesPerNode(1); // jobDescriptor.setQueueName("normal"); // jobDescriptor.setMaxWallTime("60"); // jobDescriptor.setAcountString("sds128"); // List<String> inputs = new ArrayList<String>(); // jobDescriptor.setOwner("ogce"); // inputs.add("Hello World"); // jobDescriptor.setInputValues(inputs); // //finished construction of job object // System.out.println(jobDescriptor.toXML()); // for (int i = 0; i < 1; i++) { // String jobID = pbsCluster.submitBatchJob(jobDescriptor); // System.out.println("Job submitted successfully, Job ID: " + jobID); // MonitorID monitorID = new HPCMonitorID(hostDescription, jobID,null,null,null, "ogce",""); // ((HPCMonitorID)monitorID).setAuthenticationInfo(authenticationInfo); // try { // org.apache.airavata.gfac.monitor.util.CommonUtils.addMonitortoQueue(pullQueue, monitorID, jobExecutionContext); // } catch (Exception e) { // e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. // } // } // try { // // monitorThread.join(); // } catch (Exception e) { // e.printStackTrace(); // } // } // // @Subscribe // public void testCaseShutDown(JobStatusChangeEvent status) { // Assert.assertNotNull(status.getState()); // monitorThread.stop(); // } //}