You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/05 07:26:56 UTC
[4/6] airavata git commit: Removed gsissh module from tools
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/GlobusTlsClient.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/GlobusTlsClient.java b/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/GlobusTlsClient.java
deleted file mode 100644
index 0b91af8..0000000
--- a/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/GlobusTlsClient.java
+++ /dev/null
@@ -1,247 +0,0 @@
-///*
-// *
-// * 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 edu.illinois.ncsa.BCGSS;
-//
-////import edu.illinois.ncsa.bouncycastle.crypto.tls.*;
-////import edu.illinois.ncsa.bouncycastle.asn1.*;
-////import edu.illinois.ncsa.bouncycastle.asn1.x509.*;
-//import org.globus.common.CoGProperties;
-//import org.globus.gsi.CredentialException;
-//import org.globus.gsi.X509Credential;
-//import org.globus.gsi.X509ProxyCertPathParameters;
-//import org.globus.gsi.provider.GlobusProvider;
-//import org.globus.gsi.provider.KeyStoreParametersFactory;
-//import org.globus.gsi.stores.ResourceCertStoreParameters;
-//import org.globus.gsi.stores.ResourceSigningPolicyStore;
-//import org.globus.gsi.stores.ResourceSigningPolicyStoreParameters;
-//import org.globus.gsi.trustmanager.X509ProxyCertPathValidator;
-//import org.globus.gsi.util.CertificateUtil;
-//import org.slf4j.Logger;
-//import org.slf4j.LoggerFactory;
-//
-//import javax.crypto.Cipher;
-//import java.io.ByteArrayInputStream;
-//import java.io.IOException;
-//import java.io.InputStream;
-//import java.security.KeyStore;
-//import java.security.PrivateKey;
-//import java.security.cert.CertStore;
-//import java.security.cert.CertificateException;
-//import java.security.cert.CertificateFactory;
-//import java.security.cert.X509Certificate;
-//
-//public class GlobusTlsClient extends DefaultTlsClient
-//{
-// private Certificate clientCert = new Certificate(new X509CertificateStructure[0]);
-// private PrivateKey clientPrivateKey = null;
-// private X509Certificate[] peerCerts = null;
-// private static final Logger logger = LoggerFactory.getLogger(GlobusTlsClient.class);
-//
-// public X509Certificate[] getPeerCerts() {
-// return peerCerts;
-// }
-//
-// public GlobusTlsClient(X509Credential cred, GlobusTlsCipherFactory factory)
-// throws IOException, CertificateException, CredentialException {
-// super(factory);
-// if (cred == null) {
-// throw new IllegalArgumentException("'cred' cannot be null");
-// }
-//
-// clientCert = new Certificate(
-// X509CertArrayToStructArray(cred.getCertificateChain()));
-// clientPrivateKey = cred.getPrivateKey();
-//
-// if (clientCert.getCerts().length == 0) {
-// throw new IllegalArgumentException(
-// "'cred' contains no certificates");
-// }
-//
-// if (clientPrivateKey == null) {
-// throw new IllegalArgumentException("'clientPrivateKey' cannot be null");
-// }
-// }
-//
-// public TlsAuthentication getAuthentication() throws IOException {
-// return new GlobusTlsAuth();
-// }
-//
-// public int[] getCipherSuites() {
-// return new int[] {
-// CipherSuite.TLS_RSA_WITH_AES_256_CBC_SHA,
-// CipherSuite.TLS_RSA_WITH_AES_128_CBC_SHA,
-// CipherSuite.TLS_RSA_WITH_3DES_EDE_CBC_SHA,
-// };
-// }
-//
-// public class GlobusTlsAuth implements TlsAuthentication {
-//
-// /**
-// * Validates the server's certificate
-// * @param certificate received from server
-// * @throws IOException
-// */
-// public void notifyServerCertificate(Certificate certificate)
-// throws IOException {
-// try {
-// peerCerts = X509CertStructArrayToCertArray(certificate.getCerts());
-//
-// String caCertsLocation =
-// "file:" + CoGProperties.getDefault().getCaCertLocations();
-// String crlPattern = caCertsLocation + "/*.r*";
-// String sigPolPattern = caCertsLocation + "/*.signing_policy";
-//
-// KeyStore keyStore = KeyStore.getInstance(
-// GlobusProvider.KEYSTORE_TYPE, GlobusProvider.PROVIDER_NAME);
-// CertStore crlStore = CertStore.getInstance(
-// GlobusProvider.CERTSTORE_TYPE,
-// new ResourceCertStoreParameters(null, crlPattern));
-// ResourceSigningPolicyStore sigPolStore =
-// new ResourceSigningPolicyStore(
-// new ResourceSigningPolicyStoreParameters(
-// sigPolPattern));
-// keyStore.load(
-// KeyStoreParametersFactory.createTrustStoreParameters(
-// caCertsLocation));
-// X509ProxyCertPathParameters parameters =
-// new X509ProxyCertPathParameters(keyStore, crlStore,
-// sigPolStore, false);
-// X509ProxyCertPathValidator validator =
-// new X509ProxyCertPathValidator();
-// if (validator.engineValidate(CertificateUtil.getCertPath(peerCerts),
-// parameters) == null) {
-// throw new Exception("X509ProxyCertPathValidator did not return a result");
-// }
-// } catch (Exception e) {
-// logger.error(e.getMessage(), e);
-// throw new TlsFatalAlert(AlertDescription.user_canceled);
-// }
-// }
-//
-// /**
-// * Returns an object representing the client's credentials
-// * @param request
-// * @return the client's credentials
-// * @throws IOException
-// */
-// public TlsCredentials getClientCredentials(CertificateRequest request)
-// throws IOException {
-// return new GlobusTlsCred();
-// }
-// }
-//
-// public class GlobusTlsCred implements TlsSignerCredentials {
-// /**
-// * Encrypts a hash with the client's private key, producing a signature
-// * @param md5andsha1 the hash to encrypt
-// * @return an array of bytes containing the signature
-// * @throws IOException
-// */
-// public byte[] generateCertificateSignature(byte[] md5andsha1)
-// throws IOException {
-// // encrypt the input hash with the private key to produce signature
-// try {
-// Cipher cipher = Cipher.getInstance(clientPrivateKey.getAlgorithm());
-// cipher.init(Cipher.ENCRYPT_MODE, clientPrivateKey);
-// return cipher.doFinal(md5andsha1);
-// } catch (Exception e) {
-// logger.error(e.getMessage(), e);
-// throw new IOException(e);
-// }
-// }
-//
-// public Certificate getCertificate() {
-// return clientCert;
-// }
-// }
-//
-// /**
-// *
-// * @param struct
-// * @return
-// * @throws CertificateException
-// * @throws IOException
-// */
-// public static X509Certificate X509CertStructToCert(
-// X509CertificateStructure struct) throws CertificateException,
-// IOException {
-// CertificateFactory cf = CertificateFactory.getInstance("X.509");
-// InputStream is = new ByteArrayInputStream(struct.getEncoded());
-// X509Certificate cert = (X509Certificate) cf.generateCertificate(is);
-// is.close();
-// return cert;
-// }
-//
-// /**
-// *
-// * @param structs
-// * @return
-// * @throws java.io.IOException
-// * @throws java.security.cert.CertificateException
-// */
-// public static X509Certificate[] X509CertStructArrayToCertArray(
-// X509CertificateStructure[] structs) throws IOException,
-// CertificateException {
-// X509Certificate[] certChain = new X509Certificate[structs.length];
-//
-// for (int i = 0; i < structs.length; ++i) {
-// certChain[i] = X509CertStructToCert(structs[i]);
-// }
-//
-// return certChain;
-// }
-//
-// /**
-// *
-// * @param c
-// * @return
-// * @throws CertificateException
-// * @throws IOException
-// */
-// public static X509CertificateStructure X509CertToStruct(X509Certificate c)
-// throws CertificateException, IOException {
-// ASN1InputStream is = new ASN1InputStream(c.getEncoded());
-// DERObject o = is.readObject();
-// return X509CertificateStructure.getInstance(o);
-// }
-//
-//
-// /**
-// *
-// * @param certs
-// * @return
-// * @throws CertificateException
-// * @throws IOException
-// */
-// public static X509CertificateStructure[] X509CertArrayToStructArray(
-// X509Certificate[] certs) throws CertificateException, IOException {
-// X509CertificateStructure[] structs =
-// new X509CertificateStructure[certs.length];
-//
-// for (int i = 0; i < certs.length; ++i) {
-// structs[i] = X509CertToStruct(certs[i]);
-// }
-//
-// return structs;
-// }
-//}
-//
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/TlsHandlerUtil.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/TlsHandlerUtil.java b/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/TlsHandlerUtil.java
deleted file mode 100644
index 36eec77..0000000
--- a/tools/gsissh/src/main/java/edu/illinois/ncsa/BCGSS/TlsHandlerUtil.java
+++ /dev/null
@@ -1,282 +0,0 @@
-///*
-// *
-// * 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 edu.illinois.ncsa.BCGSS;
-////import edu.illinois.ncsa.bouncycastle.crypto.tls.*;
-//
-//import java.io.*;
-//
-//public class TlsHandlerUtil {
-// private TlsProtocolHandler tlsHandler;
-// private TlsClient tlsClient;
-// private CircularByteBuffer netInStream;
-// private ByteArrayOutputStream netOutStream;
-// private boolean connectionThreadStarted = false;
-// private IOException connectionThreadException = null;
-//
-// /*
-// public TlsHandlerUtil(TlsClient client) {
-// this(client, new TlsProtocolVersion[] {TlsProtocolVersion.TLSv10,
-// TlsProtocolVersion.SSLv3});
-// }
-// */
-//
-// //public TlsHandlerUtil(TlsClient client, TlsProtocolVersion[] protocols) {
-// public TlsHandlerUtil(TlsClient client) {
-// this.tlsClient = client;
-//
-// this.netInStream = new CircularByteBuffer(
-// CircularByteBuffer.INFINITE_SIZE);
-//
-// //TODO: set a good initial size of buffer?
-// this.netOutStream = new ByteArrayOutputStream();
-//
-// this.tlsHandler = new TlsProtocolHandler(
-// netInStream.getInputStream(), netOutStream);
-// //this.tlsHandler.setEnabledProtocols(protocols);
-// }
-//
-// /**
-// *
-// * @param inNetBuf
-// * @return
-// */
-// public byte[] nextHandshakeToken(byte[] inNetBuf) throws IOException {
-// return nextHandshakeToken(inNetBuf, 0, inNetBuf.length);
-// }
-//
-// /**
-// *
-// * @param inNetBuf
-// * @param off
-// * @param len
-// * @return
-// * @throws java.io.IOException
-// */
-// public byte[] nextHandshakeToken(byte[] inNetBuf, int off, int len)
-// throws IOException {
-// if (isHandshakeFinished()) {
-// return null;
-// }
-//
-// if (! isConnectionThreadStarted()) {
-// (new ConnectionThread()).start();
-// }
-//
-//
-// if (tlsHandler.getHandshakeBlocking() > 0) {
-// tlsHandler.decHandshakeBlocking(inNetBuf.length);
-// }
-//
-// netInStream.getOutputStream().write(inNetBuf, off, len);
-//
-// // block until the TlsProtocolHandler's record stream blocks
-// // or until the handshake is finished. After either, a handshake
-// // token may have been produced
-// while (tlsHandler.getHandshakeBlocking() == 0 &&
-// ! isHandshakeFinished()) {
-//
-// IOException e = getConnectionThreadException();
-// if (e != null) {
-// throw new IOException("TLS connection thread exception", e);
-// }
-//
-// try {
-// Thread.sleep(25);
-// } catch (InterruptedException e1) {
-// throw new IOException("Handshake interrupted while waiting " +
-// "for new network data to be processed", e1);
-// }
-// }
-//
-// byte[] token = drainNetOutStream();
-//
-// if (token.length > 0) {
-// return token;
-// }
-//
-// if (tlsHandler.getHandshakeBlocking() > 0) {
-// // no token produced; need more data
-// return null;
-// }
-//
-// if (isHandshakeFinished()) {
-// return null;
-// } else {
-// throw new IOException("No handshake data available, but the " +
-// "record stream is not blocking and wasn't interrupted");
-// }
-// }
-//
-// /**
-// *
-// * @param appData
-// * @return
-// * @throws IOException
-// */
-// public byte[] wrap(byte[] appData) throws IOException {
-// return wrap(appData, 0, appData.length);
-// }
-//
-// /**
-// *
-// * @param appData
-// * @param off
-// * @param len
-// * @return
-// * @throws IOException
-// */
-// public byte[] wrap(byte[] appData, int off, int len) throws IOException {
-// if (! isHandshakeFinished()) {
-// return null;
-// }
-//
-// tlsHandler.getOutputStream().write(appData, off, len);
-// return drainNetOutStream();
-// }
-//
-// /**
-// *
-// * @param netData
-// * @return
-// * @throws IOException
-// */
-// public byte[] unwrap(byte[] netData) throws IOException {
-// return unwrap(netData, 0, netData.length);
-// }
-//
-// /**
-// *
-// * @param netData
-// * @param off
-// * @param len
-// * @return
-// * @throws IOException
-// */
-// public byte[] unwrap(byte[] netData, int off, int len) throws IOException {
-// if (! isHandshakeFinished()) {
-// return null;
-// }
-//
-// if (netData.length == 0) {
-// return null;
-// }
-//
-// netInStream.getOutputStream().write(netData, off, len);
-//
-// // Force the record to be processed in order to put an unknown
-// // amount of data in the application queue. It's assumed that
-// // the netData parameter is a full SSL record; if it's not, then
-// // this method will block indefinitely
-// byte[] tmp = new byte[1];
-// tlsHandler.getInputStream().read(tmp, 0, 1);
-//
-// int avail = tlsHandler.getApplicationDataQueueSize();
-//
-// if (avail == 0) {
-// return tmp;
-// }
-//
-// byte[] appBuf = new byte[avail + 1];
-// appBuf[0] = tmp[0];
-// tlsHandler.getInputStream().read(appBuf, 1, avail);
-//
-// return appBuf;
-// }
-//
-// /**
-// *
-// * @return
-// * @throws java.io.IOException
-// */
-// public byte[] close() throws IOException {
-// tlsHandler.close();
-// return drainNetOutStream();
-// }
-//
-// /**
-// *
-// * @return
-// */
-// public boolean isHandshakeFinished() {
-// return this.tlsHandler.isHandshakeFinished();
-// }
-//
-// /**
-// *
-// * @return
-// */
-// private byte[] drainNetOutStream() {
-// byte[] rval = netOutStream.toByteArray();
-// netOutStream.reset();
-// return rval;
-// }
-//
-// /**
-// *
-// * @param b
-// */
-// private synchronized void setConnectionThreadStarted(boolean b) {
-// connectionThreadStarted = b;
-// }
-//
-// /**
-// *
-// * @return
-// */
-// private synchronized boolean isConnectionThreadStarted() {
-// return connectionThreadStarted;
-// }
-//
-// /**
-// *
-// * @return
-// */
-// private IOException getConnectionThreadException() {
-// return connectionThreadException;
-// }
-//
-// /**
-// *
-// * @param e
-// */
-// private void setConnectionThreadException(IOException e) {
-// this.connectionThreadException = e;
-// }
-//
-// /**
-// *
-// */
-// private class ConnectionThread extends Thread {
-// /**
-// *
-// */
-// public void run() {
-// setConnectionThreadStarted(true);
-// try {
-// tlsHandler.connect(tlsClient);
-// } catch (IOException e) {
-// setConnectionThreadException(e);
-// }
-// //System.out.println("TLS connection thread done");
-// }
-// }
-//}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java
deleted file mode 100644
index 1c07a39..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/GSSContextX509.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- *
- * 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.gfac.ssh;
-
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-
-import org.globus.common.CoGProperties;
-import org.globus.gsi.gssapi.auth.HostAuthorization;
-import org.gridforum.jgss.ExtendedGSSCredential;
-import org.gridforum.jgss.ExtendedGSSManager;
-import org.ietf.jgss.GSSContext;
-import org.ietf.jgss.GSSCredential;
-import org.ietf.jgss.GSSException;
-import org.ietf.jgss.GSSName;
-import org.ietf.jgss.MessageProp;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.jcraft.jsch.JSchException;
-
-/**
- * This class is based on GSSContextKrb5; it substitutes the globus
- * ExtendedGSSManager and uses the SecurityUtils method to get the credential if
- * one is not passed in from memory.
- *
- */
-public class GSSContextX509 implements com.jcraft.jsch.GSSContext {
-
- private GSSContext context = null;
- private GSSCredential credential;
- private static final Logger logger = LoggerFactory.getLogger(GSSContextX509.class);
-
- public void create(String user, String host) throws JSchException {
- try {
-// ExtendedGSSManager manager = (ExtendedGSSManager) ExtendedGSSManager.getInstance();
-
- if (credential == null) {
- try {
- credential = getCredential();
- } catch (SecurityException t) {
- System.out.printf("Could not get proxy: %s: %s\n", t.getClass().getSimpleName(), t.getMessage());
- throw new JSchException(t.toString());
- }
- }
-
- String cname = host;
-
- try {
- cname = InetAddress.getByName(cname).getCanonicalHostName();
- } catch (UnknownHostException e) {
- }
-
- GSSName name = HostAuthorization.getInstance().getExpectedName(credential, cname);
-
-// context = manager.createContext(name, null, credential, GSSContext.DEFAULT_LIFETIME);
-//
-// // RFC4462 3.4. GSS-API Session
-// //
-// // When calling GSS_Init_sec_context(), the client MUST set
-// // integ_req_flag to "true" to request that per-message integrity
-// // protection be supported for this context. In addition,
-// // deleg_req_flag MAY be set to "true" to request access delegation,
-// // if
-// // requested by the user.
-// //
-// // Since the user authentication process by its nature authenticates
-// // only the client, the setting of mutual_req_flag is not needed for
-// // this process. This flag SHOULD be set to "false".
-//
-// // TODO: OpenSSH's sshd does accept 'false' for mutual_req_flag
-// // context.requestMutualAuth(false);
-// context.requestMutualAuth(true);
-// context.requestConf(true);
-// context.requestInteg(true); // for MIC
-// context.requestCredDeleg(true);
-// context.requestAnonymity(false);
-
-// context = new BCGSSContextImpl(name, (GlobusGSSCredentialImpl) credential);
-// context.requestLifetime(GSSCredential.DEFAULT_LIFETIME);
-// context.requestCredDeleg(true);
-// context.requestMutualAuth(true);
-// context.requestReplayDet(true);
-// context.requestSequenceDet(true);
-// context.requestConf(false);
-// context.requestInteg(true);
-// ((ExtendedGSSContext)context).setOption(GSSConstants.DELEGATION_TYPE, GSIConstants.DELEGATION_TYPE_FULL);
-
- return;
- } catch (GSSException ex) {
- throw new JSchException(ex.toString());
- }
- }
-
- private static GSSCredential getProxy() {
- return getProxy(null, GSSCredential.DEFAULT_LIFETIME);
- }
-
- /**
- * @param x509_USER_PROXY
- * path to the proxy.
- * @param credentialLifetime
- * in seconds.
- * @return valid credential.
- * if proxy task throws exception (or if proxy cannot be found).
- */
- private static GSSCredential getProxy(String x509_USER_PROXY, int credentialLifetime) throws SecurityException {
- if (x509_USER_PROXY == null)
- x509_USER_PROXY = System.getProperty("x509.user.proxy");
-
-// if (x509_USER_PROXY == null) {
-// SystemUtils.envToProperties();
-// x509_USER_PROXY = System.getProperty("x509.user.proxy");
-// }
-
- if (x509_USER_PROXY == null || "".equals(x509_USER_PROXY))
- x509_USER_PROXY = CoGProperties.getDefault().getProxyFile();
-
- if (x509_USER_PROXY == null)
- throw new SecurityException("could not get credential; no location defined");
-
- ExtendedGSSManager manager = (ExtendedGSSManager) ExtendedGSSManager.getInstance();
-
- // file...load file into a buffer
- try {
- File f = new File(x509_USER_PROXY);
- byte[] data = new byte[(int) f.length()];
- FileInputStream in = new FileInputStream(f);
- // read in the credential data
- in.read(data);
- in.close();
- return manager.createCredential(data, ExtendedGSSCredential.IMPEXP_OPAQUE, credentialLifetime, null, // use
- // default
- // mechanism
- // -
- // GSI
- GSSCredential.INITIATE_AND_ACCEPT);
- } catch (Throwable t) {
- throw new SecurityException("could not get credential from " + x509_USER_PROXY, t);
- }
- }
-
- public boolean isEstablished() {
- // this must check to see if the call returned GSS_S_COMPLETE
- if (context != null){
- return context.isEstablished();
- }
- return false;
- }
-
- public byte[] init(byte[] token, int s, int l) throws JSchException {
- try {
- if (context != null){
- return context.initSecContext(token, s, l);
- }else {
- throw new JSchException("Context is null..");
- }
- } catch (GSSException ex) {
- throw new JSchException(ex.toString());
- }
- }
-
- public byte[] getMIC(byte[] message, int s, int l) {
- try {
- MessageProp prop = new MessageProp(0, false);
- return context.getMIC(message, s, l, prop);
- } catch (GSSException ex) {
- logger.error(ex.getMessage(), ex);
- return null;
- }
- }
-
- public void dispose() {
- try {
- context.dispose();
- } catch (GSSException ex) {
- }
- }
-
- public void setCredential(GSSCredential credential) {
- this.credential = credential;
- }
-
- public GSSCredential getCredential() {
- return credential;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java
deleted file mode 100644
index beb5b37..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Cluster.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- *
- * 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.gfac.ssh.api;
-
-import java.util.List;
-import java.util.Map;
-
-import org.apache.airavata.gfac.ssh.api.job.JobDescriptor;
-import org.apache.airavata.gfac.ssh.impl.JobStatus;
-
-import com.jcraft.jsch.Session;
-
-/**
- * This interface represents a Cluster machine
- * End users of the API can implement this and come up with their own
- * implementations, but mostly this interface is for internal usage.
- */
-public interface Cluster {
-
- /**
- * This will submit a job to the cluster with a given pbs file and some parameters
- *
- * @param pbsFilePath path of the pbs file
- * @param workingDirectory working directory where pbs should has to copy
- * @return jobId after successful job submission
- * @throws SSHApiException throws exception during error
- */
- public String submitBatchJobWithScript(String pbsFilePath, String workingDirectory) throws SSHApiException;
-
- /**
- * This will submit the given job and not performing any monitoring
- *
- * @param jobDescriptor job descriptor to submit to cluster, this contains all the parameter
- * @return jobID after successful job submission.
- * @throws SSHApiException throws exception during error
- */
- public String submitBatchJob(JobDescriptor jobDescriptor) throws SSHApiException;
-
- /**
- * This will copy the localFile to remoteFile location in configured cluster
- *
- * @param remoteFile remote file location, this can be a directory too
- * @param localFile local file path of the file which needs to copy to remote location
- * @throws SSHApiException throws exception during error
- */
- public void scpTo(String remoteFile, String localFile) throws SSHApiException;
-
- /**
- * This will copy a remote file in path rFile to local file lFile
- * @param remoteFile remote file path, this has to be a full qualified path
- * @param localFile This is the local file to copy, this can be a directory too
- * @throws SSHApiException
- */
- public void scpFrom(String remoteFile, String localFile) throws SSHApiException;
-
- /**
- * This will copy a remote file in path rFile to local file lFile
- * @param remoteFile remote file path, this has to be a full qualified path
- * @param localFile This is the local file to copy, this can be a directory too
- * @throws SSHApiException
- */
- public void scpThirdParty(String remoteFileSorce, String remoteFileTarget) throws SSHApiException;
-
- /**
- * This will create directories in computing resources
- * @param directoryPath the full qualified path for the directory user wants to create
- * @throws SSHApiException throws during error
- */
- public void makeDirectory(String directoryPath) throws SSHApiException;
-
-
- /**
- * This will get the job description of a job which is there in the cluster
- * if jbo is not available with the given ID it returns
- * @param jobID jobId has to pass
- * @return Returns full job description of the job which submitted successfully
- * @throws SSHApiException throws exception during error
- */
- public JobDescriptor getJobDescriptorById(String jobID) throws SSHApiException;
-
- /**
- * This will delete the given job from the queue
- *
- * @param jobID jobId of the job which user wants to delete
- * @return return the description of the deleted job
- * @throws SSHApiException throws exception during error
- */
- public JobDescriptor cancelJob(String jobID) throws SSHApiException;
-
- /**
- * This will get the job status of the the job associated with this jobId
- *
- * @param jobID jobId of the job user want to get the status
- * @return job status of the given jobID
- * @throws SSHApiException throws exception during error
- */
- public JobStatus getJobStatus(String jobID) throws SSHApiException;
- /**
- * This will get the job status of the the job associated with this jobId
- *
- * @param jobName jobName of the job user want to get the status
- * @return jobId of the given jobName
- * @throws SSHApiException throws exception during error
- */
- public String getJobIdByJobName(String jobName, String userName) throws SSHApiException;
-
- /**
- * This method can be used to poll the jobstatuses based on the given
- * user but we should pass the jobID list otherwise we will get unwanted
- * job statuses which submitted by different middleware outside apache
- * airavata with the same uername which we are not considering
- * @param userName userName of the jobs which required to get the status
- * @param jobIDs precises set of jobIDs
- * @return
- */
- public void getJobStatuses(String userName,Map<String,JobStatus> jobIDs)throws SSHApiException;
- /**
- * This will list directories in computing resources
- * @param directoryPath the full qualified path for the directory user wants to create
- * @throws SSHApiException throws during error
- */
- public List<String> listDirectory(String directoryPath) throws SSHApiException;
-
- /**
- * This method can be used to get created ssh session
- * to reuse the created session.
- * @throws SSHApiException
- */
- public Session getSession() throws SSHApiException;
-
- /**
- * This method can be used to close the connections initialized
- * to handle graceful shutdown of the system
- * @throws SSHApiException
- */
- public void disconnect() throws SSHApiException;
-
- /**
- * This gives the server Info
- * @return
- */
- public ServerInfo getServerInfo();
-
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java
deleted file mode 100644
index 024c53d..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandExecutor.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- *
- * 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.gfac.ssh.api;
-
-import com.jcraft.jsch.*;
-import org.apache.airavata.gfac.ssh.api.authentication.*;
-import org.apache.airavata.gfac.ssh.config.ConfigReader;
-import org.apache.airavata.gfac.ssh.jsch.ExtendedJSch;
-import org.apache.airavata.gfac.ssh.util.SSHAPIUIKeyboardInteractive;
-import org.apache.airavata.gfac.ssh.util.SSHKeyPasswordHandler;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This is a generic class which take care of command execution
- * in a shell, this is used through out the other places of the API.
- */
-public class CommandExecutor {
- static {
- JSch.setConfig("gssapi-with-mic.x509", "org.apache.airavata.gfac.ssh.GSSContextX509");
- JSch.setConfig("userauth.gssapi-with-mic", "com.jcraft.jsch.UserAuthGSSAPIWithMICGSSCredentials");
- JSch jSch = new JSch();
- }
-
- private static final Logger log = LoggerFactory.getLogger(CommandExecutor.class);
- public static final String X509_CERT_DIR = "X509_CERT_DIR";
-
- /**
- * This will execute the given command with given session and session is not closed at the end.
- *
- * @param commandInfo
- * @param session
- * @param commandOutput
- * @throws SSHApiException
- */
- public static Session executeCommand(CommandInfo commandInfo, Session session,
- CommandOutput commandOutput) throws SSHApiException {
-
- String command = commandInfo.getCommand();
-
- Channel channel = null;
- try {
- if (!session.isConnected()) {
- session.connect();
- }
- channel = session.openChannel("exec");
- ((ChannelExec) channel).setCommand(command);
- } catch (JSchException e) {
-// session.disconnect();
-
- throw new SSHApiException("Unable to execute command - ", e);
- }
-
- channel.setInputStream(null);
- ((ChannelExec) channel).setErrStream(commandOutput.getStandardError());
- try {
- channel.connect();
- } catch (JSchException e) {
-
- channel.disconnect();
-// session.disconnect();
- throw new SSHApiException("Unable to retrieve command output. Command - " + command, e);
- }
-
-
- commandOutput.onOutput(channel);
- //Only disconnecting the channel, session can be reused
- channel.disconnect();
- return session;
- }
-
- /**
- * This will not reuse any session, it will create the session and close it at the end
- *
- * @param commandInfo Encapsulated information about command. E.g :- executable name
- * parameters etc ...
- * @param serverInfo The SSHing server information.
- * @param authenticationInfo Security data needs to be communicated with remote server.
- * @param commandOutput The output of the command.
- * @param configReader configuration required for ssh/gshissh connection
- * @throws SSHApiException throw exception when error occurs
- */
- public static void executeCommand(CommandInfo commandInfo, ServerInfo serverInfo,
- AuthenticationInfo authenticationInfo,
- CommandOutput commandOutput, ConfigReader configReader) throws SSHApiException {
-
- if (authenticationInfo instanceof GSIAuthenticationInfo) {
- System.setProperty(X509_CERT_DIR, (String) ((GSIAuthenticationInfo)authenticationInfo).getProperties().
- get("X509_CERT_DIR"));
- }
-
-
- JSch jsch = new ExtendedJSch();
-
- log.debug("Connecting to server - " + serverInfo.getHost() + ":" + serverInfo.getPort() + " with user name - "
- + serverInfo.getUserName());
-
- Session session;
-
- try {
- session = jsch.getSession(serverInfo.getUserName(), serverInfo.getHost(), serverInfo.getPort());
- } catch (JSchException e) {
- throw new SSHApiException("An exception occurred while creating SSH session." +
- "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
- " connecting user name - "
- + serverInfo.getUserName(), e);
- }
-
- java.util.Properties config = configReader.getProperties();
- session.setConfig(config);
-
- //=============================================================
- // Handling vanilla SSH pieces
- //=============================================================
- if (authenticationInfo instanceof SSHPasswordAuthentication) {
- String password = ((SSHPasswordAuthentication) authenticationInfo).
- getPassword(serverInfo.getUserName(), serverInfo.getHost());
-
- session.setUserInfo(new SSHAPIUIKeyboardInteractive(password));
-
- // TODO figure out why we need to set password to session
- session.setPassword(password);
-
- } else if (authenticationInfo instanceof SSHPublicKeyFileAuthentication) {
- SSHPublicKeyFileAuthentication sshPublicKeyFileAuthentication
- = (SSHPublicKeyFileAuthentication)authenticationInfo;
-
- String privateKeyFile = sshPublicKeyFileAuthentication.
- getPrivateKeyFile(serverInfo.getUserName(), serverInfo.getHost());
-
- logDebug("The private key file for vanilla SSH " + privateKeyFile);
-
- String publicKeyFile = sshPublicKeyFileAuthentication.
- getPrivateKeyFile(serverInfo.getUserName(), serverInfo.getHost());
-
- logDebug("The public key file for vanilla SSH " + publicKeyFile);
-
- Identity identityFile;
-
- try {
- identityFile = GSISSHIdentityFile.newInstance(privateKeyFile, null, jsch);
- } catch (JSchException e) {
- throw new SSHApiException("An exception occurred while initializing keys using files. " +
- "(private key and public key)." +
- "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
- " connecting user name - "
- + serverInfo.getUserName() + " private key file - " + privateKeyFile + ", public key file - " +
- publicKeyFile, e);
- }
-
- // Add identity to identity repository
- GSISSHIdentityRepository identityRepository = new GSISSHIdentityRepository(jsch);
- identityRepository.add(identityFile);
-
- // Set repository to session
- session.setIdentityRepository(identityRepository);
-
- // Set the user info
- SSHKeyPasswordHandler sshKeyPasswordHandler
- = new SSHKeyPasswordHandler((SSHKeyAuthentication)authenticationInfo);
-
- session.setUserInfo(sshKeyPasswordHandler);
-
- } else if (authenticationInfo instanceof SSHPublicKeyAuthentication) {
-
- SSHPublicKeyAuthentication sshPublicKeyAuthentication
- = (SSHPublicKeyAuthentication)authenticationInfo;
-
- Identity identityFile;
-
- try {
- String name = serverInfo.getUserName() + "_" + serverInfo.getHost();
- identityFile = GSISSHIdentityFile.newInstance(name,
- sshPublicKeyAuthentication.getPrivateKey(serverInfo.getUserName(), serverInfo.getHost()),
- sshPublicKeyAuthentication.getPublicKey(serverInfo.getUserName(), serverInfo.getHost()), jsch);
- } catch (JSchException e) {
- throw new SSHApiException("An exception occurred while initializing keys using byte arrays. " +
- "(private key and public key)." +
- "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
- " connecting user name - "
- + serverInfo.getUserName(), e);
- }
-
- // Add identity to identity repository
- GSISSHIdentityRepository identityRepository = new GSISSHIdentityRepository(jsch);
- identityRepository.add(identityFile);
-
- // Set repository to session
- session.setIdentityRepository(identityRepository);
-
- // Set the user info
- SSHKeyPasswordHandler sshKeyPasswordHandler
- = new SSHKeyPasswordHandler((SSHKeyAuthentication)authenticationInfo);
-
- session.setUserInfo(sshKeyPasswordHandler);
-
- }
-
- // Not a good way, but we dont have any choice
- if (session instanceof ExtendedSession) {
- if (authenticationInfo instanceof GSIAuthenticationInfo) {
- ((ExtendedSession) session).setAuthenticationInfo((GSIAuthenticationInfo)authenticationInfo);
- }
- }
-
- try {
- session.connect();
- } catch (JSchException e) {
- throw new SSHApiException("An exception occurred while connecting to server." +
- "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
- " connecting user name - "
- + serverInfo.getUserName(), e);
- }
-
- String command = commandInfo.getCommand();
-
- Channel channel;
- try {
- channel = session.openChannel("exec");
- ((ChannelExec) channel).setCommand(command);
- } catch (JSchException e) {
-// session.disconnect();
-
- throw new SSHApiException("Unable to execute command - " + command +
- " on server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
- " connecting user name - "
- + serverInfo.getUserName(), e);
- }
-
-
- channel.setInputStream(null);
- ((ChannelExec) channel).setErrStream(commandOutput.getStandardError());
-
- try {
- channel.connect();
- } catch (JSchException e) {
-
- channel.disconnect();
-// session.disconnect();
-
- throw new SSHApiException("Unable to retrieve command output. Command - " + command +
- " on server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
- " connecting user name - "
- + serverInfo.getUserName(), e);
- }
-
- commandOutput.onOutput(channel);
-
- channel.disconnect();
-// session.disconnect();
- }
-
- private static void logDebug(String message) {
- if (log.isDebugEnabled()) {
- log.debug(message);
- }
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java
deleted file mode 100644
index e6797ce..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandInfo.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.apache.airavata.gfac.ssh.api;/*
- *
- * 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.
- *
- */
-
-/**
- * Encapsulates information about
- */
-public interface CommandInfo {
-
- /**
- * Gets the executable command as a string.
- * @return String encoded command. Should be able to execute
- * directly on remote shell. Should includes appropriate parameters.
- */
- String getCommand();
-
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java
deleted file mode 100644
index f275ff0..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/CommandOutput.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.apache.airavata.gfac.ssh.api;/*
- *
- * 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.
- *
- */
-
-
-import com.jcraft.jsch.Channel;
-
-import java.io.OutputStream;
-
-/**
- * Output of a certain command. TODO rethink
- */
-public interface CommandOutput {
-
- /**
- * Gets the output of the command as a stream.
- * @param channel Command output as a stream.
- */
- void onOutput(Channel channel);
-
- /**
- * Gets standard error as a output stream.
- * @return Command error as a stream.
- */
- OutputStream getStandardError();
-
- /**
- * The command exit code.
- * @param code The program exit code
- */
- void exitCode(int code);
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java
deleted file mode 100644
index 67dd043..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Core.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *
- * 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.gfac.ssh.api;
-
-import org.apache.airavata.gfac.ssh.api.job.JobDescriptor;
-
-/**
- * This represents a CPU core of a machine in the cluster
- */
-public class Core {
- private JobDescriptor job;
- private String id;
-
- public Core(String id) {
- this.id = id;
- this.job = null;
- }
-
- /**
- * @return core's id
- */
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- /**
- * @return job running on the core
- */
- public JobDescriptor getJob() {
- return job;
- }
-
- public void setJob(JobDescriptor job) {
- this.job = job;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java
deleted file mode 100644
index 1515f39..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/Node.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- *
- * 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.gfac.ssh.api;
-
-import java.util.HashMap;
-
-public class Node {
- private String Name;
- private Core[] Cores;
- private String state;
- private HashMap<String, String> status;
- private String np;
- private String ntype;
-
- /**
- * @return the machine's name
- */
- public String getName() {
- return Name;
- }
-
- public void setName(String Name) {
- this.Name = Name;
- }
-
- /**
- * @return machine cores as an array
- */
- public Core[] getCores() {
- return Cores;
- }
-
- public void setCores(Core[] Cores) {
- this.Cores = Cores;
- }
-
-
- /**
- * @return the machine state
- */
- public String getState() {
- return state;
- }
-
- public void setState(String state) {
- this.state = state;
- }
-
- /**
- * @return the status
- */
- public HashMap<String, String> getStatus() {
- return status;
- }
-
- public void setStatus(HashMap<String, String> status) {
- this.setStatus(status);
- }
-
-
- /**
- * @return the number of cores in the machine
- */
- public String getNp() {
- return np;
- }
-
-
- public void setNp(String np) {
- this.np = np;
- }
-
- /**
- * @return the ntype of the machine
- */
- public String getNtype() {
- return ntype;
- }
-
-
- public void setNtype(String ntype) {
- this.ntype = ntype;
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java
deleted file mode 100644
index f78825b..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/SSHApiException.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- *
- * 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.gfac.ssh.api;
-
-/**
- * An exception class to wrap SSH command execution related errors.
- */
-public class SSHApiException extends Exception {
-
- public SSHApiException(String message) {
- super(message);
- }
-
- public SSHApiException(String message, Exception e) {
- super(message, e);
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java
deleted file mode 100644
index d3c2160..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/ServerInfo.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.airavata.gfac.ssh.api;/*
- *
- * 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.
- *
- */
-
-/**
- * Encapsulate server information.
- */
-public class ServerInfo {
-
- private String host;
- private String userName;
- private int port = 22;
-
- public ServerInfo(String userName, String host) {
- this.userName = userName;
- this.host = host;
- }
-
- public ServerInfo(String userName,String host, int port) {
- this.host = host;
- this.userName = userName;
- this.port = port;
- }
-
- public String getHost() {
- return host;
- }
-
- public void setHost(String host) {
- this.host = host;
- }
-
- public String getUserName() {
- return userName;
- }
-
- public void setUserName(String userName) {
- this.userName = userName;
- }
-
- public int getPort() {
- return port;
- }
-
- public void setPort(int port) {
- this.port = port;
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/AuthenticationInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/AuthenticationInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/AuthenticationInfo.java
deleted file mode 100644
index 6b4e913..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/AuthenticationInfo.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.apache.airavata.gfac.ssh.api.authentication;/*
- *
- * 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.
- *
- */
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 11:25 AM
- */
-
-/**
- * An empty interface that represents authentication data to the API.
- */
-public interface AuthenticationInfo {
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/GSIAuthenticationInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/GSIAuthenticationInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/GSIAuthenticationInfo.java
deleted file mode 100644
index 1f327f0..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/GSIAuthenticationInfo.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package org.apache.airavata.gfac.ssh.api.authentication;/*
- *
- * 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.
- *
- */
-
-import org.ietf.jgss.GSSCredential;
-
-import java.util.Properties;
-
-/**
- * Authentication data. Could be MyProxy user name, password, could be GSSCredentials
- * or could be SSH keys.
- */
-public abstract class GSIAuthenticationInfo implements AuthenticationInfo {
-
- public Properties properties = new Properties();
-
- public abstract GSSCredential getCredentials() throws SecurityException;
-
- public Properties getProperties() {
- return properties;
- }
-
- public void setProperties(Properties properties) {
- this.properties = properties;
- }
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHKeyAuthentication.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHKeyAuthentication.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHKeyAuthentication.java
deleted file mode 100644
index ebd79f2..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHKeyAuthentication.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.apache.airavata.gfac.ssh.api.authentication;/*
- *
- * 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.
- *
- */
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 2:39 PM
- */
-
-/**
- * Abstracts out common methods for SSH key authentication.
- */
-public interface SSHKeyAuthentication extends AuthenticationInfo {
-
- /**
- * This is needed only if private key and public keys are encrypted.
- * If they are not encrypted we can just return null.
- * @return User should return pass phrase if keys are encrypted. If not null.
- */
- String getPassPhrase();
-
- /**
- * Callback with the banner message. API user can get hold of banner message
- * by implementing this method.
- * @param message The banner message.
- */
- void bannerMessage(String message);
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPasswordAuthentication.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPasswordAuthentication.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPasswordAuthentication.java
deleted file mode 100644
index fd884f8..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPasswordAuthentication.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *
- * 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.gfac.ssh.api.authentication;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 11:22 AM
- */
-
-/**
- * Password authentication for vanilla SSH.
- */
-public interface SSHPasswordAuthentication extends AuthenticationInfo {
-
- /**
- * Gets the password for given host name and given user name.
- * @param userName The connecting user name name.
- * @param hostName The connecting host.
- * @return Password for the given user.
- */
- String getPassword(String userName, String hostName);
-
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyAuthentication.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyAuthentication.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyAuthentication.java
deleted file mode 100644
index dcedfec..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyAuthentication.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *
- * 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.gfac.ssh.api.authentication;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 9:48 AM
- */
-
-
-/**
- * Public key authentication for vanilla SSH.
- * The public key and private key are returned as byte arrays. Useful when we store private key/public key
- * in a secure storage such as credential store. API user should implement this.
- */
-public interface SSHPublicKeyAuthentication extends SSHKeyAuthentication {
-
- /**
- * Gets the public key as byte array.
- * @param userName The user who is trying to SSH
- * @param hostName The host which user wants to connect to.
- * @return The public key as a byte array.
- */
- byte[] getPrivateKey(String userName, String hostName);
-
- /**
- * Gets the private key as byte array.
- * @param userName The user who is trying to SSH
- * @param hostName The host which user wants to connect to.
- * @return The private key as a byte array.
- */
- byte[] getPublicKey(String userName, String hostName);
-
-}
http://git-wip-us.apache.org/repos/asf/airavata/blob/13c2e79e/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyFileAuthentication.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyFileAuthentication.java b/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyFileAuthentication.java
deleted file mode 100644
index e22b9af..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gfac/gsi/ssh/api/authentication/SSHPublicKeyFileAuthentication.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package org.apache.airavata.gfac.ssh.api.authentication;/*
- *
- * 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.
- *
- */
-
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 9:52 AM
- */
-
-/**
- * Public key authentication for vanilla SSH.
- * The public key and private key stored files are returned. API user should implement this.
- */
-public interface SSHPublicKeyFileAuthentication extends SSHKeyAuthentication {
-
- /**
- * The file which contains the public key.
- * @param userName The user who is trying to SSH
- * @param hostName The host which user wants to connect to.
- * @return The name of the file which contains the public key.
- */
- String getPublicKeyFile(String userName, String hostName);
-
- /**
- * The file which contains the public key.
- * @param userName The user who is trying to SSH
- * @param hostName The host which user wants to connect to.
- * @return The name of the file which contains the private key.
- */
- String getPrivateKeyFile(String userName, String hostName);
-
-
-}