You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2017/09/20 19:40:43 UTC

[2/2] airavata git commit: AIRAVATA-2500 Javadoc for SSHAccountProvisioner interfaces

AIRAVATA-2500 Javadoc for SSHAccountProvisioner interfaces


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/2425187b
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/2425187b
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/2425187b

Branch: refs/heads/AIRAVATA-2500
Commit: 2425187bb505fbc21580d52dc2192043bb18551a
Parents: 66689a8
Author: Marcus Christie <ma...@apache.org>
Authored: Wed Sep 20 15:05:18 2017 -0400
Committer: Marcus Christie <ma...@apache.org>
Committed: Wed Sep 20 15:05:18 2017 -0400

----------------------------------------------------------------------
 .../SSHAccountProvisioner.java                  | 43 ++++++++++++++++++++
 .../SSHAccountProvisionerProvider.java          | 21 ++++++++++
 2 files changed, 64 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/2425187b/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisioner.java
----------------------------------------------------------------------
diff --git a/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisioner.java b/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisioner.java
index 866ef5c..395b622 100644
--- a/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisioner.java
+++ b/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisioner.java
@@ -22,11 +22,54 @@ package org.apache.airavata.accountprovisioning;
 
 import java.util.Map;
 
+/**
+ * An SSHAccountProvisioner is capable of installing an Airavata-managed SSH public key onto a compute host for a user.
+ * SSHAccountProvisioners may also optionally provide the capability to create accounts directly on the compute host
+ * for the user. An SSHAccountProvisioner's {@link SSHAccountProvisionerProvider} provides some methods to define the
+ * configuration params that this SSHAccountProvisioner requires as well as some metadata method to describe the
+ * capabilities of this SSHAccountProvisioner.
+ */
 public interface SSHAccountProvisioner {
 
+    /**
+     * Initialize this SSHAccountProvisioner.
+     * @param config
+     */
     void init(Map<ConfigParam, String> config);
+
+    /**
+     * Return true if this user has an account on the compute host
+     * @param userId the Airavata user id
+     * @return
+     * @throws InvalidUsernameException
+     */
     boolean hasAccount(String userId) throws InvalidUsernameException;
+
+    /**
+     * Create an account for the user if no account exists.  May throw {@link UnsupportedOperationException} if
+     * unimplemented for this SSHAccountProvisioner.
+     * @param userId the Airavata user id
+     * @param sshPublicKey the public key part of an Airavata managed SSH credential
+     * @throws InvalidUsernameException
+     */
     void createAccount(String userId, String sshPublicKey) throws InvalidUsernameException;
+
+    /**
+     * Install an SSH key for the user on the compute host.
+     * @param userId the Airavata user id
+     * @param sshPublicKey the public key part of an Airavata managed SSH credential
+     * @throws InvalidUsernameException
+     */
     void installSSHKey(String userId, String sshPublicKey) throws InvalidUsernameException;
+
+    /**
+     * Get the scratch location that should be created for the user. Note: this method doesn't create the scratch
+     * location on the compute host, it merely determines a path to a good scratch location to be used by a gateway
+     * on behalf of the user.
+     *
+     * @param userId
+     * @return a filesystem path (e.g. "/N/scratch/username/some-gateway")
+     * @throws InvalidUsernameException
+     */
     String getScratchLocation(String userId) throws InvalidUsernameException;
 }

http://git-wip-us.apache.org/repos/asf/airavata/blob/2425187b/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisionerProvider.java
----------------------------------------------------------------------
diff --git a/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisionerProvider.java b/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisionerProvider.java
index 297c757..c0407d5 100644
--- a/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisionerProvider.java
+++ b/modules/compute-account-provisioning/src/main/java/org/apache/airavata/accountprovisioning/SSHAccountProvisionerProvider.java
@@ -32,8 +32,29 @@ public interface SSHAccountProvisionerProvider {
     default String getName() {
         return this.getClass().getName();
     }
+
+    /**
+     * Return the {@link ConfigParam}s for the associated SSHAccountProvisioner.
+     * @return
+     */
     List<ConfigParam> getConfigParams();
+
+    /**
+     * Instantiate and initialize the associated SSHAccountProvisioner.
+     * @param config
+     * @return
+     */
     SSHAccountProvisioner createSSHAccountProvisioner(Map<ConfigParam,String> config);
+
+    /**
+     * Return true if the associated SSHAccountProvisioner can create accounts for a user on a compute host.
+     * @return
+     */
     boolean canCreateAccount();
+
+    /**
+     * Return true if the associated SSHAccountProvisioner can install an SSH public key on a compute host for the user.
+     * @return
+     */
     boolean canInstallSSHKey();
 }