Repository: airavata Updated Branches: refs/heads/master e6126da9e -> dd7e6c750
modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/565ea4b6 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/565ea4b6 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/565ea4b6 Branch: refs/heads/master Commit: 565ea4b6862a9ca15c789a206dfd4b83b93424e0 Parents: d89835b Author: lahiru <[email protected]> Authored: Tue Jul 15 12:20:43 2014 -0400 Committer: lahiru <[email protected]> Committed: Tue Jul 15 12:20:43 2014 -0400 ---------------------------------------------------------------------- .../gfac/services/impl/CredentialStoreTest.java | 145 +++++++++++++++++++ 1 file changed, 145 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/565ea4b6/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java b/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java new file mode 100644 index 0000000..1732412 --- /dev/null +++ b/modules/gfac/gfac-ssh/src/test/java/org/apache/airavata/core/gfac/services/impl/CredentialStoreTest.java @@ -0,0 +1,145 @@ +/* + * + * 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 junit.framework.Assert; +import org.apache.airavata.client.AiravataAPIFactory; +import org.apache.airavata.client.api.AiravataAPI; +import org.apache.airavata.client.api.exception.AiravataAPIInvocationException; +import org.apache.airavata.common.exception.AiravataConfigurationException; +import org.apache.airavata.common.exception.ApplicationSettingsException; +import org.apache.airavata.common.utils.ClientSettings; +import org.apache.airavata.common.utils.DBUtil; +import org.apache.airavata.common.utils.ServerSettings; +import org.apache.airavata.credential.store.credential.impl.ssh.SSHCredential; +import org.apache.airavata.credential.store.store.CredentialReader; +import org.apache.airavata.credential.store.store.impl.CredentialReaderImpl; +import org.apache.airavata.gfac.GFacException; +import org.apache.airavata.gfac.RequestData; +import org.apache.airavata.gfac.ssh.security.TokenizedSSHAuthInfo; +import org.apache.airavata.gsi.ssh.api.SSHApiException; +import org.apache.airavata.gsi.ssh.api.ServerInfo; +import org.apache.airavata.gsi.ssh.impl.PBSCluster; +import org.apache.airavata.gsi.ssh.util.CommonUtils; +import org.apache.airavata.registry.api.AiravataRegistry2; +import org.apache.airavata.registry.api.AiravataRegistryFactory; +import org.apache.airavata.registry.api.AiravataUser; +import org.apache.airavata.registry.api.Gateway; +import org.apache.airavata.registry.api.exception.RegAccessorInstantiateException; +import org.apache.airavata.registry.api.exception.RegAccessorInvalidException; +import org.apache.airavata.registry.api.exception.RegAccessorUndefinedException; +import org.apache.airavata.registry.api.exception.RegException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.annotations.BeforeTest; +import org.testng.annotations.Test; + +import java.util.UUID; + +public class CredentialStoreTest { + private final static Logger logger = LoggerFactory.getLogger(CredentialStoreTest.class); + + @BeforeTest + public void testGSISSHProvider() throws GFacException, IllegalAccessException, ClassNotFoundException, InstantiationException, ApplicationSettingsException, SSHApiException { + System.setProperty("credential.store.keystore.url", "/Users/lahirugunathilake/Downloads/airavata_sym.jks"); + System.setProperty("credential.store.keystore.alias", "airavata"); + System.setProperty("credential.store.keystore.password", "airavata"); + System.setProperty("myproxy.username", "ogce"); + System.setProperty("myproxy.password", "OpenGwy14"); + System.setProperty("trusted.cert.location", "/Users/lahirugunathilake/Downloads/certificates"); + System.setProperty("credential.store.jdbc.url","jdbc:mysql://gw111.iu.xsede.org:3306/airavata_pga_prod"); + System.setProperty("credential.store.jdbc.user","pgaAiravataUser"); + System.setProperty("credential.store.jdbc.password","pgaAiravataPWD"); + System.setProperty("credential.store.jdbc.driver","com.mysql.jdbc.Driver"); + + + try { + AiravataRegistry2 registry = AiravataRegistryFactory.getRegistry(new Gateway("default"), + new AiravataUser("admin")); + UUID uuid = UUID.randomUUID(); + System.out.println(uuid.toString()); + String publicKey = registry.createCredential("default",uuid.toString(),"cgateway" ); + System.out.println(publicKey); +// String tokenId = uuid.toString(); + String tokenId = "2c308fa9-99f8-4baa-92e4-d062e311483c"; + CredentialReader credentialReader = new CredentialReaderImpl(new DBUtil("jdbc:mysql://gw111.iu.xsede.org:3306/airavata_pga_prod", + "pgaAiravataUser", "pgaAiravataPWD", "com.mysql.jdbc.Driver")); + + + RequestData requestData = new RequestData(); + requestData.setMyProxyUserName("cgateway"); + requestData.setTokenId(tokenId); + requestData.setGatewayId("default"); + TokenizedSSHAuthInfo tokenizedSSHAuthInfo = new TokenizedSSHAuthInfo(credentialReader, requestData); + + SSHCredential credentials = tokenizedSSHAuthInfo.getCredentials(); + ServerInfo serverInfo = new ServerInfo("cgateway", "bigred2.uits.iu.edu"); + + PBSCluster pbsCluster = new PBSCluster(serverInfo, tokenizedSSHAuthInfo, CommonUtils.getPBSJobManager("/opt/torque/bin/")); + Assert.assertNotNull(pbsCluster); + return; + } catch (RegAccessorInvalidException e) { + e.printStackTrace(); + } catch (RegAccessorInstantiateException e) { + e.printStackTrace(); + } catch (RegException e) { + e.printStackTrace(); + } catch (AiravataConfigurationException e) { + e.printStackTrace(); + } + } + + @Test + public static void main(String[] args) { + try { + new CredentialStoreTest().testGSISSHProvider(); + } catch (GFacException e) { + e.printStackTrace(); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } catch (InstantiationException e) { + e.printStackTrace(); + } catch (ApplicationSettingsException e) { + e.printStackTrace(); + } catch (SSHApiException e) { + e.printStackTrace(); + } + } + + private static AiravataAPI getAiravataAPI() throws AiravataAPIInvocationException, ApplicationSettingsException { + AiravataAPI airavataAPI; + try { + String sysUser = ClientSettings.getSetting("admin"); + String gateway = ClientSettings.getSetting("default"); + airavataAPI = AiravataAPIFactory.getAPI(gateway, sysUser); + } catch (AiravataAPIInvocationException e) { + logger.error("Unable to create airavata API", e.getMessage()); + throw new AiravataAPIInvocationException(e); + } catch (ApplicationSettingsException e) { + logger.error("Unable to create airavata API", e.getMessage()); + throw new ApplicationSettingsException(e.getMessage()); + } + return airavataAPI; + } + +}
