Repository: airavata-docs Updated Branches: refs/heads/master 2cdb3e67b -> 9259dfe44
http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/FAQ.md ---------------------------------------------------------------------- diff --git a/0.16/FAQ.md b/0.16/FAQ.md new file mode 100644 index 0000000..d0780db --- /dev/null +++ b/0.16/FAQ.md @@ -0,0 +1,220 @@ +## <h2 id="AiravataCent"> FAQs</h2> + + +<a href="#InstallFAQ">Installation FAQs</a></br> +<a href="#ConfigFGAQ">Configuration FAQs</a></br> +<a href="#userFAQ">User FAQs</a> + +### <h3 id="InstallFAQ">Installation FAQs </h3> +<b class="blue"> Q1.</b> I have setup my own gateway and Airavata. When I log into the gateway I cannot create Compute resources. What should I do?</br> +<b class="blue">Answer: </b> In your pga_config.php (in folder .../testdrive/app/config) under heading 'Portal Related Configurations' set 'super-admin-portal' => false, to true.</br> +<br><b class="blue">Q2.</b> I don't get notifications when users create new accounts in my gateway. Why?</br> +<b class="blue">Answer: </b> That's because you have not defined an email address in <br>'admin-emails' => ['[email protected]','[email protected]']. Here you can add one or many.</br> +<br><br><b class="blue"> Q3.</b> I am not receiving email notifications from compute resources for job status changes. What should I do?</br> +<b class="blue">Answer: </b> In airavata-server.properties please locate and set your email account information. +<pre><code>email.based.monitor.host=imap.gmail.com [email protected] +email.based.monitor.password=zzzz +email.based.monitor.folder.name=INBOX +email.based.monitor.store.protocol=imaps (either imaps or pop3)</pre></code> +<br><br><b class="blue"> Q4.</b> In my Airavata log I have error messages like +<br>ERROR org.apache.airavata.api.server.handler.AiravataServerHandler - Error occurred while retrieving SSH public keys for gateway +<br>ERROR org.apache.airavata.credential.store.server.CredentialStoreServerHandler - Error occurred while retrieving credentials +<br></br>What should I do?<br> +<br><b class="blue">Answer: </b> This could be due to missing tables in your credential store database. Check whether CREDENTIALS and COMMUNITY_USER tables exits. If not create then using +<pre><code>CREATE TABLE COMMUNITY_USER +( + GATEWAY_ID VARCHAR(256) NOT NULL, + COMMUNITY_USER_NAME VARCHAR(256) NOT NULL, + TOKEN_ID VARCHAR(256) NOT NULL, + COMMUNITY_USER_EMAIL VARCHAR(256) NOT NULL, + PRIMARY KEY (GATEWAY_ID, COMMUNITY_USER_NAME, TOKEN_ID) +); +</pre></code> +<pre><code>CREATE TABLE CREDENTIALS +( + GATEWAY_ID VARCHAR(256) NOT NULL, + TOKEN_ID VARCHAR(256) NOT NULL, + CREDENTIAL BLOB NOT NULL, + PORTAL_USER_ID VARCHAR(256) NOT NULL, + TIME_PERSISTED TIMESTAMP DEFAULT NOW() ON UPDATE NOW(), + PRIMARY KEY (GATEWAY_ID, TOKEN_ID) +); +</pre></code> +<br><br><b class="blue"> Q5.</b> I cannot login to my Compute Resource and launch jobs from Airavata using the SSH key I generated. What should I do? +<br><b class="blue">Answer: </b> Steps to use generated SSH key<br> + - Generate SSH key + token using Credential Store<br> + - Add the generated token to your resource through PGA --> Admin Dashboard --> Gateway Preferences<br> + - Add the generated SSH key<br> + +<br><b class="blue"> Q6.</b> When installing PGA in MAC i got below error after updating the composer. + <br>- Error<br> + Mcrypt PHP extension required.<br> + Script php artisan clear-compiled handling the post-update-cmd event returned with an error<br> + [RuntimeException]<br> + Error Output: +<br><b class="blue">Answer: </b> + Install mcrypt installation; + <a href="http://coolestguidesontheplanet.com/install-mcrypt-php-mac-osx-10-10-yosemite-development-server/" target="_blanks">mcrypt Installation Steps</a> + +<br><b class="blue"> Q7.</b> After following the required steps only the home page is working and some images are not shown properly. + <br><b class="blue">Answer: </b>If you are facing this behavior first check whether you have enabled mod_rewrite module in apache webserver. + <br>And also check whether you have set AllowOverride All in the Vhost configuration file in apache web server. <br>(e.g file location is /etc/apache2/sites-available/default and there should be two places where you want to change) +<br><pre><code> +<VirtualHost *:80> + ServerAdmin [email protected] + DocumentRoot /var/www/html/portal/public + ServerName pga.example.com + <Directory "/var/www/html/portal/public"> + AllowOverride all + </Directory> + ErrorLog logs/pga_error_log + CustomLog logs/pga--access_log common +</VirtualHost></code></pre> + <br> +<br><b class="blue"> Q8.</b> I get the Error message Permission Denied to app/storage directory.<br> + <br><b class="blue">Answer: </b>Execute the following command and grant all permissions; <pre><code> sudo chmod -R 777 app/storage</code></pre> + +<br><b class="blue"> Q9.</b> In Ubuntu environment when executing sudo composer update it fails with message "Mcrypt PHP extension required". + <br><b class="blue">Answer: </b>To fix this install PHP mcrypt extension by following the below steps; + <pre><code>sudo apt-get install php5-mcrypt</code></pre> + Locate mcrypt.so ,to get its location + Locate mcrypt.ini and open the mcrypt.ini file + <pre><code>sudo pico /etc/php5/mods-available/mcrypt.ini</code></pre> + Change the at line a extension=<location of the mcrypt.so file> eg:/usr/lib/php5/20121212/mcrypt.so Save changes. + Execute the command: <pre><code>sudo php5enmod mcrypt</code></pre> + Now restart the apache server again and test PGA web-interface + +<br><b class="blue"> Q10.</b> When tried to login or create a new user account an Error is thrown which is similar to PHP Fatal error: SOAP-ERROR: Parsing WSDL: Couldn't load from... + <br><b class="blue">Answer: </b> If you face this kind of an error first check whether you have enabled PHP SOAP and OpenSSL extensions. If even after enabling them the issue is still occurring try updating the PHP OpenSSL extension. (Using command like yum update openssl) + +<br><b class="blue"> Q11.</b> If you are seeing an error similar to following in your airavata.log <br> +Error: ERROR org.apache.airavata.registry.core.app.catalog.impl.StorageResourceImplââ- Error while retrieving storage resource... + javax.persistence.NoResultException: Query "SELECT p FROM StorageResource p WHERE p.storageResourceId =:param0" selected no result, but expected unique result. +<br><b class="blue">Answer: </b> Add storage resource ID in to the pga_config.php in your gateway code/app/config directory. + +<br><b class="blue"> Q12.</b> I am getting error <br> +2016-05-19 16:17:08,225 [main] ERROR org.apache.airavata.server.ServerMain - Server Start Error: +java.lang.RuntimeException: Failed to create database connection pool. <br> + +What should i do? +<br><b class="blue">Answer: </b> Airavata cannot create database connection because the mysql jar is not existing. Please follow step 8 of documentation in Installation --> Airavata --> Airavata Installation + +### <h3 id="ConfigFGAQ">Configuration FAQs</h3> +<br><b class="blue"> Q1 </b> What each application input property mean? </br> +<b class="blue">Answer: </b> </br> + - <b>Name:</b> </br> + Identifier of the application input</br> + - <b>Value:</b></br> + This could be a STRING value or it can also be used to set input file name.</br> + - <b>Type: </b></br> + Input type, List contain STRING, INTEGER, FLOAT, URI, STDOUT and STDERR</br> + - <b>Application Arguments: </b></br> + These are are the characters you would want on commandline in job execution for each input file or character input.</br> + - <b>Standard Input: </b></br> + Futuristic property and not in real use at the moment</br> + -<b> User Friendly Description: </b></br> + A description about the input to the gateway user. This will be displayed for users at experiment creation.</br> + - <b>Input Order: </b></br> + this is a number field. This will be the order inputs displayed in experiment creation.</br> + - <b>Data is Staged:</b></br> + - <b>Is the Input Required: </b></br> + Futuristic property and not in real use at the moment. Whether set to true or false all inputs are currently treated as mandatory.</br> + - <b>Required in Commandline:</b></br> + When this is set to true the arguments and the input file or the value will be available in job execution commandline in job script.</br> + - <b>Meta Data:</b></br> + +<br><b class="blue"> Q2 </b> Application Output Properties</br> +<b class="blue">Answer: </b> +<b>Add Application Output</b></br> + - <b>Name:</b></br> + This is the label for the output.</br> + - <b>Value:</b></br> + This would be the actual name of the output airavata brings back to the PGA.</br> + - <b>Type:</b></br> + Tye of the output. This is mostly depended on the application. To troubleshoot for almost all applications define STDOUT and STDERR</br> + - <b>Application Argument:</b></br> + This would be arguments for outputs need to be in commandline.</br> + - <b>Data Movement: </b></br> + Futuristic property and not in real use at the moment. Whether set to true or false all outputs are currently brought back to PGA.</br> + - <b>Is the Output required?:</b></br> + - <b>Required on command line?:</b></br> + When this is set to true the arguments and the output file or the value will be available in job execution commandline in job script.</br> + - <b>Location:</b></br> + - <b>Search Query:</b></br> + +<br><b class="blue"> Q3 </b> How to make input file available as an executable?</br> +<b class="blue">Answer: </b><br> + - Input files defined are copied to the experiment working directory.</br> + - Input files will be available in commandline when 'Required on Commandline' = true</br> + - To add a commandline argument for a input file add 'Application Argument' for each input file. This will also define the order of files in commandline.</br> + +<br><b class="blue"> Q4 </b> In Application Interface what is the use of 'Enable Optional File Inputs' </br> +<b class="blue">Answer: </b></br> + - By setting 'Enable Optional File Inputs' = true user can add none or many input files at experiment creation.</br> + - In Airavata any input file required for the application to execute need to be defined as a separate input.</br> + - When inputs are defined they are treated as 'Mandatory' inputs.</br> + +<br><b class="blue"> Q5 </b> Where do I add remote resource execution commands?</br> +<b class="blue">Answer: </b>In Admin Dashboard --> Application Deployment </br> +- Add module load commands</br> +- Pre and post job commands</br> +- Environment variables + +### <h3 id="userFAQ"> User FAQs </h3> +<b class="blue"> Q1 </b> What is the Project? </br> +<b class="blue">Answer: </b> </br> + - Project is simply a collection of experiments. </br> + - When creating an experiment it will be under the project you select.</br> + - Projects can be shared with fellow gateway users. </br> + - When the project is shared all experiments in the project will be shared as well. + +<br><b class="blue"> Q2 </b> Where can I get test inputs? <br/> +<b class="blue">Answer: </b> If you need test inputs try downloading from <a href="https://iu.box.com/s/9ztdby709kso8siachz16svn2y511nn7" target="_blank">Test Input Files</a> <br/> + +<br><b class="blue"> Q3 </b> Do I need to provide values for wall-time, node count and CPU count? OR can I go ahead with the given default values? <br/> +<b class="blue">Answer: </b> Default values are given to make life little easy for users. But depending on the job you should change the values. </br>E.g.: If you need only two or less cores than 16 better to change. If you need more wall-time change it, etc....<br/> + + +<br><b class="blue"> Q4 </b> What can I do with email Notifications in experiment? <br/> +<b class="blue">Answer: </b> Submitting a job from PGA does not guarantee job getting executed in the remote resource right away. If you add your email address, when the job starts and completes an email will be sent to you from the remote resource.<br/> + +<br><b class="blue"> Q5 </b> Why 'Save' and 'Save and Launch'? <br> +<b class="blue">Answer: </b> User has the option of either create and 'Save' the experiment for later launch at remote resource <br/>Or <br/> + can directly 'Save and Launch' at once.<br/> + +<br><b class="blue"> Q6 </b> How do I monitor progress?<br/> +<b class="blue">Answer: </b> When the experiment is launched navigate to Experiment Summary Page. + There the experiment and job status will be present. + You can monitor the experiment and job status changes. Refresh the status using 'Refresh' icon on top of the summary page.<br/> + +<br><b class="blue"> Q7 </b> How do I view/download my outputs? <br/> +<b class="blue">Answer: </b> Same way you monitor the experiment progress! + <br/>For each experiment inputs can be downloaded from<br/> + - Experiment Summary page<br/> + - From 'Storage' at the top menu. Here you need to know the Project the experiment belongs to. + <br/> Once you locate the project you can browse for your experiment. <br/> + +<br><b class="blue"> Q8 </b> I want to bring back all the outputs generated by my job. How?<br/> +<b class="blue">Answer: </b> You need to request your gateway admin to simply set Archive to 'true' in respective application interface in Admin Dashboard. Then all the files in the working directory will be brought back to PGA. This flag is set at gateway level not at individual user level. + +<br><b class="blue"> Q9 </b> I want to cancel my experiment. How?<br/> +<b class="blue">Answer: </b> Navigate to experiment Summary and click 'Cancel' button. + Experiments only in operation (LAUNCHED, EXECUTING experiment statuses) can be cancelled. + +<br><b class="blue"> Q10 </b> 2. When I cancel do I still receive any outputs generated?<br/> +<b class="blue">Answer: </b> Files will be not transferred from the remote resource if the experiment is cancelled. However, if the output files were transferred to PGA data directories prior to the cancel request then they will be displayed. + +<br><b class="blue"> Q11 </b> How can I run same application with different different inputs?<br/> +<b class="blue">Answer: </b> Simply clone an existing experiment and change the input files and launch. + +<br><b class="blue"> Q12 </b> I want to change the wall-time of my experiment before launch. How can I do?<br/> +<b class="blue">Answer: </b> Experiments in CREATED state can be modified through Experiment Summary page. Click 'Edit' change values and Save or Save and Launch. + + + + + + + + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/Gateway-Configurations.md ---------------------------------------------------------------------- diff --git a/0.16/Gateway-Configurations.md b/0.16/Gateway-Configurations.md new file mode 100644 index 0000000..103a31b --- /dev/null +++ b/0.16/Gateway-Configurations.md @@ -0,0 +1,124 @@ +## PGA Configurations +### You Need to Have +1. Airavata & PGA installed and running. +2. Tenant created in WSO2 IS hosted by you or Airavata team. +3. Administrator privileges to the gateway. (How do you know? - Can you view Admin Dashboard and view buttons to create applications) +<br> +<br> +### Apache Airavata Component Configuration +1. For this we use 'Admin Dashboard' +2. Gateway Admin need to configure;<br> + - <a href="#CompResource">Compute Resources</a><br> + - <a href="#StoreResource">Storage Resources</a><br> + - <a href= "#Preference">Resource Preferences</a><br> + - <a href= "#AppCatalog">Application Catalog</a><br> + - Application Module<br> + - Application Interface<br> + - Application Deployment<br> + - <a href= "#Credentials">Credential Store</a> + - Generate Credential Store Token + SSH Key. + - Add these to authorized key files and into resource preferences. +<br> +<br> +###<h3 id="CompResource">Compute Resources</h3> +1. Navigate to Admin Dashboard ⇒ Compute Resources ⇒ Register +2. Add Host Name, Description and create the resource. +3. Then keep adding information on rest of the appeared tabs. + - Queues (Queue name is uniqie and cannot be updated. Can delete and create new if required) + - File Systems (This is only for information capturing for future use. Currently this information is not used) + - Job Submission Interfaces + - Data Movement Interfaces +5. Similarly you can add multiple compute resources in to your gateway by selecting 'Register' from the left-hand-side menu. +6. To view the added compute resources navigate to Admin Dashboard ⇒ Compute Resource ⇒ Browse +7. All the resources will be listed. Gateway admin can view, edit, delete and enable and disable them. +<br> +<br> +###<h3 id="StoreResource">Storage Resources</h3> +1. Navigate to Admin Dashboard ⇒ Storage Resources ⇒ Register +2. Add Storage Name, Description and create the resource. +3. Then add data storage information in + - Data Movement Interfaces +5. Similarly you can add multiple storage resources in to your gateway by selecting 'Register' from the left-hand-side menu. +6. To view the added resources navigate to Admin Dashboard ⇒ Storage Resources ⇒ Browse +7. All the resources will be listed. Gateway admin can view, edit, delete them. +<br> +<br> +###<h3 id="Preference">GatewayPreferences for Resources</h3> +1. Navigate Admin Dashboard ⇒ Gateway Profile +2. Both compute resource and storage resource specific preferences are defined here. +3. To add compute resource related preferences click "Add a Compute Resource Preference" and select the resource from the drop-down list. +4. Add/select preferred options and click "Set preferences". +<br>Repeat this for all the resources used within the gateway. +4. For each compute resource, gateway admin need to specify; + - Preferences can be overridden by Airavata - Yes/No? + - Resource login name + - Preferred job submission and data movement protocols + - Preferred queue + - Scratch location + - Project allocation number + - Resource specific credential store token (When added Base Credential Store Token is not valid for the specific resource) +5. For adding storage resource preference click "Add a Storage Resource Preferences", and rest is similar to adding a compute resource preference. +6. For a gateway currently when a storage resource is selected, that resource ID need to be added in to the pga_config.php file in config folder of the hosted gateway. +7. For storage resource preference, gateway admin need to add; + - Login username + - File System Root Location + - Resource Specific Credential Store Token +8. Apart from adding preference the same interface is used to assign a 'Base Credential Store Token". If this is added this is the token used across the gateway for communication with all the compute resources and storage resource. +<br> +<br> +### <h3 id="AppCatalog">Application Catalog</h3> +1. Gateway admin add applications in to the gateway. Adding an application is a 3 step process. +2. Admin need to add application module, interface and deployment information in order to launch specific application jobs on compute resources. +3. Relationship between application module, interface and deployments. + +4. What each step means? + - <b class="blue">Application Module</b> + - Navigation: Admin Dashboard ⇒ App Catalog ⇒ Module + - This is the simple introduction of the application; Name, Version and Description. + - Click 'Create a New Application Module', provide information and create. On creation Application Module ID will be generated for the module. + - All existing modules are listed; Search by name is available for a particular module. + - Gateway admin can edit, delete existing modules. + - Deleting a module will be restricted if it has application interfaces and deployments linked. + - <b class="blue">Application interface</b> + - Navigation: Admin Dashboard ⇒ App Catalog ⇒ Interface + - Application interface defines the required inputs, outputs produced and their characteristics. + - Click on 'Create a New Application Interface', provide information and create. On creation Application Interface ID will be generated for the module. + - All available interfaces are also listed; admin has the option of searching for a particular interface by providing the name in the search. + - Gateway admin can edit, delete existing interfaces. + - Gateway admin cal also clone an existing interface in order to create a new similar interface with slight changes. + - <b class="blue">Application deployment</b> + - Navigation: Admin Dashboard ⇒ App Catalog ⇒ Deployment + - Application deployment describes application deployment details on a specific resource. + - For an application for each resource there is a separate deployment. + - A single application can be deployed in multiple resources. + - Multiple application modules can be deployed in a single resource. E.g: Gaussian09 and Gaussian16 both exists in bridges.psc.edu and they both use same application interface. +<br> +<br> +### <h3 id="Credentials">Credential Store</h3> +1. Navigation: Admin Dashboard ⇒ Credential Store +2. This interface is used to generate SSH key + token pairs. +3. These generated keys can be added in to the authorized key files in each resource for SSH key based communication. +4. Generated key can be either assigned at gateway level; one key + token pair for all the resources OR have separate key for each resource. +5. SSH keys are used for communication with compute resources, storage resources and WSO2 identity server. + +### <h3 id="Preference">WSO2 IS Configuration</h3> +1. Setting up WSO2 IS for the new gateway. +2. Once PGA is cloned all information related to user identity will be in app/config/pga_config.php. No modifications required for users who are using hosted IS. +3. For user identity management we could either use Airavata WSO2 IS or users own WSO2 IS. +4. Download WSO2 Identity Server 5.0 from http://product-dist.wso2.com/products/identity-server/5.0.0/wso2is-5.0.0.zip +5. Extract the downloaded IS binary archive to a location <IS_HOME>. +6. Set JAVA_HOME variable and add jdk bin directory to the PATH variable. +7. Open <IS_HOME>/repository/conf/carbon.xml and change the following property to false +<HideAdminServiceWSDLs>false</HideAdminServiceWSDLs> +8. Execute the following command to run the server +sh <IS_HOME>/bin/wso2server.sh +You should be able to login to the Identity Server Web App using your browser with url http://localhost:9443/carbon . Default admin credentials are username: admin, password: admin +9. For more information regarding WSO2 Identity Server refer <a href="https://docs.wso2.org/display/IS460/Deploying+in+Production" target="_blank">WSO2 IS Server</a> +<br>Gateway admin will be provided with; + - Domain URL for the Gateway + - Admin User name + + + + + http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/Models.md ---------------------------------------------------------------------- diff --git a/0.16/Models.md b/0.16/Models.md new file mode 100644 index 0000000..c470dac --- /dev/null +++ b/0.16/Models.md @@ -0,0 +1,292 @@ +<body> +<div class="container-fluid"> +<h1>Thrift module: sharing_models</h1> +<table class="table-bordered table-striped table-condensed"><thead><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead> +<tr> +<td>sharing_models</td><td></td> +<td><a href="#Struct_Domain">Domain</a><br/> +<a href="#Struct_Entity">Entity</a><br/> +<a href="#Enum_EntitySearchField">EntitySearchField</a><br/> +<a href="#Struct_EntityType">EntityType</a><br/> +<a href="#Enum_GroupCardinality">GroupCardinality</a><br/> +<a href="#Enum_GroupChildType">GroupChildType</a><br/> +<a href="#Struct_GroupMembership">GroupMembership</a><br/> +<a href="#Enum_GroupType">GroupType</a><br/> +<a href="#Struct_PermissionType">PermissionType</a><br/> +<a href="#Enum_SearchCondition">SearchCondition</a><br/> +<a href="#Struct_SearchCriteria">SearchCriteria</a><br/> +<a href="#Struct_Sharing">Sharing</a><br/> +<a href="#Struct_SharingRegistryException">SharingRegistryException</a><br/> +<a href="#Enum_SharingType">SharingType</a><br/> +<a href="#Struct_User">User</a><br/> +<a href="#Struct_UserGroup">UserGroup</a><br/> +</td> +<td><code><a href="#Const_DO_NOT_SET_AT_CLIENTS_ID">DO_NOT_SET_AT_CLIENTS_ID</a></code><br/> +</code></td> +</tr></table> +<hr/><h2 id="Constants">Constants</h2> +<table class="table-bordered table-striped table-condensed"><thead><th>Constant</th><th>Type</th><th>Value</th></thead> +<tr id="Const_DO_NOT_SET_AT_CLIENTS_ID"><td><code>DO_NOT_SET_AT_CLIENTS_ID</code></td><td><code>string</code></td><td><code>"DO_NOT_SET_AT_CLIENTS_ID"</code></td></tr></table><hr/><h2 id="Enumerations">Enumerations</h2> +<div class="definition"><h3 id="Enum_GroupCardinality">Enumeration: GroupCardinality</h3> +<p>This is an system internal enum used to define single user groups and multi users groups. Every user is also +considered as a group in it's own right for implementation ease</p> + +<br/><br/><table class="table-bordered table-striped table-condensed"> +<tr><td><code>SINGLE_USER</code></td><td><code>0</code></td><td> +</td></tr> +<tr><td><code>MULTI_USER</code></td><td><code>1</code></td><td> +</td></tr> +</table></div> +<div class="definition"><h3 id="Enum_GroupType">Enumeration: GroupType</h3> +<p>Group types can be either user level or domain level groups.</p> + +<br/><br/><table class="table-bordered table-striped table-condensed"> +<tr><td><code>DOMAIN_LEVEL_GROUP</code></td><td><code>0</code></td><td> +</td></tr> +<tr><td><code>USER_LEVEL_GROUP</code></td><td><code>1</code></td><td> +</td></tr> +</table></div> +<div class="definition"><h3 id="Enum_GroupChildType">Enumeration: GroupChildType</h3> +<p>System internal data type to match group child types</p> + +<br/><br/><table class="table-bordered table-striped table-condensed"> +<tr><td><code>USER</code></td><td><code>0</code></td><td> +</td></tr> +<tr><td><code>GROUP</code></td><td><code>1</code></td><td> +</td></tr> +</table></div> +<div class="definition"><h3 id="Enum_EntitySearchField">Enumeration: EntitySearchField</h3> +<p>This list of fields that can be used to search entities</p> +<li>NAME : Name of the entity</li> +<li>DESCRIPTION : Description of the entity</li> +<li>FULL_TEXT : Full text field of the entity</li> +<li>PARENT_ENTITY_ID : Parent entity id of the entity</li> +<li>OWNER_ID : Owner of the entity</li> +<li>CREATED_TIME : Created time of the entity</li> +<li>UPDATED_TIME : Updated time of the entity</li> + <li>ENTITY_TYPE_ID : Entity type ID</li> + +<br/><br/><table class="table-bordered table-striped table-condensed"> +<tr><td><code>NAME</code></td><td><code>0</code></td><td> +</td></tr> +<tr><td><code>DESCRIPTION</code></td><td><code>1</code></td><td> +</td></tr> +<tr><td><code>FULL_TEXT</code></td><td><code>2</code></td><td> +</td></tr> +<tr><td><code>PARRENT_ENTITY_ID</code></td><td><code>3</code></td><td> +</td></tr> +<tr><td><code>OWNER_ID</code></td><td><code>4</code></td><td> +</td></tr> +<tr><td><code>PERMISSION_TYPE_ID</code></td><td><code>5</code></td><td> +</td></tr> +<tr><td><code>CREATED_TIME</code></td><td><code>6</code></td><td> +</td></tr> +<tr><td><code>UPDATED_TIME</code></td><td><code>7</code></td><td> +</td></tr> + <tr> + <td><code>ENTITY_TYPE_ID</code></td> + <td><code>8</code></td> + <td> + </td> + </tr> +</table></div> +<div class="definition"><h3 id="Enum_SearchCondition">Enumeration: SearchCondition</h3> +<p>Different search operators that can be used with the entity search fields</p> + <li>EQUAL : Simply matches for equality. Applicable for name, and parent entity id</li> +<li>LIKE : Check for the condition %$FIELD% condition. Applicable for name, and description</li> +<li>FULL_TEXT : Does a full text search. Only applicable for the FULL_TEXT field.</li> +<li>GTE : Greater than or equal. Only applicable for created time and updated time.</li> +<li>LTE : Less than or equal. Only applicable for created time and updated time.</li> + <li>NOT : Not operator. Only applicable for name, permission type id, parent entity id and owner id.</li> + +<br/><br/><table class="table-bordered table-striped table-condensed"> +<tr><td><code>EQUAL</code></td><td><code>0</code></td><td> +</td></tr> +<tr><td><code>LIKE</code></td><td><code>1</code></td><td> +</td></tr> +<tr><td><code>FULL_TEXT</code></td><td><code>2</code></td><td> +</td></tr> +<tr><td><code>GTE</code></td><td><code>3</code></td><td> +</td></tr> +<tr><td><code>LTE</code></td><td><code>4</code></td><td> +</td></tr> + <tr> + <td><code>NOT</code></td> + <td><code>5</code></td> + <td> + </td> + </tr> +</table></div> +<div class="definition"><h3 id="Enum_SharingType">Enumeration: SharingType</h3> +<p>This is an internal enum type for managing sharings</p> + +<br/><br/><table class="table-bordered table-striped table-condensed"> +<tr><td><code>DIRECT_NON_CASCADING</code></td><td><code>0</code></td><td> +</td></tr> +<tr><td><code>DIRECT_CASCADING</code></td><td><code>1</code></td><td> +</td></tr> +<tr><td><code>INDIRECT_CASCADING</code></td><td><code>2</code></td><td> +</td></tr> +</table></div> +<hr/><h2 id="Structs">Data structures</h2> +<div class="definition"><h3 id="Struct_Domain">Struct: Domain</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td><code>"DO_NOT_SET_AT_CLIENTS_ID"</code></td></tr> +<tr><td>2</td><td>name</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>description</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>Domain is the entity that enables multi-tenency in this componenet. Every tenant will be +operating separately it's own silo which is identified by the domain id. In the current implementation domain id +will be same as the domain name</p> +<li>domainId : Will be generated by the server based on the domain name</li> +<li><b>name</b> : A single word name that identifies the domain e.g seagrid, ultrascan</li> +<li>description : A short description for the domain</li> +<li>createdTime : Will be set by the system</li> +<li>updatedTime : Will be set by the system</li> + +<br/></div><div class="definition"><h3 id="Struct_User">Struct: User</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>userId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>userName</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>firstName</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>lastName</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>6</td><td>email</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>7</td><td>icon</td><td><code>binary</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>8</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>9</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>User is the model used to register a user in the system. Minimal user information will be required to provide +regarding the user.</p> +<li><b>userId</b> : User id provided by the client</li> +<li><b>domainId</b> : Domain id for that user</li> +<li><b>userName</b> : User name for the user</li> +<li><b>firstName</b> : First name of the user</li> +<li><b>lastName</b> : Last name of the user</li> +<li><b>email</b> : Email address of the user</li> +<li>icon : A binary field for storing the user icon</li> +<li>createdTime : If client provides this value then the system will use it if not the current time will be set</li> +<li>updatedTime : If client provides this value then the system will use it if not the current time will be set</li> + +<br/></div><div class="definition"><h3 id="Struct_UserGroup">Struct: UserGroup</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>groupId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>name</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>description</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>ownerId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>6</td><td>groupType</td><td><code><a href="#Enum_GroupType">GroupType</a></code></td><td></td><td>optional</td><td></td></tr> +<tr><td>7</td><td>groupCardinality</td><td><code><a href="#Enum_GroupCardinality">GroupCardinality</a></code></td><td></td><td>optional</td><td></td></tr> +<tr><td>8</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>9</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>User group is a collection of users.</p> + <li><b>groupId</b> : Group id provided by the client</li> + <li><b>domainId</b> : Domain id for this user group</li> + <li><b>name</b> : Name for the user group. should be one word</li> + <li>description : Short description for the group.</li> + <li><b>ownerId</b> : Owner id of this group.</li> + <li><b>groupType</b> : Group type (DOMAIN_LEVEL_GROUP, USER_LEVEL_GROUP)</li> + <li><b>groupCardinality</b> : Group cardinality (SINGLE_USER, MULTI_USER)</li> + <li>createdTime : Will be set by the system</li> + <li>updatedTime : Will be set by the system</li> + +<br/></div><div class="definition"><h3 id="Struct_GroupMembership">Struct: GroupMembership</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>parentId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>childId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>childType</td><td><code><a href="#Enum_GroupChildType">GroupChildType</a></code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>6</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>System internal data type to map group memberships</p> + +<br/></div><div class="definition"><h3 id="Struct_EntityType">Struct: EntityType</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>entityTypeId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>name</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>description</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>6</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>client defined entity types</p> +<li><b>entityTypeId</b> : Entity type id provided by the client</li> +<li><b>domainId</b> : Domain id of the domain.</li> +<li><b>name</b> : Name for the entity type. Should be a single word.</li> +<li>description : Short description for the entity type.</li> +<li>createdTime : Will be set by the system</li> +<li>updatedTime : Will be set by the system</li> + +<br/></div><div class="definition"><h3 id="Struct_SearchCriteria">Struct: SearchCriteria</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>searchField</td><td><code><a href="#Enum_EntitySearchField">EntitySearchField</a></code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>value</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>searchCondition</td><td><code><a href="#Enum_SearchCondition">SearchCondition</a></code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>Container object for search criteria</p> +<li><b>searchField</b> : Entity search field</li> +<li><b>value</b> : Search value</li> +<li><b>searchCondition</b> : EQUAL, LIKE etc..</li> + +<br/></div><div class="definition"><h3 id="Struct_Entity">Struct: Entity</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>entityId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>entityTypeId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>ownerId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>parentEntityId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>6</td><td>name</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>7</td><td>description</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>8</td><td>binaryData</td><td><code>binary</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>9</td><td>fullText</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>10</td><td>originalEntityCreationTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>11</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>12</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>Entity object which is used to register an entity in the system.</p> +<li><b>entityId</b> : Entity id provided by the client</li> +<li><b>domainId</b> : Domain id</li> +<li><b>entityTypeId</b> : Entity type id</li> +<li><b>ownerId</b> : Owner id</li> +<li>parentEntityId : Parent entity id</li> +<li><b>name</b> : Name</li> +<li>description : Short description for the entity</li> +<li>binaryData : Any information stored in binary format</li> +<li>fullText : A string which will be considered for full text search</li> +<li><b>originalEntityCreationTime</b> : When registering old records what is the original entity creation time. If not +set will be default to current time</li> +<li>createdTime : Will be set by the system</li> +<li>updatedTime : Will be set by the system</li> + +<br/></div><div class="definition"><h3 id="Struct_PermissionType">Struct: PermissionType</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>permissionTypeId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>name</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>description</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>6</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>Object for creating client defined permission type</p> +<li><b>permissionTypeId</b> : Permission type id provided by the client</li> +<li><b>domainId</b> : Domain id</li> +<li><b>name</b> : Single word name for the permission</li> +<li>description : Short description for the permission type</li> +<li>createdTime : Will be set by the system</li> +<li>updatedTime : Will be set by the system</li> + +<br/></div><div class="definition"><h3 id="Struct_Sharing">Struct: Sharing</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>permissionTypeId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>2</td><td>entityId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>3</td><td>groupId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>4</td><td>sharingType</td><td><code><a href="#Enum_SharingType">SharingType</a></code></td><td></td><td>optional</td><td></td></tr> +<tr><td>5</td><td>domainId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>6</td><td>inheritedParentId</td><td><code>string</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>7</td><td>createdTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +<tr><td>8</td><td>updatedTime</td><td><code>i64</code></td><td></td><td>optional</td><td></td></tr> +</table><br/><p>This is an internal enum type for managing sharings</p> + +<br/></div><div class="definition"><h3 id="Struct_SharingRegistryException">Exception: SharingRegistryException</h3> +<table class="table-bordered table-striped table-condensed"><thead><th>Key</th><th>Field</th><th>Type</th><th>Description</th><th>Requiredness</th><th>Default value</th></thead> +<tr><td>1</td><td>message</td><td><code>string</code></td><td></td><td>required</td><td></td></tr> +</table><br/><p>Exception model used in the sharing registry service</p> + +<br/></div></div></body></html> + http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/Own-WSO2-IS-Configuration.md ---------------------------------------------------------------------- diff --git a/0.16/Own-WSO2-IS-Configuration.md b/0.16/Own-WSO2-IS-Configuration.md new file mode 100644 index 0000000..7f30242 --- /dev/null +++ b/0.16/Own-WSO2-IS-Configuration.md @@ -0,0 +1,73 @@ + ## WSO2 IS Installation +### Installation +1. Download IS 5.1.0 from <a href="http://wso2.com/products/identity-server/" target="_blank">WSO2 Site</a> and extract it. +2. Open <IS_HOME>/repository/conf/carbon.xml and set the HideAdminServiceWSDLs property to false. +<pre><code><HideAdminServiceWSDLs>false</HideAdminServiceWSDLs></code></pre> +3. To enable self signup and account confirmation follow the below steps + - Open <IS_HOME>/repository/conf/claim-config.xml and add the following claims mappings in the <Dialect dialectURI="http://wso2.org/claims"> section. +<pre><code><Claim> + <ClaimURI>http://wso2.org/claims/identity/accountLocked</ClaimURI> + <DisplayName>Account Locked</DisplayName> + <AttributeID>accountLock</AttributeID> + <Description>Account Locked</Description> +</Claim> +<Claim> + <ClaimURI>http://wso2.org/claims/identity/passwordTimestamp</ClaimURI> + <DisplayName>Password Timestamp</DisplayName> + <AttributeID>facsimileTelephoneNumber</AttributeID> + <Description>Password Timestamp</Description> +</Claim> +<Claim> + <ClaimURI>http://wso2.org/claims/username</ClaimURI> + <DisplayName>Username</DisplayName> + <AttributeID>uid</AttributeID> + <Description>Username</Description> +</Claim> +</code></pre> + - Open <IS_HOME>/repository/conf/claim-config.xml and add the following claims mappings in the <Dialect dialectURI="http://wso2.org/oidc/claim"> section. +<pre><code><Claim> + <ClaimURI>roles</ClaimURI> + <DisplayName>Roles</DisplayName> + <AttributeID>role</AttributeID> + <Description>Roles</Description> +</Claim> +</code></pre> +<br> + + - Enable the Identity Listener by setting the following property to true in the <IS_HOME>/repository/conf/identity/identity.xml file. +<pre><code><EventListener type="org.wso2.carbon.user.core.listener.UserOperationEventListener" name="org.wso2.carbon.identity.mgt.IdentityMgtEventListener" orderId="50" enable="true"/></code></pre> + + - Do the following configurations in the <IS_HOME>/repository/conf/identity/identityÂ-mgt.properties file. +<pre><code> +Notification.Sending.Internally.Managed=true +Authentication.Policy.Account.Lock.On.Creation=true +Notification.Expire.Time=7200 +Notification.Sending.Enable=true +Authentication.Policy.Enable=true +</code></pre> + + - Configure the email-admin-config.xml file found in <IS_HOME>/repository/conf/email/ with the email template of type âaccountConfirmationâ. + + - Edit the org.apache.axis2.transport.mail.MailTransportSender section in the <IS_HOME>/repository/conf/axis2/axis2.xml to valid email account configuration. +<br>IS server should have access to this email account for remotely login. +<pre><code> +<transportSender name="mailto"class="org.apache.axis2.transport.mail.MailTransportSender"> + <parameter name="mail.smtp.from">[email protected]</parameter> + <parameter name="mail.smtp.user">wso2demomail</parameter> + <parameter name="mail.smtp.password">mailpassword</parameter> + <parameter name="mail.smtp.host">smtp.gmail.com</parameter> + <parameter name="mail.smtp.port">587</parameter> + <parameter name="mail.smtp.starttls.enable">true</parameter> + <parameter name="mail.smtp.auth">true</parameter> +</transportSender> +</code></pre> + +4. Go to <IS_HOME>/bin and start IS server using ./wso2server.sh (use ./wso2server.sh start for starting in daemon mode). + +### WSO2 IS Configuration +1. Creating a new tenant. +2. Registering a new OAuth Service Provider. + +### Optional Steps +1. How to configure a mysql backend database for wso2 IS server - <a href="https://docs.wso2.com/display/IS510/Setting+up+MySQL" target="_blank">MySQL DB Configuration</a> +2. How to configure a valid server certificate for the wso2 IS server - <a href="http://wso2.com/library/knowledge-base/2011/08/adding-ca-certificate-authority-signed-certificate-wso2-products/" target="_blank">Configure Server Certificate</a> http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/PGA-Installation.md ---------------------------------------------------------------------- diff --git a/0.16/PGA-Installation.md b/0.16/PGA-Installation.md new file mode 100644 index 0000000..c32edf8 --- /dev/null +++ b/0.16/PGA-Installation.md @@ -0,0 +1,197 @@ +## PGA Installation + +<b>Pick your OS...</b></br/> +[<button type="button" style="color:#f2f2f2;text-align:center;font-weight:lighter;background-color:#2481b9;width:160px;border: 2px solid #2481b9;border-radius:4px">Cent OS</button>](#headPGACENTOS) +[<button type="button" style="color:#f2f2f2;text-align:center;font-weight:lighter;background-color:#2481b9;width:160px;border: 2px solid #2481b9;border-radius:4px">MAC OS</button>](#headPGAMAC) +[<button type="button" style="color:#f2f2f2;text-align:center;font-weight:lighter;background-color:#2481b9;width:160px;border: 2px solid #2481b9;border-radius:4px">Ubuntu OS</button>](#headPGAUB) + +### <a name="head1234">General Prerequisites</a> +1. A Unix or Unix like operating system. +2. A web server (e.g apache web server) with PHP 5.4 or higher. Make sure to have enabled mod_rewrite module in httpd.conf file and enable PHP SOAP extension. +3. Composer +4. MYSQL database (Required if the user is hosting Airavata on his own. To communicate with hosted Airavata this step is not relevant) +5. MCrypt PHP extension +6. Enable OpenSSL PHP extension +7. Follow instructions given in links to install the prerequisites based on the OS. + - <a href="http://www.dev-metal.com/install-laravel-4-ubuntu-12-04-lts/" target="_blank"> Ubunutu prerequisites</a> + - <a href="https://www.digitalocean.com/community/tutorials/how-to-install-laravel-4-on-a-centos-6-vps" target="_blank"> Cent OS prerequisites</a> + - <a href="http://sangatpedas.com/20140219/installing-laravel-osx-mavericks/" target="_blank"> MAC prerequisites</a> +8. Important: Do not need to install Laravel. You can skip the steps given on the links +9. WSO2 IS server + +### <a name="headPGACENTOS">PGA Installation on CentOS 7</a> +#### Pre-Installations +1. Install apache +<pre><code>Yum install httpd</code></pre> +2. module_rewrite is auto enabled in apache version in centos7. Its in /etc/httpd/conf.modules.d/00-base.conf file and the line is LoadModule rewrite_module modules/mod_rewrite.so +3. Enable php using <pre><code>yum install php-soap</code></pre> Could be be it is already enabled in CentOS7 +4. Install php using  <pre><code>yum install php</code></pre> +5. Configure Selinux to allow outbound connection from web server; +<pre><code>setsebool -P httpd_can_network_connect 1</code></pre> +5. install composer +<pre><code>yum install composer</code></pre> +6. Install php-mcrypt <pre><code>yum install php-mcrypt</code></pre> + +#### PGA Installation +1. As the document root (var/www/html) take the git clone https://github.com/apache/airavata-php-gateway.git +2. Change the cloned folder name to your desired folder name(e.g.: airavata-php-gateway). This will carry sub folders for the gateway +<pre><code>cp - R airavata-php-gateway /* .</code></pre> +3. In the gateway folder do a <pre><code>composer update</code></pre> +4. Create a directory in var/www/ for user data (E.g.:gateway-user-data). +5. Make this user data directory writeable by Apache httpd by making the following +SELinux update as root: + + chcon -R -t httpd_sys_rw_content_t /path/to/gateway-user-data + +6. Copy ./app/config/pga_config.php.template to ./app/config/pga_config.php +7. In pga_config.php change airavata server, change; + - Airavata Client Configurations + - 'airavata-server' => 'localhostâ, + - 'gateway-id' => 'php_reference_gateway', + - 'experiment-data-absolute-path' => '/var/www/gateway-user-data',(Here user has to create the experimentData folder in var/www) + - 'gateway-data-store-resource-id' => '' (This is the ID of the gateway preferred storage resource) + - Portal Related Configurations + - 'super-admin-portal' => false, (User has one gateway and need to use it to configure the compute resources, storage resources, etc...) + - 'admin-emails' => ['[email protected]'], + - 'portal-email-username' => '[email protected]', + - 'portal-email-password' => '&airavaxxxxxx', + - WSO2 Identity Server Related Configurations + - 'tenant-domain' => 'prod.airavata', (Provided by the Gateway Admin to WSO2 IS at tenant creation) + - 'admin-username' => 'Gateway-Admin', (Provided by the Gateway Admin to WSO2 IS at tenant creation) + - 'admin-password' => 'Gateway-Admin-Password', (Provided by the Gateway Admin to WSO2 IS at tenant creation) + - 'oauth-client-key' => 'G1khg0I0Xf444rereggrteret', (Generated by WSO2 IS at tenant creation) + - 'oauth-client-secret' => 'G1khg0I0Xf444rere', (Generated by WSO2 IS at tenant creation) + - 'verify-peer' => true, (Set this to false if trusted server certificates are not used. Refer <a href='http://wso2.com/library/knowledge-base/2011/08/adding-ca-certificate-authority-signed-certificate-wso2-products/' target ='_blank'>Adding CA Signed Certificate</a> on adding trusted certificates.) +8. Give writing permission chmod -R g+rwx app/storage/ +9. Make sure SElinux comparability of airavata_php_gateway folder. For that give +<pre><code>chcon -Rv --type=httpd_sys_content_t airavata-php-gateway/</code></pre> +This is to make sure the gateway folder is readable by http +10. ls - lZ shows the SELinux context. After the above chcon command do the same for storage folder as well +<pre><code>su -c "chcon -R -h -t httpd_sys_script_rw_t [fullpath]/app/storageâ</code></pre> +This is to make sure the storage folder is writable. +11. Configure firewall to allow http and https + - Check existing configurations using <pre><code>firewall-cmd --zone=public --list-services</code></pre> + - To open access for http <pre><code>firewall-cmd --zone=public --permanent --add-service=http</code></pre> + - To open access for https <pre><code>firewall-cmd --zone=public --permanent --add-service=https</code></pre> + - To get above rules applied <pre><code>firewall-cmd âreload - refresh</code></pre> +12. Locate httpd.conf file in location /etc/httpd/conf/ +<br> Make sure below 'Allow Override' has 'All' option. +<pre><code> + # + # AllowOverride controls what directives may be placed in .htaccess files. + # It can be "All", "None", or any combination of the keywords: + # Options FileInfo AuthConfig Limit + # + AllowOverride All +</code></pre> + + + +### <a name="headPGAMAC">PGA Installation on MAC Yosemite OS</a> +#### Pre-Installation +1. Follow instructions in <a href="http://coolestguidesontheplanet.com/install-mcrypt-php-mac-osx-10-10-yosemite-development-server/." target="_blank">MCrypt Installation</a> for PHP on MAC +2. First check whether your MAC has Apache installed. To check availability; +<pre><code>apache ctrl start</code></pre> +3. To stop running Apache use; +<pre><code>apache ctl stop</code></pre> +4. Once above is completed follow the <a href="https://web.archive.org/web/20150507101703/http://sangatpedas.com/20140219/installing-laravel-osx-mavericks" target="_blank"> Installation Steps</a> given for + - Configuring Apache + - Installing Composer (Use sudo commands as and when required for installation) +5. To install Composer use +<pre><code>curl -sS https://getcomposer.org/installer | php</code></pre> +6. Then move Composer using +<pre><code>mv composer.phar /usr/local/bin/composer</code></pre> + +#### PGA Installation +1. Go to cd /Library/WebServer/Documents +2. Take a copy from GIT using +<pre><code>git clone https://github.com/apache/airavata-php-gateway.git</code></pre> +3. Navigate to PGA folder +<pre><code>cd /Library/WebServer/Documents/airavata-php-gateway</code></pre> +4. Make sure the storage folder is writable by all users +<pre><code>sudo chmod -R 777 app/storage</code></pre> +5. Move out of app folder and give; +<pre><code>sudo composer update</code></pre> +This will take few minutes +6. You might get an error like this +<pre><code> +Mcrypt PHP extension required. +Script php artisan clear-compiled handling the post-update-cmd event returned with an error +[RuntimeException] +Error Output: +</code></pre> +7. Install mcrypt installation +<a href="http://coolestguidesontheplanet.com/install-mcrypt-php-mac-osx-10-10-yosemite-development-server/" target="_blank">MCrypt Installation</a> +8. (Optional) Go to [PGA_HOME]/app/config/pga_config.php and change the configuration to match your settings +9. Enable Apache extensions (mod_rewrite module and PHP SOAP extension) +<pre><code>sudo vim /etc/apache2/httpd.conf</code></pre> + uncomment #LoadModule rewrite_module libexec/apache2/mod_rewrite.so + uncomment #LoadModule php5_module libexec/apache2/libphp5.so +10. Now issue composer update command +<pre><code>sudo composer update</code></pre> +11. Restart the web server +<pre><code>sudo apachectl restart</code></pre> + +#### Link Airavata and PGA +1. Once the PGA and Airavata are downloaded and locally running; in PGA app/config folder locate the file called pga_config.php.template +2. Copy the located file and name it as pga_config.php +3. In the newly copied file find two configurations for + - Airavata host + - Port +4. Change above configurations + - Airavata host = localhost + - Port = 9930 +5. You are all set to run your own PGA! +6. For steps to register resources, applications, etc⦠use <Link to admin guide> +7. For steps to create projects, experiments and monitor them use <Link to end user guide> +IMPORTANT: In places where the hosted PGA link is used please replace by your locally running PGA URL. + + +### <a name="headPGAUB">PGA Installation on Ubuntu OS</a> +#### Pre-Installation +1. To install dependencies use commands in <a href="http://www.dev-metal.com/install-laravel-4-ubuntu-12-04-lts/" target="_blank">Ubuntu Installation</a> +<br>In the command avoid installing mysql and mariaDB. +2. Enable the appropriate extensions: navigate to php.ini + <pre><code>sudo vi /etc/php.ini</code></pre> + - Uncomment the following extensions: mcrypt.so, openssl.so, and soap.so. If they do not exists add them as extensions. + <pre><code>extension=mcrypt.so</code></pre> + <pre><code>extension=openssl.so</code></pre> + <pre><code>extension=soap.so</code></pre> +3. Locate httpd.conf file +<pre><code>sudo vi /etc/httpd/conf/httpd.conf</code></pre> + - Find 'AllowOverride None' and change to 'AllowOverride All' (Two places to change) + +#### PGA Installation +1. The following guide give a sample installation starting from a fresh Ubunutu 12.04 installation. Similar instructions should be used in other operating systems. +2. Update the ubuntu package manager +<pre><code>sudo apt-get update</pre></code> +<pre><code>sudo apt-get upgrade </pre></code> +3. Install Apache +</pre></code>sudo apt-get install apache2</pre></code> +4. Install PHP 5.4 +<pre><code>sudo apt-get install python-software-properties</pre></code> +<pre><code>sudo add-apt-repository ppa:ondrej/php5-oldstable</pre></code> +<pre><code>sudo apt-get update</pre></code> +<pre><code>sudo apt-cache policy php5</pre></code> +<pre><code>sudo apt-get install php5</pre></code> +5. You can check the installed versions of apache and php using <pre><code>apache2 -v</pre></code> and <pre><code>php -v commands</pre></code> +6. Install the necessary php extensions +<pre><code>sudo apt-get install unzip</pre></code> +<pre><code>sudo apt-get install curl</pre></code> +<pre><code>sudo apt-get install openssl</pre></code> +<pre><code>sudo apt-get install php5-mcrypt</pre></code> +<pre><code>sudo apt-get install php-soap</pre></code> +7. Install Composer System Wide +<pre><code>curl -sS https://getcomposer.org/installer | php</pre></code> +<pre><code>sudo mv composer.phar /usr/local/bin/composer</pre></code> +8. Activate mod_rewrite +<pre><code>sudo a2enmod rewrite</pre></code> +<pre><code>sudo service apache2 restart</pre></code> +9. Open the default vhost config file: + <pre><code>sudo nano /etc/apache2/sites-available/default. </pre></code> +10. Now search for âAllowOverride Noneâ corresponding âDocumentRoot /var/www <Directory /var/www>â +<br>(which should be there TWO times) and change both to âAllowOverride Allâ. Search for these two lines.</br> +<br> +11. Exit and save with CTRL+X, Y, ENTER. + +Go to <a href="Airavata-Installation" target="_blank">Airavata Installation on CentOS 7</a> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/PGA-Upgrades.md ---------------------------------------------------------------------- diff --git a/0.16/PGA-Upgrades.md b/0.16/PGA-Upgrades.md new file mode 100644 index 0000000..80bb9d5 --- /dev/null +++ b/0.16/PGA-Upgrades.md @@ -0,0 +1,9 @@ +## PGA Code Update + +1. In your cloned gateway folder (airavata-php-gateway) get the latest updates from git +<pre><code> git pull</code></pre> +2. Do a composer update +<pre><code> composer update </code></pre> +This may take little time.... +3. You are all set with latest updates! +4. 16. For Airavata updating steps try <a href="../Airavata-Upgrades">Airavata Update</a> http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/Sharing-Docs.md ---------------------------------------------------------------------- diff --git a/0.16/Sharing-Docs.md b/0.16/Sharing-Docs.md new file mode 100644 index 0000000..579bc96 --- /dev/null +++ b/0.16/Sharing-Docs.md @@ -0,0 +1,79 @@ + +<title>All Thrift declarations</title><body> +<div class="container-fluid"> +<h1>All Thrift declarations</h1> +<table class="table-bordered table-striped table-condensed"><thread><th>Module</th><th>Services</th><th>Data types</th><th>Constants</th></thead> +<tr> +<td>sharing_cpi</td><td><a href="sharing_cpi.html#Svc_SharingRegistryService">SharingRegistryService</a><br/> +<ul> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_addChildGroupsToParentGroup">addChildGroupsToParentGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_addUsersToGroup">addUsersToGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_createDomain">createDomain</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_createEntity">createEntity</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_createEntityType">createEntityType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_createGroup">createGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_createPermissionType">createPermissionType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_createUser">createUser</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_deleteDomain">deleteDomain</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_deleteEntity">deleteEntity</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_deleteEntityType">deleteEntityType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_deleteGroup">deleteGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_deletePermissionType">deletePermissionType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_deleteUser">deleteUser</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getDomain">getDomain</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getDomains">getDomains</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getEntity">getEntity</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getEntityType">getEntityType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getEntityTypes">getEntityTypes</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getGroup">getGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getGroupMembersOfTypeGroup">getGroupMembersOfTypeGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getGroupMembersOfTypeUser">getGroupMembersOfTypeUser</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getGroups">getGroups</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getListOfSharedGroups">getListOfSharedGroups</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getListOfSharedUsers">getListOfSharedUsers</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getPermissionType">getPermissionType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getPermissionTypes">getPermissionTypes</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getUser">getUser</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_getUsers">getUsers</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_removeChildGroupFromParentGroup">removeChildGroupFromParentGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_removeUsersFromGroup">removeUsersFromGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_revokeEntitySharingFromGroups">revokeEntitySharingFromGroups</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_revokeEntitySharingFromUsers">revokeEntitySharingFromUsers</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_searchEntities">searchEntities</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_shareEntityWithGroups">shareEntityWithGroups</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_shareEntityWithUsers">shareEntityWithUsers</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_updateDomain">updateDomain</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_updateEntity">updateEntity</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_updateEntityType">updateEntityType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_updateGroup">updateGroup</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_updatePermissionType">updatePermissionType</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_updatedUser">updatedUser</a></li> +<li><a href="sharing_cpi.html#Fn_SharingRegistryService_userHasAccess">userHasAccess</a></li> +</ul> +</td> +<td></td> +<td></code></td> +</tr><tr> +<td>sharing_models</td><td></td> +<td><a href="sharing_models.html#Struct_Domain">Domain</a><br/> +<a href="sharing_models.html#Struct_Entity">Entity</a><br/> +<a href="sharing_models.html#Enum_EntitySearchField">EntitySearchField</a><br/> +<a href="sharing_models.html#Struct_EntityType">EntityType</a><br/> +<a href="sharing_models.html#Enum_GroupCardinality">GroupCardinality</a><br/> +<a href="sharing_models.html#Enum_GroupChildType">GroupChildType</a><br/> +<a href="sharing_models.html#Struct_GroupMembership">GroupMembership</a><br/> +<a href="sharing_models.html#Enum_GroupType">GroupType</a><br/> +<a href="sharing_models.html#Struct_PermissionType">PermissionType</a><br/> +<a href="sharing_models.html#Enum_SearchCondition">SearchCondition</a><br/> +<a href="sharing_models.html#Struct_SearchCriteria">SearchCriteria</a><br/> +<a href="sharing_models.html#Struct_Sharing">Sharing</a><br/> +<a href="sharing_models.html#Struct_SharingRegistryException">SharingRegistryException</a><br/> +<a href="sharing_models.html#Enum_SharingType">SharingType</a><br/> +<a href="sharing_models.html#Struct_User">User</a><br/> +<a href="sharing_models.html#Struct_UserGroup">UserGroup</a><br/> +</td> +<td><code><a href="sharing_models.html#Const_DO_NOT_SET_AT_CLIENTS_ID">DO_NOT_SET_AT_CLIENTS_ID</a></code><br/> +</code></td> +</tr></table> +</div></body></html> + http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/User-Profiles.md ---------------------------------------------------------------------- diff --git a/0.16/User-Profiles.md b/0.16/User-Profiles.md new file mode 100644 index 0000000..1d27bcf --- /dev/null +++ b/0.16/User-Profiles.md @@ -0,0 +1,47 @@ +## Apache Airavata User Profiles + +### What Are Airavata User Roles? + +1. Prior to using Airavata, lets identify and understand the user roles available and their features. +2. Knowing the roles and the features of each, will assist on shaping your gateway user hierarchy. +3. There are 4 active user roles in Airavata with different set of features at each level. + - Admin + - Admin-Read-Only + - Gateway-User + - User-Pending + +### Features of each User Role + +1. Admin User + - Set up gateway preferences for Compute Resources and Storage Resources + - Generate SSH keys and their tokens using Credential Store in Admin Dashboard. + - Add the generated SSH token to Gateway Preferences. + - Add the generated SSH keys to authorized_key files in each resource. + - Can Cancel, clone experiments of a gateway user through Admin dashboard behalf of the user. + - Create Applications and their deployments in to the gateway. +<br><b>NOTE: If user hosts his own gateway; 'Gateway Admin' role will have access to create compute resources and storage resources as well.</b></br><br> + +2. Admin-Read-Only + - Can view everything in Admin Dashboard but cannot Add, Edit or Delete any records from dashboard. + - Can monitor experiments through Experiments Statistics in Admin dashboard. + - Behalf of a gateway user can edit, cancel or clone an experiment. +<br></br> +3. Gateway User + - Create, launch their own experiments in using available applications and compute resources. + - Monitor progress of experiment execution. + - Download outputs experiment outputs from experiment summary or from ARCHIVE directory in Storage (ARCHIVE folder exists only if the application files are 'Archive' enabled) + - Group experiments by creating Projects. + - Request new features, applications and report bug, issue using 'Contact Us' in gateway. + - Password reset. +<br> +</br> +4. User-Pending + - This is the initial role assigned to users when account is created. + - Until gateway admin provide relevant access to the gateway (by assigning an active gateway role) user has cannot really use the gateway. +<br> +</br> +### How User Roles Work? + +1. Users can have one or many user roles assigned to them. +2. Gateway admin has the authority to change user roles of the gateway users. +2. Every time a role changes user will be notified through email about the privilege change. \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/User-Tutorials.md ---------------------------------------------------------------------- diff --git a/0.16/User-Tutorials.md b/0.16/User-Tutorials.md new file mode 100644 index 0000000..39d1619 --- /dev/null +++ b/0.16/User-Tutorials.md @@ -0,0 +1,6 @@ +Coming Soon + +## Work-in-Progress +###For now please follow: <br> +1. <a href="https://cwiki.apache.org/confluence/display/AIRAVATA/Tutorial+04+-+PHP+Reference+Gateway+for+Airavata+-+End-User+Guide" target="_blank">PGA Portal End User Tutorial</a> <br> +2. <a href="https://cwiki.apache.org/confluence/display/AIRAVATA/Tutorial+05+-+PHP+Reference+Gateway+for+Airavata+-+Gateway+Admin+Guide" target="_blank"> PGA Portal Admin Tutorial</a> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/WSO2-IS-Configuration.md ---------------------------------------------------------------------- diff --git a/0.16/WSO2-IS-Configuration.md b/0.16/WSO2-IS-Configuration.md new file mode 100644 index 0000000..8fdfe57 --- /dev/null +++ b/0.16/WSO2-IS-Configuration.md @@ -0,0 +1,42 @@ +## WSO2 Identity Server (IS) + +The steps below are for IS configuration when IS is hosted by Airavata team. In this situation you will be a tenant created under Airavata hosted IS. + +### Request a Tenant Account +1. Request from Airavata team for a new Tenant account. For this use +<br><a href="http://airavata.apache.org/community/mailing-lists.html" target="_blank">Airavata mailing list</a> +OR +<a href="https://www.hipchat.com/gMDHyN1KM" target="_blank">HipChat</a> +2. As the gateway admin, for the account creation provide; + - First name + - Last name + - Preferred username & password as the admin (This is the username you will use to login to WSO2 IS and gateway as the admin user) + - Email account +3. When Airavata team receives your request they will communicate with you if more information is required. +4. Once the tenant is created you will receive + - URL for WSO2 IS + - Username and password to login to WSO2 IS +<br> +<br> +### Configure Your Tenant +1. Login to IS server as the gateway admin tenant user. + - Use the URL provided by the Airavata team; <a href="https://idp.scigap.org:9443/carbon/admin/login.jsp" target="_blank">WSO2 URL for Gateway Admin</a> + - Use the username and password provided by you. (Please change your password in first login) +2. Navigate to Main Tab -->Service Providers --> Add + - Give a service provider name and 'Register' + - Out of the list below expand 'Inbound Authentication Configuration' + - Out of the usb list underneath expand 'OAuth/OpenID Connect Configuration' and click 'Configure' + - You will be navigated to 'Register New Application' UI. +3. To register new application; + - Select OAuth Version = 2.0 + - From Allowed Grant Types select only 'Password' and 'Refresh Token' + - Add + +4. Copy the 'OAuth Client Key', 'OAuth Client Secret', Admin username, password and name to pga_config.php. +5. Navigate to Configure â> Claim management â>http://wso2.org/claims. And make "Supported by Default = true" +6. Navigate to Configure --> Users & Roles --> Users. Find the admin user and click 'User Profile'. Add the username at the bottom and update. + +You are all set to start configuring the gateway for job submission. For Gateway Configurations visit <a href="#Gateway-Configuration.md">PGA Configuration</a> + +test +test http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/airavata-properties.md ---------------------------------------------------------------------- diff --git a/0.16/airavata-properties.md b/0.16/airavata-properties.md new file mode 100644 index 0000000..b19902f --- /dev/null +++ b/0.16/airavata-properties.md @@ -0,0 +1,66 @@ +##<h2 id="airavata-properties.md">Apache Airavata Server Properties</h2> +1. API Server Registry Configuration + - Comment out the derby DB properties + - Change MySQL configurations + - registry.jdbc.url=jdbc:mysql://localhost:3306/airavata_expcatalog (replace 'localhost' with correct server name if the DB is in a different server) + - registry.jdbc.user=airavata + - registry.jdbc.password=airavata + - default.registry.gateway=php_reference_gateway (give the gateway name you prefer. Default exists in the file) +2. Application Catalog DB Configuration + - Comment out the derby DB properties + - Change MySQL configurations + - appcatalog.jdbc.url=jdbc:mysql://localhost:3306/airavata_appcatalog + - appcatalog.jdbc.user=airavata + - appcatalog.jdbc.password=airavata +3. Data Catalog DB Configuration + - Comment out the derby DB properties + - Change MySQL configurations + - replicacatalog.jdbc.url=jdbc:mysql://localhost:3306/airavata_datacatalog + - replicacatalog.jdbc.user=airavata + - replicacatalog.jdbc.password=airavata +4. Workflow Catalog DB Configuration + - Comment out the derby DB properties + - Change MySQL configurations + - workflowcatalog.jdbc.url=jdbc:mysql://localhost:3306/airavata_wfcatalog + - workflowcatalog.jdbc.user=airavatadb + - workflowcatalog.jdbc.password=airavatadb +5. Server module Configuration + - Make sure all servers required to start are added as given + - servers=apiserver,orchestrator,gfac,credentialstore +6. API Server SSL Configurations + - Give the correct path for key generation file. This is in the bin directtory and it is shipped defualt with Airavata. + - apiserver.keystore=/home/airavata/LocalAiravata/apache-airavata-server-0.16-SNAPSHOT/bin/airavata.jks +7. Credential Store module Configuration + - Add the path to SSH key generation file + - E.g.: credential.store.keystore.url=/home/airavata/LocalAiravata/airavata-sym.jks + - Comment out the derby DB properties + - Change MySQL configurations + - credential.store.jdbc.url=jdbc:mysql://localhost:3306/airavata_credentialstore + - credential.store.jdbc.user=airavatadb + - credential.store.jdbc.password=airavatadb + - credential.store.keystore.url=/home/airavata/production-deployment/airavata_sym.jks +8. API Security Configuration + - Make sure + - api.secured=false + - TLS.enabled=false +9. Monitoring Module Configuration + - Add your email address, username and password for email monitoring. This is the email account the job status change emails will be received from compute resources. + email.based.monitor.host=imap.gmail.com + [email protected] + email.based.monitor.password=SamplePassword +10. Zookeeper Server Configuration + - For 'Production' scenario make; + - embedded.zk=false +11. AMQP Notification Configuration + - Users can use RabbitMQ as 'Guest' users. This is the easy method. For this uncomment + - rabbitmq.broker.url=amqp://localhost:5672 + - To use as a 'Production' user + - Navigate to RabbitMQ bin folder. + - Make sure the RabbitMQ server is running. For production use <pre><code>rabbitmq-server -detached</code></pre> to start. + - Create a virtual-host and user with a password. Follow documentation in <a href="http://blog.dtzq.com/2012/06/rabbitmq-users-and-virtual-hosts.html" target="_blank">RabbitMQ Users & VirtualHost</a> + - To create a user; <pre><code>rabbitmqctl add_user Username Password</code></pre> + - To create a vitrual-host <pre><code>rabbitmqctl add_vhost vhostauthvhost</code></pre> + - Provide permission to created 'Username' to the created vhost <pre><code>rabbitmqctl set_permissions -p messaging airavata ".*" ".*" ".*â</code></pre> + - Uncomment rabbitmq.broker.url=amqp://Username:Password@localhost:5672/Vhost. Add the created username, password and Vhost in the URL. + - If you need to stop RabbitMQ use <pre><code>rabbitmqctl stop</code></pre> + - If the RabbitMQ server stopped then the above user creation, vhost creation and permission granting commands need to run again after restarting the servers. http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/css/extra.css ---------------------------------------------------------------------- diff --git a/0.16/css/extra.css b/0.16/css/extra.css new file mode 100644 index 0000000..710d763 --- /dev/null +++ b/0.16/css/extra.css @@ -0,0 +1,29 @@ +.darkred{ + color: #7f0000; + /*darkred*/ +} + +.lred{ + color: #b20000; + /*lighterred*/ +} + +.blue{ + color: #3333ff; + /*darkblue*/ +} + +h3 +{ + display:inline; +} + +h5 +{ + display:inline; +} + +h6 +{ + display:inline; +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/AppCatalog.png ---------------------------------------------------------------------- diff --git a/0.16/img/AppCatalog.png b/0.16/img/AppCatalog.png new file mode 100644 index 0000000..55a8d8b Binary files /dev/null and b/0.16/img/AppCatalog.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/AppDeployment.png ---------------------------------------------------------------------- diff --git a/0.16/img/AppDeployment.png b/0.16/img/AppDeployment.png new file mode 100644 index 0000000..4f482f7 Binary files /dev/null and b/0.16/img/AppDeployment.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/AppInterface1.png ---------------------------------------------------------------------- diff --git a/0.16/img/AppInterface1.png b/0.16/img/AppInterface1.png new file mode 100644 index 0000000..55bc02f Binary files /dev/null and b/0.16/img/AppInterface1.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/AppInterface2.png ---------------------------------------------------------------------- diff --git a/0.16/img/AppInterface2.png b/0.16/img/AppInterface2.png new file mode 100644 index 0000000..e4c87a3 Binary files /dev/null and b/0.16/img/AppInterface2.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/AppModule.png ---------------------------------------------------------------------- diff --git a/0.16/img/AppModule.png b/0.16/img/AppModule.png new file mode 100644 index 0000000..a0f9472 Binary files /dev/null and b/0.16/img/AppModule.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/GauAppDep.png ---------------------------------------------------------------------- diff --git a/0.16/img/GauAppDep.png b/0.16/img/GauAppDep.png new file mode 100644 index 0000000..81ee11a Binary files /dev/null and b/0.16/img/GauAppDep.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/GauAppInt1.png ---------------------------------------------------------------------- diff --git a/0.16/img/GauAppInt1.png b/0.16/img/GauAppInt1.png new file mode 100644 index 0000000..435f1c9 Binary files /dev/null and b/0.16/img/GauAppInt1.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/GauAppInt2.png ---------------------------------------------------------------------- diff --git a/0.16/img/GauAppInt2.png b/0.16/img/GauAppInt2.png new file mode 100644 index 0000000..b654ba2 Binary files /dev/null and b/0.16/img/GauAppInt2.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/GauAppInt3.png ---------------------------------------------------------------------- diff --git a/0.16/img/GauAppInt3.png b/0.16/img/GauAppInt3.png new file mode 100644 index 0000000..e466a46 Binary files /dev/null and b/0.16/img/GauAppInt3.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/MultipleWaystoUseAiravata.png ---------------------------------------------------------------------- diff --git a/0.16/img/MultipleWaystoUseAiravata.png b/0.16/img/MultipleWaystoUseAiravata.png new file mode 100644 index 0000000..59ffed3 Binary files /dev/null and b/0.16/img/MultipleWaystoUseAiravata.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/MultipleWaystoUseAiravata1.png ---------------------------------------------------------------------- diff --git a/0.16/img/MultipleWaystoUseAiravata1.png b/0.16/img/MultipleWaystoUseAiravata1.png new file mode 100644 index 0000000..38fa949 Binary files /dev/null and b/0.16/img/MultipleWaystoUseAiravata1.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/PGAMenu&SubMenu.png ---------------------------------------------------------------------- diff --git a/0.16/img/PGAMenu&SubMenu.png b/0.16/img/PGAMenu&SubMenu.png new file mode 100644 index 0000000..266602e Binary files /dev/null and b/0.16/img/PGAMenu&SubMenu.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/UserProfiles.png ---------------------------------------------------------------------- diff --git a/0.16/img/UserProfiles.png b/0.16/img/UserProfiles.png new file mode 100644 index 0000000..2a24a48 Binary files /dev/null and b/0.16/img/UserProfiles.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/img/UserProfilesOLD.png ---------------------------------------------------------------------- diff --git a/0.16/img/UserProfilesOLD.png b/0.16/img/UserProfilesOLD.png new file mode 100644 index 0000000..3685437 Binary files /dev/null and b/0.16/img/UserProfilesOLD.png differ http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/index.md ---------------------------------------------------------------------- diff --git a/0.16/index.md b/0.16/index.md new file mode 100644 index 0000000..9a4744a --- /dev/null +++ b/0.16/index.md @@ -0,0 +1,24 @@ +# Apache Airavata.... + +- A distributed framework that supports execution and management of computational scientific applications and workflows in grid based systems, remote clusters and cloud based systems. +- Primarily focused on submitting and managing application executions and workflows in grid based systems. +- Architecturally extensible to support other underlying resources. +- Used by scientific gateway developers as their middleware layer. They can directly call Airavata API in order to communicate with grid based system. +- Provides a desktop tools and browser-based web interface components for managing applications, workflows and generated data. +- Contains sophisticated server-side tools for registering and managing scientific applications on computational resources. + +For more information on Airavata visit; <a href="http://airavata.apache.org/" target="_blank">Apache Airavata</a> +<br> +<br> + +<button type="button" style="color:#f2f2f2;text-align:center;font-weight:lighter;background-color:#2481b9;width:220px;border: 2px solid #2481b9;border-radius:4px"><a style="color:white" href="Airavata-Installation" target="_blank"><b>Download</b><br/><br/>Download and install Airavata middleware and reference gateway (PGA).<br/></br>Select the best option for you!</a></button> +<button type="button" style="color:#f2f2f2;text-align:center;font-weight:lighter;background-color:#2481b9;width:220px;border: 2px solid #2481b9;border-radius:4px"><a style="color:white" href="Admin-Tutorials" target="_blank" ><b>Admin Quick Start</b><br/><br/>Tutorials for gateway admin users!</br>Collection of tutorials that will provide instructions for quick set-up.</a></button> +<button type="button" style="color:#f2f2f2;text-align:center;font-weight:lighter;background-color:#2481b9;width:220px;border: 2px solid #2481b9;border-radius:4px"><a style="color:white" href="User-Tutorials" target="_blank" ><b>User Quick Start</b><br/><br/>Tutorials for gateway users!</br>Collection of tutorials way users. <br/>Help with job submission and management!.</a></button> + +<!--<button type="button" style="color:#f2f2f2;text-align:center;font-weight:lighter;background-color:#2481b9;width:220px;border: 2px solid #2481b9;border-radius:4px"><a style="color:white" href="http://airavata.readthedocs.io/en/latest/ target="_blank"><b>User Guide</b></br><br>In-detail documentation on how to install, configure and do upgrades for gateway admins.</br>Step by step guide for gateway users as well.</br></a></button> +</br> + +<!--The Installation section of the documentation applies to on-premise installation of Apache Airavata. --> + +If you are interested to rather use a hosted version, you can contact a downstream project <a href="http://scigap.org/" target="_blank">Science Gateways Platform as a Service (SciGaP)</a>. +<br>SciGaP runs Apache Airavata as platform services. http://git-wip-us.apache.org/repos/asf/airavata-docs/blob/9259dfe4/0.16/mkdocs.yml ---------------------------------------------------------------------- diff --git a/0.16/mkdocs.yml b/0.16/mkdocs.yml new file mode 100644 index 0000000..da066e6 --- /dev/null +++ b/0.16/mkdocs.yml @@ -0,0 +1,38 @@ +site_name: Airavata Documentation + <div>0.16</div> + +docs_dir: . + +pages: +- <h5>Home</h5>: 'index.md' +- <h5>System Installations</h5>: + - Airavata: 'Airavata-Installation.md' + - PGA: 'PGA-Installation.md' + - WSO2 IS: 'Own-WSO2-IS-Configuration.md' + - Airavata Property File: 'airavata-properties.md' +- <h5>Configuration</h5>: + - Admin Tutorials: 'Admin-Tutorials.md' + - PGA: 'Gateway-Configurations.md' + - WSO2 IS: 'WSO2-IS-Configuration.md' +- <h5>Gateway Maintenance</h5>: + - <h6>Code Upgrades</h6>: + - Airavata: 'Airavata-Upgrades.md' + - PGA: 'PGA-Upgrades.md' + - <h6>Admin Dashboard</h6>: 'Admin-Maintenance.md' +- <h5>Documentation</h5>: + - User Tutorials: 'User-Tutorials.md' + - User Profiles: 'User-Profiles.md' + - Software Applications: 'Application-CookBook.md' + - Airavata API: 'AiravataApi.md' +- <h5>Technical Documentation</h5>: + - <h6>Sharing Documentation</h6>: + - Index: 'Sharing-Docs.md' + - Sharing CPI: 'CPI.md' + - Sharing Models: 'Models.md' +- <h5>FAQ</h5>: 'FAQ.md' +- <h5>Contact Us</h5>: 'Contact-Us.md' + +theme: readthedocs + +extra_css: + - css/extra.css
