You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2016/11/04 15:18:43 UTC
[1/3] airavata git commit: removing groper configurations
Repository: airavata
Updated Branches:
refs/heads/develop 0717ae34a -> 2768cf159
removing groper configurations
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/02021d3f
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/02021d3f
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/02021d3f
Branch: refs/heads/develop
Commit: 02021d3f05ccf6819687215613cdf0a7a6c34d88
Parents: d7d058b
Author: scnakandala <su...@gmail.com>
Authored: Fri Nov 4 11:04:33 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Fri Nov 4 11:04:33 2016 -0400
----------------------------------------------------------------------
.../main/resources/grouper.hibernate.properties | 10 -
.../server/src/main/resources/sources.xml | 875 -------------------
2 files changed, 885 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/02021d3f/modules/configuration/server/src/main/resources/grouper.hibernate.properties
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/grouper.hibernate.properties b/modules/configuration/server/src/main/resources/grouper.hibernate.properties
deleted file mode 100755
index d119c3f..0000000
--- a/modules/configuration/server/src/main/resources/grouper.hibernate.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-hibernate.connection.url = jdbc:mysql://localhost:3306/grouper
-
-hibernate.connection.username =root
-# If you are using an empty password, depending upon your version of
-# Java and Ant you may need to specify a password of "".
-# Note: you can keep passwords external and encrypted: https://bugs.internet2.edu/jira/browse/GRP-122
-hibernate.connection.password =
-
-hibernate.cache.use_second_level_cache=true
-hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata/blob/02021d3f/modules/configuration/server/src/main/resources/sources.xml
----------------------------------------------------------------------
diff --git a/modules/configuration/server/src/main/resources/sources.xml b/modules/configuration/server/src/main/resources/sources.xml
deleted file mode 100755
index b00ad26..0000000
--- a/modules/configuration/server/src/main/resources/sources.xml
+++ /dev/null
@@ -1,875 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-
- Copyright 2014 Internet2
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
--->
-<!--
-Grouper's subject resolver configuration
-$Id: sources.example.xml,v 1.8 2009-08-11 20:18:09 mchyzer Exp $
--->
-
-<sources>
-
- <!-- Group Subject Resolver -->
-
- <!--
- You can flag a source as not throwing exception on a findAll (general search) i.e. if it is
- ok if it is down. Generally you probably won't want to do this. It defaults to true if omitted.
-
- <init-param>
- <param-name>throwErrorOnFindAllFailure</param-name>
- <param-value>false</param-value>
- </init-param>
- -->
-
- <!--
- You can make virtual attributes (attributes with formatting or based on other attributes) like this:
- init-param name is subjectVirtualAttribute_<index>_<name> where index is the order to be processed
- if some depend on others (0 to 99). The value is the jexl expression language. You can use subjectUtils
- methods (aliased with "subjectUtils", or you can register your own class (must have default constructor).
- Here are examples:
-
- <init-param>
- <param-name>subjectVirtualAttribute_0_loginIdLfName</param-name>
- <param-value>Hey ${subject.getAttributeValue('LOGINID')} and ${subject.getAttributeValue('LFNAME')}</param-value>
- </init-param>
- <init-param>
- <param-name>subjectVirtualAttribute_1_loginIdLfNameLoginId</param-name>
- <param-value>${subject.getAttributeValue('loginIdLfName')} Hey ${subject.getAttributeValue('LOGINID')} and ${subject.getAttributeValue('LFNAME')}</param-value>
- </init-param>
- <init-param>
- <param-name>subjectVirtualAttributeVariable_JDBCSourceAdapterTest</param-name>
- <param-value>edu.internet2.middleware.subject.provider.JDBCSourceAdapterTest</param-value>
- </init-param>
- <init-param>
- <param-name>subjectVirtualAttribute_2_loginIdSquared</param-name>
- <param-value>${JDBCSourceAdapterTest.appendToSelf(subject.getAttributeValue('LOGINID'))}</param-value>
- </init-param>
-
- The first virtual attribute is accessible via: subject.getAttributeValue("loginIdLfNameLoginId");
-
- you can set these c3p0 settings: maxConnectionAge (seconds), testConnectionOnCheckout (true|false),
- preferredTestQuery (e.g. select 1 from dual), idleConnectionTestPeriod (seconds)
-
-
- <init-param>
- <param-name>findSubjectByIdOnCheckConfig</param-name>
- <param-value>true|false</param-value>
- </init-param>
- <init-param>
- <param-name>subjectIdToFindOnCheckConfig</param-name>
- <param-value>someSubjectIdWhichMightExistOrWhatever</param-value>
- </init-param>
-
- <init-param>
- <param-name>findSubjectByIdentifiedOnCheckConfig</param-name>
- <param-value>true|false</param-value>
- </init-param>
- <init-param>
- <param-name>subjectIdentifierToFindOnCheckConfig</param-name>
- <param-value>someSubjectIdentifierWhichMightExistOrWhatever</param-value>
- </init-param>
-
- <init-param>
- <param-name>findSubjectByStringOnCheckConfig</param-name>
- <param-value>true|false</param-value>
- </init-param>
- <init-param>
- <param-name>stringToFindOnCheckConfig</param-name>
- <param-value>someStringWhichMightExistOrWhatever</param-value>
- </init-param>
- -->
-
- <!--
- NOTE: It is recommended that you **not** change the default
- values for this source adapter.
- -->
- <source adapterClass="edu.internet2.middleware.grouper.GrouperSourceAdapter">
- <id>g:gsa</id>
- <name>Grouper: Group Source Adapter</name>
- <type>group</type>
-
- <init-param>
- <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
- <param-value>${subject.getAttributeValue('name')},${subject.getAttributeValue('displayName')},${subject.getAttributeValue('alternateName')}</param-value>
- </init-param>
- <init-param>
- <param-name>sortAttribute0</param-name>
- <param-value>displayExtension</param-value>
- </init-param>
- <init-param>
- <param-name>searchAttribute0</param-name>
- <param-value>searchAttribute0</param-value>
- </init-param>
- <!-- on a findPage() this is the most results returned -->
- <init-param>
- <param-name>maxPageSize</param-name>
- <param-value>100</param-value>
- </init-param>
- <internal-attribute>searchAttribute0</internal-attribute>
- </source>
- <!-- Group Subject Resolver -->
-
- <!--
- NOTE: It is recommended that you **not** change the default
- values for this source adapter.
- -->
- <source adapterClass="edu.internet2.middleware.grouper.entity.EntitySourceAdapter">
- <id>grouperEntities</id>
- <name>Grouper: Entity Source Adapter</name>
- <type>application</type>
-
- <init-param>
- <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
- <!-- TODO add attribute for subject identifier -->
- <param-value>${subject.getAttributeValue('name')},${subject.getAttributeValue('displayName')},${subject.getAttributeValue('alternateName')}</param-value>
- </init-param>
- <init-param>
- <param-name>sortAttribute0</param-name>
- <param-value>name</param-value>
- </init-param>
- <init-param>
- <param-name>searchAttribute0</param-name>
- <param-value>searchAttribute0</param-value>
- </init-param>
- <internal-attribute>searchAttribute0</internal-attribute>
- </source>
- <!-- Entity Subject Resolver -->
-
- <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter">
- <id>jdbc</id>
- <name>Example JDBC Source Adapter</name>
- <type>person</type>
-
- <!-- edu.internet2.middleware.subject.provider.C3p0JdbcConnectionProvider (default)
- edu.internet2.middleware.subject.provider.DbcpJdbcConnectionProvider (legacy)
- edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider
- (same settings as grouper.hibernate.properties, the driver, url, pass, maxActive, maxIdle, maxWait are forbidden -->
- <init-param>
- <param-name>jdbcConnectionProvider</param-name>
- <param-value>edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider </param-value>
- </init-param>
-
- <!-- If using emails and need email addresses in sources, set which attribute has the email address in this source -->
- <init-param>
- <param-name>emailAttributeName</param-name>
- <param-value>email</param-value>
- </init-param>
-
- <!-- if more than this many results are returned, then throw a too many subjects exception -->
- <init-param>
- <param-name>maxResults</param-name>
- <param-value>1000</param-value>
- </init-param>
-
- <!-- on a findPage() this is the most results returned -->
- <init-param>
- <param-name>maxPageSize</param-name>
- <param-value>100</param-value>
- </init-param>
-
- <!-- note: again, if you use GrouperJdbcConnectionProvider, then you should not fill out maxActive, maxIdle,
- maxWait, dbDriver, dbUrl, dbUser, dbPwd, since it will use the grouper.hibernate.properties db settings -->
-
- <!-- init-param>
- <param-name>maxActive</param-name>
- <param-value>16</param-value>
- </init-param>
- <init-param>
- <param-name>maxIdle</param-name>
- <param-value>16</param-value>
- </init-param>
- <init-param>
- <param-name>maxWait</param-name>
- <param-value>-1</param-value>
- </init-param -->
-
- <!--
- e.g. mysql: com.mysql.jdbc.Driver
- e.g. p6spy (log sql): com.p6spy.engine.spy.P6SpyDriver
- for p6spy, put the underlying driver in spy.properties
- e.g. oracle: oracle.jdbc.driver.OracleDriver
- e.g. hsqldb: org.hsqldb.jdbcDriver
- e.g. postgres: org.postgresql.Driver -->
-
- <!-- init-param>
- <param-name>dbDriver</param-name>
- <param-value>org.hsqldb.jdbcDriver</param-value>
- </init-param -->
-
- <!--
- e.g. mysql: jdbc:mysql://localhost:3306/grouper
- e.g. p6spy (log sql): [use the URL that your DB requires]
- e.g. oracle: jdbc:oracle:thin:@server.school.edu:1521:sid
- e.g. hsqldb (a): jdbc:hsqldb:dist/run/grouper;create=true
- e.g. hsqldb (b): jdbc:hsqldb:hsql://localhost:9001
- e.g. postgres: jdbc:postgresql:grouper -->
-
- <!-- init-param>
- <param-name>dbUrl</param-name>
- <param-value>jdbc:hsqldb:C:/projects/GrouperI2MI_1-2/grouper/dist/run/grouper</param-value>
- </init-param>
- <init-param>
- <param-name>dbUser</param-name>
- <param-value>sa</param-value>
- </init-param>
- <init-param>
- <param-name>dbPwd</param-name>
- <param-value></param-value>
- </init-param -->
-
- <init-param>
- <param-name>SubjectID_AttributeType</param-name>
- <param-value>id</param-value>
- </init-param>
- <init-param>
- <param-name>Name_AttributeType</param-name>
- <param-value>name</param-value>
- </init-param>
- <init-param>
- <param-name>Description_AttributeType</param-name>
- <param-value>description</param-value>
- </init-param>
- <init-param>
- <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
- <param-value>${subject.name},${subjectUtils.defaultIfBlank(subject.getAttributeValue('LFNAME'), "")},${subjectUtils.defaultIfBlank(subject.getAttributeValue('LOGINID'), "")},${subjectUtils.defaultIfBlank(subject.description, "")},${subjectUtils.defaultIfBlank(subject.getAttributeValue('EMAIL'), "")}</param-value>
- </init-param>
- <init-param>
- <param-name>sortAttribute0</param-name>
- <param-value>LFNAME</param-value>
- </init-param>
- <init-param>
- <param-name>sortAttribute1</param-name>
- <param-value>LOGINID</param-value>
- </init-param>
- <init-param>
- <param-name>searchAttribute0</param-name>
- <param-value>searchAttribute0</param-value>
- </init-param>
- <internal-attribute>searchAttribute0</internal-attribute>
-
- <!-- if you are going to use the inclause attribute
- on the search to make the queries batchable when searching
- by id or identifier -->
- <init-param>
- <param-name>useInClauseForIdAndIdentifier</param-name>
- <param-value>true</param-value>
- </init-param>
-
- <!-- comma separate the identifiers for this row, this is for the findByIdentifiers if using an in clause -->
- <init-param>
- <param-name>identifierAttributes</param-name>
- <param-value>LOGINID</param-value>
- </init-param>
-
- <!-- subject identifier to store in grouper's member table -->
- <init-param>
- <param-name>subjectIdentifierAttribute0</param-name>
- <param-value>LOGINID</param-value>
- </init-param>
-
- <search>
- <searchType>searchSubject</searchType>
- <param>
- <param-name>sql</param-name>
- <param-value>
-select
- s.subjectid as id, s.name as name,
- (select sa2.value from subjectattribute sa2 where name='name' and sa2.SUBJECTID = s.subjectid) as lfname,
- (select sa3.value from subjectattribute sa3 where name='loginid' and sa3.SUBJECTID = s.subjectid) as loginid,
- (select sa4.value from subjectattribute sa4 where name='description' and sa4.SUBJECTID = s.subjectid) as description,
- (select sa5.value from subjectattribute sa5 where name='email' and sa5.SUBJECTID = s.subjectid) as email
-from
- subject s
-where
- {inclause}
- </param-value>
- </param>
- <param>
- <param-name>inclause</param-name>
- <param-value>
-s.subjectid = ?
- </param-value>
- </param>
- </search>
- <search>
- <searchType>searchSubjectByIdentifier</searchType>
- <param>
- <param-name>sql</param-name>
- <param-value>
-select
- s.subjectid as id, s.name as name,
- (select sa2.value from subjectattribute sa2 where name='name' and sa2.SUBJECTID = s.subjectid) as lfname,
- (select sa3.value from subjectattribute sa3 where name='loginid' and sa3.SUBJECTID = s.subjectid) as loginid,
- (select sa4.value from subjectattribute sa4 where name='description' and sa4.SUBJECTID = s.subjectid) as description,
- (select sa5.value from subjectattribute sa5 where name='email' and sa5.SUBJECTID = s.subjectid) as email
-from
- subject s, subjectattribute a
-where
- a.name='loginid' and s.subjectid = a.subjectid and {inclause}
- </param-value>
- </param>
- <param>
- <param-name>inclause</param-name>
- <param-value>
- a.value = ?
- </param-value>
- </param>
- </search>
- <search>
- <searchType>search</searchType>
- <param>
- <param-name>sql</param-name>
-
- <!-- for postgres, use this query since no concat() exists:
-
- select
- subject.subjectid as id, subject.name as name,
- lfnamet.lfname as lfname, loginidt.loginid as loginid,
- desct.description as description, emailt.email as email
-from
- subject
- left join (select subjectid, value as lfname from subjectattribute
- where name='name') lfnamet
- on subject.subjectid=lfnamet.subjectid
- left join (select subjectid, value as loginid from subjectattribute
- where name='loginid') loginidt
- on subject.subjectid=loginidt.subjectid
- left join (select subjectid, value as description from subjectattribute
- where name='description') desct
- on subject.subjectid=desct.subjectid
- left join (select subjectid, value as email from subjectattribute
- where name='email') emailt
- on subject.subjectid=emailt.subjectid
-where
- (lower(name) like '%' || ? || '%')
- or (lower(lfnamet.lfname) like '%' || ? || '%')
- or (lower(loginidt.loginid) like '%' || ? || '%')
- or (lower(desct.description) like '%' || ? || '%')
- or (lower(emailt.email) like '%' || ? || '%')
-
-for SQL-server:
-
-select
- subject.subjectid as id, subject.name as name,
- lfnamet.lfname as lfname, loginidt.loginid as loginid,
- desct.description as description, emailt.email as email
-from
- subject
- left join (select subjectid, value as lfname from subjectattribute
- where name='name') lfnamet
- on subject.subjectid=lfnamet.subjectid
- left join (select subjectid, value as loginid from subjectattribute
- where name='loginid') loginidt
- on subject.subjectid=loginidt.subjectid
- left join (select subjectid, value as description from subjectattribute
- where name='description') desct
- on subject.subjectid=desct.subjectid
- left join (select subjectid, value as email from subjectattribute
- where name='email') emailt
- on subject.subjectid=emailt.subjectid
-where
- (lower(name) like '%' + ? + '%')
- or (lower(lfnamet.lfname) like '%' + ? + '%')
- or (lower(loginidt.loginid) like '%' + ? + '%')
- or (lower(desct.description) like '%' + ? + '%')
- or (lower(emailt.email) like '%' + ? + '%')
-
- -->
-
- <param-value>
-select
- s.subjectid as id, s.name as name,
- (select sa2.value from subjectattribute sa2 where name='name' and sa2.SUBJECTID = s.subjectid) as lfname,
- (select sa3.value from subjectattribute sa3 where name='loginid' and sa3.SUBJECTID = s.subjectid) as loginid,
- (select sa4.value from subjectattribute sa4 where name='description' and sa4.SUBJECTID = s.subjectid) as description,
- (select sa5.value from subjectattribute sa5 where name='email' and sa5.SUBJECTID = s.subjectid) as email
-from
- subject s
-where
- s.subjectid in (
- select subjectid from subject where lower(name) like concat('%',concat(?,'%')) union
- select subjectid from subjectattribute where searchvalue like concat('%',concat(?,'%'))
- )
- </param-value>
- </param>
- </search>
- </source>
-
- <!--
- <!- - This is an alternate jdbc source which allows for more complex searches, assumes
- all data is in one table or view, and that all attributes are single valued. There are
- not queries to configure in sources.xml - - >
- <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter2">
- <id>sourceId</id>
- <name>Source name</name>
- <type>person</type>
- <init-param>
- <param-name>jdbcConnectionProvider</param-name>
- <param-value>edu.internet2.middleware.grouper.subj.GrouperJdbcConnectionProvider</param-value>
- </init-param>
-
- <init-param>
- <param-name>maxResults</param-name>
- <param-value>1000</param-value>
- </init-param>
-
- <init-param>
- <param-name>dbTableOrView</param-name>
- <param-value>person_source_v</param-value>
- </init-param>
- <init-param>
- <param-name>subjectIdCol</param-name>
- <param-value>some_id</param-value>
- </init-param>
- <init-param>
- <param-name>nameCol</param-name>
- <param-value>name</param-value>
- </init-param>
- <init-param>
- <param-name>descriptionCol</param-name>
- <param-value>description</param-value>
- </init-param>
- <init-param>
- <!- - search col where general searches take place, lower case - - >
- <param-name>lowerSearchCol</param-name>
- <param-value>description_lower</param-value>
- </init-param>
- <init-param>
- <!- - optional col if you want the search results sorted in the API (note, UI might override) - - >
- <param-name>defaultSortCol</param-name>
- <param-value>description</param-value>
- </init-param>
- <init-param>
- <!- - col which identifies the row, perhaps not subjectId, add multiple by incrementing the 0 index - - >
- <param-name>subjectIdentifierCol0</param-name>
- <param-value>pennname</param-value>
- </init-param>
- <init-param>
- <!- - col which identifies the row, perhaps not subjectId, add multiple by incrementing the 0 index - - >
- <param-name>subjectIdentifierCol1</param-name>
- <param-value>penn_id</param-value>
- </init-param>
- <!- - now you can count up from 0 to N of attributes for various cols.
- The name is how to reference in subject.getAttribute() - - >
- <init-param>
- <param-name>subjectAttributeCol0</param-name>
- <param-value>pennname</param-value>
- </init-param>
- <init-param>
- <param-name>subjectAttributeName0</param-name>
- <param-value>PENNNAME</param-value>
- </init-param>
- <init-param>
- <param-name>subjectAttributeCol1</param-name>
- <param-value>description_lower</param-value>
- </init-param>
- <init-param>
- <param-name>subjectAttributeName1</param-name>
- <param-value>searchAttribute0</param-value>
- </init-param>
- <init-param>
- <param-name>sortAttribute0</param-name>
- <param-value>description</param-value>
- </init-param>
- <init-param>
- <param-name>searchAttribute0</param-name>
- <param-value>searchAttribute0</param-value>
- </init-param>
- <internal-attribute>searchAttribute0</internal-attribute>
- <!- - ########################## STATUS SECTION for searches to filter out inactives and allow
- the user to filter by status with e.g. status=all
- this is optional, and advanced - ->
- <!- - column or attribute which represents the status - - >
- <!- -
- <init-param>
- <param-name>statusDatastoreFieldName</param-name>
- <param-value>status</param-value>
- </init-param> - - >
- <!- - search string from user which represents the status. e.g. status=active - - >
- <!- -
- <init-param>
- <param-name>statusLabel</param-name>
- <param-value>status</param-value>
- </init-param> - - >
- <!- - available statuses from screen (if not specified, any will be allowed). comma separated list.
- Note, this is optional and you probably dont want to configure it, it is mostly necessary
- when you have multiple sources with statuses... if someone types an invalid status
- and you have this configured, it will not filter by it - - >
- <!- -
- <init-param>
- <param-name>statusesFromUser<param-name>
- <param-value>Active, Inactive, Pending, All</param-value>
- </init-param> - - >
- <!- - all label from the user - - >
- <!- -
- <init-param>
- <param-name>statusAllFromUser</param-name>
- <param-value>All</param-value>
- </init-param> - - >
- <!- - if no status is specified, this will be used (e.g. for active only). Note, the value should be of the
- form the user would type in - - >
- <!- -
- <init-param>
- <param-name>statusSearchDefault</param-name>
- <param-value>status=active</param-value>
- </init-param> - - >
- <!- - translate between screen values of status, and the data store value. Increment the 0 to 1, 2, etc for more translations.
- so the user could enter: status=active, and that could translate to status_col=A. The 'user' is what the user types in,
- the 'datastore' is what is in the datastore. The user part is not case-sensitive. Note, this could be a many to one - - >
- <!- -
- <init-param>
- <param-name>statusTranslateUser0</param-name>
- <param-value>active</param-value>
- </init-param>
- <init-param>
- <param-name>statusTranslateDatastore0</param-name>
- <param-value>A</param-value>
- </init-param> - - >
- <!- - ########################## END STATUS SECTION - - >
- </source>
- -->
-
- <!--
- <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJndiSourceAdapter">
- <id>example</id>
- <name>Example Edu</name>
- <type>person</type>
- <init-param>
- <param-name>INITIAL_CONTEXT_FACTORY</param-name>
- <param-value>com.sun.jndi.ldap.LdapCtxFactory</param-value>
- </init-param>
- <init-param>
- <param-name>PROVIDER_URL</param-name>
- <param-value>ldap://localhost:389</param-value>
- </init-param>
- <init-param>
- <param-name>SECURITY_AUTHENTICATION</param-name>
- <param-value>simple</param-value>
- </init-param>
- <init-param>
- <param-name>SECURITY_PRINCIPAL</param-name>
- <param-value>cn=Manager,dc=example,dc=edu</param-value>
- </init-param>
- <init-param>
- <param-name>SECURITY_CREDENTIALS</param-name>
- <param-value>secret</param-value>
- </init-param>
- <init-param>
- <param-name>SubjectID_AttributeType</param-name>
- <param-value>exampleEduRegID</param-value>
- </init-param>
- <init-param>
- <param-name>SubjectID_formatToLowerCase</param-name>
- <param-value>false</param-value>
- </init-param>
- <init-param>
- <param-name>Name_AttributeType</param-name>
- <param-value>cn</param-value>
- </init-param>
- <init-param>
- <param-name>Description_AttributeType</param-name>
- <param-value>description</param-value>
- </init-param>
-
- <init-param>
- <param-name>VTLDAP_VALIDATOR</param-name>
- <param-value>ConnectLdapValidator|CompareLdapValidator</param-value>
- </init-param>
- <init-param>
- <param-name>VTLDAP_VALIDATOR_COMPARE_DN</param-name>
- <param-value>ou=People,dc=vt,dc=edu</param-value>
- </init-param>
- <init-param>
- <param-name>VTLDAP_VALIDATOR_COMPARE_SEARCH_FILTER_STRING</param-name>
- <param-value>ou=People</param-value>
- </init-param>
-
- /// Scope Values can be: OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE
- /// For filter use
-
- <search>
- <searchType>searchSubject</searchType>
- <param>
- <param-name>filter</param-name>
- <param-value>
- (& (exampleEduRegId=%TERM%) (objectclass=exampleEduPerson))
- </param-value>
- </param>
- <param>
- <param-name>scope</param-name>
- <param-value>
- SUBTREE_SCOPE
- </param-value>
- </param>
- <param>
- <param-name>base</param-name>
- <param-value>
- ou=people,dc=example,dc=edu
- </param-value>
- </param>
-
- </search>
- <search>
- <searchType>searchSubjectByIdentifier</searchType>
- <param>
- <param-name>filter</param-name>
- <param-value>
- (& (uid=%TERM%) (objectclass=exampleEduPerson))
- </param-value>
- </param>
- <param>
- <param-name>scope</param-name>
- <param-value>
- SUBTREE_SCOPE
- </param-value>
- </param>
- <param>
- <param-name>base</param-name>
- <param-value>
- ou=people,dc=example,dc=edu
- </param-value>
- </param>
- </search>
-
- <search>
- <searchType>search</searchType>
- <param>
- <param-name>filter</param-name>
- <param-value>
- (& (|(|(uid=%TERM%)(cn=*%TERM%*))(exampleEduRegId=%TERM%))(objectclass=exampleEduPerson))
- </param-value>
- </param>
- <param>
- <param-name>scope</param-name>
- <param-value>
- SUBTREE_SCOPE
- </param-value>
- </param>
- <param>
- <param-name>base</param-name>
- <param-value>
- ou=people,dc=example,dc=edu
- </param-value>
- </param>
- </search>
- <init-param>
- <param-name>subjectVirtualAttribute_0_searchAttribute0</param-name>
- <param-value>${subjectUtils.defaultIfBlank(subject.getAttributeValueOrCommaSeparated('uid'), "")},${subjectUtils.defaultIfBlank(subject.getAttributeValueOrCommaSeparated('cn'), "")},${subjectUtils.defaultIfBlank(subject.getAttributeValueOrCommaSeparated('exampleEduRegId'), "")}</param-value>
- </init-param>
- <init-param>
- <param-name>sortAttribute0</param-name>
- <param-value>cn</param-value>
- </init-param>
- <init-param>
- <param-name>searchAttribute0</param-name>
- <param-value>searchAttribute0</param-value>
- </init-param>
-
- <!- - ########################## STATUS SECTION for searches to filter out inactives and allow
- the user to filter by status with e.g. status=all
- this is optional, and advanced - ->
- <!- - column or attribute which represents the status - - >
- <!- -
- <init-param>
- <param-name>statusDatastoreFieldName</param-name>
- <param-value>status</param-value>
- </init-param> - - >
- <!- - search string from user which represents the status. e.g. status=active - - >
- <!- -
- <init-param>
- <param-name>statusLabel</param-name>
- <param-value>status</param-value>
- </init-param> - - >
- <!- - available statuses from screen (if not specified, any will be allowed). comma separated list.
- Note, this is optional and you probably dont want to configure it, it is mostly necessary
- when you have multiple sources with statuses... if someone types an invalid status
- and you have this configured, it will not filter by it - - >
- <!- -
- <init-param>
- <param-name>statusesFromUser<param-name>
- <param-value>Active, Inactive, Pending, All</param-value>
- </init-param> - - >
- <!- - all label from the user - - >
- <!- -
- <init-param>
- <param-name>statusAllFromUser</param-name>
- <param-value>All</param-value>
- </init-param> - - >
- <!- - if no status is specified, this will be used (e.g. for active only). Note, the value should be of the
- form the user would type in - - >
- <!- -
- <init-param>
- <param-name>statusSearchDefault</param-name>
- <param-value>status=active</param-value>
- </init-param> - - >
- <!- - translate between screen values of status, and the data store value. Increment the 0 to 1, 2, etc for more translations.
- so the user could enter: status=active, and that could translate to status_col=A. The 'user' is what the user types in,
- the 'datastore' is what is in the datastore. The user part is not case-sensitive. Note, this could be a many to one - - >
- <!- -
- <init-param>
- <param-name>statusTranslateUser0</param-name>
- <param-value>active</param-value>
- </init-param>
- <init-param>
- <param-name>statusTranslateDatastore0</param-name>
- <param-value>A</param-value>
- </init-param> - - >
- <!- - ########################## END STATUS SECTION - - >
-
-
- <internal-attribute>searchAttribute0</internal-attribute>
-
- ///Attributes you would like to display when doing a search
- <attribute>cn</attribute>
- <attribute>sn</attribute>
- <attribute>uid</attribute>
- <attribute>department</attribute>
- <attribute>exampleEduRegId</attribute>
-
- <!- - subject identifier to store in grouper's member table - - >
- <init-param>
- <param-name>subjectIdentifierAttribute0</param-name>
- <param-value>uid</param-value>
- </init-param>
-
- </source>
--->
-
- <source adapterClass="edu.internet2.middleware.grouper.subj.GrouperJdbcSourceAdapter2">
-� � � � <id>AIRAVATA_SUBJECT_SOURCE</id>
-� � � � <name>AIRAVATA_SUBJECT_SOURCE</name>
-� � � � �<type>person</type>�
-� � � � �<init-param>
-� � � � � �<param-name>jdbcConnectionProvider</param-name>
-� � � � � �<param-value>edu.internet2.middleware.subject.provider.C3p0JdbcConnectionProvider</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � � <param-name>dbDriver</param-name>
-� � � � � � <param-value>com.mysql.jdbc.Driver</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � � <param-name>dbUrl</param-name>
-� � � � � � <param-value>jdbc:mysql://gw62.iu.xsede.org:3306/dev_expcatalog_gw56</param-value>
-� � � � </init-param>
-� � � ��
-� � � � <init-param>
-� � � � � � <param-name>dbUser</param-name>
-� � � � � � <param-value></param-value>
-� � � � </init-param>
-� � � ��
-� � � � <init-param>
-� � � � � � <param-name>dbPwd</param-name>
-� � � � � � <param-value></param-value>
-� � � � </init-param>
-� ��
-� � � � �<init-param>
-� � � � � �<param-name>maxResults</param-name>
-� � � � � �<param-value>1000</param-value>
-� � � � �</init-param>
-� ��
-� � � � � <init-param>
-� � � � � �<param-name>dbTableOrView</param-name>
-� � � � � �<param-value>USERS</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � � <init-param>
-� � � � � �<param-name>subjectIdCol</param-name>
-� � � � � �<param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
-� � � � �</init-param>
-� � � � �<init-param>
-� � � � � �<param-name>nameCol</param-name>
-� � � � � �<param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
-� � � � �</init-param>
-� � � � �<init-param>
-� � � � � �<param-name>descriptionCol</param-name>
-� � � � � �<param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � �<param-name>lowerSearchCol</param-name>
-� � � � � �<param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � �<param-name>defaultSortCol</param-name>
-� � � � � �<param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
-� � � � �</init-param>
-� � � �
- <!-- �<init-param>
-� � � � � �<param-name>subjectIdentifierCol0</param-name>
-� � � � � �<param-value>subject_identifier</param-value>
-� � � � �</init-param> -->
-� � � ��
-� � � � �<!-- <init-param>
-� � � � � �<param-name>subjectAttributeCol0</param-name>
-� � � � � �<param-value>description</param-value>
-� � � � �</init-param>
-� � � � �<init-param>
-� � � � � �<param-name>subjectAttributeName0</param-name>
-� � � � � �<param-value>description</param-value>
-� � � � �</init-param> -->
-� � � ��
-� � � � �<init-param>
-� � � � � �<param-name>sortAttribute0</param-name>
-� � � � � �<param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
-� � � � �</init-param>
-� � � � � <init-param>
-� � � � � �<param-name>searchAttribute0</param-name>
-� � � � � �<param-value>AIRAVATA_INTERNAL_USER_ID</param-value>
-� � � � �</init-param>
-� � � � �<!-- <internal-attribute>searchAttribute0</internal-attribute> -->
-� � � � �
-� � � � �<!-- <init-param>
-� � � � � �<param-name>statusDatastoreFieldName</param-name>
-� � � � � �<param-value>status</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � �<param-name>statusLabel</param-name>
-� � � � � �<param-value>status</param-value>
-� � � � �</init-param> -->
-� � � ��
-� � � � �
-� � � � �<!-- <init-param>
-� � � � � �<param-name>statusesFromUser</param-name>
-� � � � � �<param-value>Active, Inactive, Pending, All</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � �<param-name>statusAllFromUser</param-name>
-� � � � � �<param-value>All</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � �<param-name>statusSearchDefault</param-name>
-� � � � � �<param-value>status=active</param-value>
-� � � � �</init-param>
-� � � � �
-� � � � �<init-param>
-� � � � � �<param-name>statusTranslateUser0</param-name>
-� � � � � �<param-value>active</param-value>
-� � � � �</init-param>
-� � � � �<init-param>
-� � � � � �<param-name>statusTranslateDatastore0</param-name>
-� � � � � �<param-value>A</param-value>
-� � � � �</init-param> -->
-� � � �</source>�
-
-</sources>
-
[3/3] airavata git commit: Merge branch 'develop' of
https://git-wip-us.apache.org/repos/asf/airavata into develop
Posted by sc...@apache.org.
Merge branch 'develop' of https://git-wip-us.apache.org/repos/asf/airavata into develop
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/2768cf15
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/2768cf15
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/2768cf15
Branch: refs/heads/develop
Commit: 2768cf15997887dbf81f9d546f9bc1c2487131ee
Parents: 56384a1 0717ae3
Author: scnakandala <su...@gmail.com>
Authored: Fri Nov 4 11:17:52 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Fri Nov 4 11:17:52 2016 -0400
----------------------------------------------------------------------
.../cloud/aurora/client/AuroraThriftClient.java | 237 ++++++++++++++-----
.../aurora/util/AuroraThriftClientUtil.java | 2 +-
.../airavata/cloud/aurora/util/Constants.java | 2 +-
3 files changed, 179 insertions(+), 62 deletions(-)
----------------------------------------------------------------------
[2/3] airavata git commit: Airavata ansible scripts
Posted by sc...@apache.org.
Airavata ansible scripts
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/56384a1a
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/56384a1a
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/56384a1a
Branch: refs/heads/develop
Commit: 56384a1a028acf50e3111234d0ab5f15c8aadf70
Parents: 02021d3
Author: Shameera Rathnayaka <sh...@gmail.com>
Authored: Thu Jul 28 12:12:54 2016 -0400
Committer: scnakandala <su...@gmail.com>
Committed: Fri Nov 4 11:04:38 2016 -0400
----------------------------------------------------------------------
group_vars/all | 51 ++++
hosts | 18 ++
.../files/mysql-connector-java-5.1.37-bin.jar | Bin 0 -> 985603 bytes
roles/api-orch/handlers/main.yml | 10 +
roles/api-orch/tasks/main.yml | 54 ++++
.../templates/airavata-server.properties.j2 | 278 +++++++++++++++++++
roles/api-orch/templates/gfac-config.yaml.j2 | 111 ++++++++
roles/api-orch/vars/main.yml | 3 +
roles/common/files/airavata.jks | Bin 0 -> 1410 bytes
roles/common/files/client_truststore.jks | Bin 0 -> 3558 bytes
roles/common/handlers/main.yml | 45 +++
roles/common/tasks/main.yml | 40 +++
roles/common/vars/main.yml | 5 +
.../files/mysql-connector-java-5.1.37-bin.jar | Bin 0 -> 985603 bytes
roles/gfac/handlers/main.yml | 8 +
roles/gfac/tasks/main.yml | 53 ++++
.../templates/airavata-server.properties.j2 | 278 +++++++++++++++++++
roles/gfac/templates/gfac-config.yaml.j2 | 111 ++++++++
roles/gfac/vars/main.yml | 3 +
roles/rabbitmq/handlers/main.yml | 10 +
roles/rabbitmq/tasks/main.yml | 44 +++
roles/setup/tasks/main.yml | 44 +++
roles/setup/tasks/redhat.yml | 12 +
roles/setup/vars/main.yml | 15 +
roles/zookeeper/handlers/main.yml | 19 ++
roles/zookeeper/tasks/main.yml | 15 +
roles/zookeeper/templates/zoo.cfg.j2 | 28 ++
roles/zookeeper/vars/main.yml | 17 ++
site.yml | 25 ++
29 files changed, 1297 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/group_vars/all
----------------------------------------------------------------------
diff --git a/group_vars/all b/group_vars/all
new file mode 100644
index 0000000..2c2cb95
--- /dev/null
+++ b/group_vars/all
@@ -0,0 +1,51 @@
+---
+ansible_connection: ssh
+ansible_ssh_user: root
+ansible_ssh_private_key_file: /Users/syodage/Projects/scigap/JetCloud/jetcloud.key
+
+user: airavata
+group: airavata
+user_home: "/home/{{ user }}"
+deployment_dir: "{{ user_home }}/master-deployment"
+
+airavata_dist: "apache-airavata-server-0.17-SNAPSHOT"
+airavata_dist_name: "{{ airavata_dist }}-bin.tar.gz"
+
+db_server: "gw62.iu.xsede.org"
+db_user: "SciGaP15Deploy"
+db_password: "xxxxxxxxxxx"
+app_catalog: "app_catalog"
+exp_catalog: "exp_catalog"
+replica_catalog: "replica_catalog"
+workflow_catalog: "wf_catalog"
+credential_store: "credential_store"
+
+rabbitmq_server: "localhost"
+rabbitmq_vhost: "master"
+rabbitmq_user: "airavata"
+rabbitmq_password: "airavata"
+rabbitmq_broker_url: "amqp://{{ rabbitmq_user }}:{{ rabbitmq_password }}@{{ rabbitmq_server}}:5672/{{ rabbitmq_vhost }}"
+
+key_store: "airavata.jks"
+cred_key_store: "client_truststore.jks"
+cred_store_server_host: "gw77.iu.xsede.org"
+key_stores_location: "{{ deployment_dir }}/keystores"
+
+mysql_connector_jar: "mysql-connector-java-5.1.37-bin.jar"
+
+api_server_name: "apiserver-node0"
+api_server_host: "{{ host_address }}"
+api_server_port: "8930"
+
+orchestrator_name: "orchestrator-node0"
+orchestrator_host: "{{ host_address }}"
+orchestrator_port: "8940"
+
+gfac_name: "gfac-node0"
+gfac_host: "{{ host_address }}"
+gfac_port: "8950"
+
+monitor_email_address: "jobs@scigap.org"
+monitor_email_password: "xxxxx"
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/hosts
----------------------------------------------------------------------
diff --git a/hosts b/hosts
new file mode 100644
index 0000000..11a03c7
--- /dev/null
+++ b/hosts
@@ -0,0 +1,18 @@
+# inventory file : production
+
+[api-orch]
+149.165.156.196 host_name=js-156-196 host_address=149.165.156.196
+#149.165.171.11 host_name=js-171-11 host_address=149.165.171.11
+
+[gfac]
+149.165.156.196 host_name=js-156-196 host_address=149.165.156.196
+#149.165.171.11 host_name=js-171-11 host_address=149.165.171.11
+
+[pga]
+149.165.156.196
+
+[zookeeper]
+149.165.156.196 host_name=js-156-196 host_address=149.165.156.196
+
+[rabbitmq]
+149.165.156.196 host_name=js-156-196 host_address=149.165.156.196
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/api-orch/files/mysql-connector-java-5.1.37-bin.jar
----------------------------------------------------------------------
diff --git a/roles/api-orch/files/mysql-connector-java-5.1.37-bin.jar b/roles/api-orch/files/mysql-connector-java-5.1.37-bin.jar
new file mode 100644
index 0000000..465af67
Binary files /dev/null and b/roles/api-orch/files/mysql-connector-java-5.1.37-bin.jar differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/api-orch/handlers/main.yml
----------------------------------------------------------------------
diff --git a/roles/api-orch/handlers/main.yml b/roles/api-orch/handlers/main.yml
new file mode 100644
index 0000000..c1a828d
--- /dev/null
+++ b/roles/api-orch/handlers/main.yml
@@ -0,0 +1,10 @@
+---
+
+# Api server, Orchestrator related handlers
+- name: start api-orch
+ command: ./bin/airavata-server-start.sh api-orch -d chdir="{{ api_orch_dir }}/{{ airavata_dist }}/" creates="{{ api_orch_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+- name: stop api-orch
+ command: ./bin/airavata-server-stop.sh -f chdir="{{ api_orch_dir }}/{{ airavata_dist }}/" removes="{{ api_orch_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/api-orch/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/api-orch/tasks/main.yml b/roles/api-orch/tasks/main.yml
new file mode 100644
index 0000000..827f520
--- /dev/null
+++ b/roles/api-orch/tasks/main.yml
@@ -0,0 +1,54 @@
+---
+################################################################################
+# api-orch deployment
+- name: Create api-orchestrator deployment directory
+ file: path="{{ api_orch_dir }}" state=directory owner="{{ user }}" group="{{ group }}"
+ when: build|success
+ tags: deploy, update_api_orch, update
+
+- name: Check previous deployments
+ stat: path="{{ api_orch_dir }}/{{ airavata_dist }}" get_md5=no get_checksum=no
+ register: pp
+ tags: deploy, update_api_orch, update
+
+- block:
+ - name: stop api-orch
+ command: ./bin/airavata-server-stop.sh -f chdir="{{ api_orch_dir }}/{{ airavata_dist }}/" removes="{{ api_orch_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+ - name: Delete previous deployments
+ file: path="{{ gfac_dir }}/{{ airavata_dist }}" state=absent
+
+ when: pp.stat.exists == True
+ tags: deploy, update_api_orch, update
+#
+# - block:
+# - name: Remove pervious backup directory
+# file: path="{{ api_orch_dir }}/backup" state=absent
+# notify:
+# - stop api-orch
+#
+# - name: Backup previous deployment directory
+# copy: src="{{ api_orch_dir }}/{{ airavata_dist }}" dest="{{ api_orch_dir }}/backup" copy=no
+#
+# when: p.stat.exist == True
+# tags: deploy update_api_orch update
+
+- name: Copy distribution to api-orcheatrator deployment directory
+ unarchive: src="{{ airavata_source_dir }}/distribution/target/{{ airavata_dist_name }}" dest="{{ api_orch_dir }}/" copy=no
+ become: yes
+ become_user: "{{ user }}"
+ tags: deploy, update_api_orch, update
+
+- name: Copy Airavata server properties file
+ template: src=airavata-server.properties.j2 dest="{{ api_orch_dir }}/{{ airavata_dist }}/bin/airavata-server.properties" owner="{{ user }}" group="{{ group }}" mode="u=rw,g=r,o=r"
+ tags: deploy, update_api_orch, update
+
+- name: Copy Gfac configuration file
+ template: src=gfac-config.yaml.j2 dest="{{ api_orch_dir }}/{{ airavata_dist }}/bin/gfac-config.yaml" owner="{{ user }}" group="{{ group }}" mode="u=rw,g=r,o=r"
+ tags: deploy, update_api_orch, update
+
+- name: Copy Mysql jar to lib
+ copy: src="{{ mysql_connector_jar }}" dest="{{ api_orch_dir }}/{{ airavata_dist }}/lib/{{ mysql_connector_jar }}" owner="{{ user }}" group="{{ group }}"
+ tags: deploy, update_api_orch, update
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/api-orch/templates/airavata-server.properties.j2
----------------------------------------------------------------------
diff --git a/roles/api-orch/templates/airavata-server.properties.j2 b/roles/api-orch/templates/airavata-server.properties.j2
new file mode 100644
index 0000000..449a7fd
--- /dev/null
+++ b/roles/api-orch/templates/airavata-server.properties.j2
@@ -0,0 +1,278 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+###########################################################################
+#
+# This properties file provides configuration for all Airavata Services:
+# API Server, Registry, Workflow Interpreter, GFac, Orchestrator
+#
+###########################################################################
+
+###########################################################################
+# API Server Registry Configuration
+###########################################################################
+
+#for derby [AiravataJPARegistry]
+#registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#registry.jdbc.url=jdbc:derby://localhost:1527/experiment_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+registry.jdbc.driver=com.mysql.jdbc.Driver
+registry.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ exp_catalog }}
+registry.jdbc.user={{ db_user }}
+registry.jdbc.password={{ db_password }}
+#FIXME: Probably the following property should be removed.
+start.derby.server.mode=false
+validationQuery=SELECT 1 from CONFIGURATION
+cache.enable=false
+jpa.cache.size=-1
+#jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true
+
+# Properties for default user mode
+default.registry.user=admin
+default.registry.password=admin
+default.registry.password.hash.method=SHA
+default.registry.gateway=default
+
+###########################################################################
+# Application Catalog DB Configuration
+###########################################################################
+#for derby [AiravataJPARegistry]
+#appcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#appcatalog.jdbc.url=jdbc:derby://localhost:1527/app_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+appcatalog.jdbc.driver=com.mysql.jdbc.Driver
+appcatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ app_catalog }}
+appcatalog.jdbc.user={{ db_user }}
+appcatalog.jdbc.password={{ db_password }}
+appcatalog.validationQuery=SELECT 1 from CONFIGURATION
+
+##########################################################################
+# Replica Catalog DB Configuration
+###########################################################################
+#for derby [AiravataJPARegistry]
+#replicacatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#replicacatalog.jdbc.url=jdbc:derby://localhost:1527/replica_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+replicacatalog.jdbc.driver=com.mysql.jdbc.Driver
+replicacatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ replica_catalog }}
+replicacatalog.jdbc.user={{ db_user }}
+replicacatalog.jdbc.password={{ db_password }}
+replicacatalog.validationQuery=SELECT 1 from CONFIGURATION
+
+###########################################################################
+# Workflow Catalog DB Configuration
+###########################################################################
+#for derby [AiravataJPARegistry]
+#workflowcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#workflowcatalog.jdbc.url=jdbc:derby://localhost:1527/workflow_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+workflowcatalog.jdbc.driver=com.mysql.jdbc.Driver
+workflowcatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ replica_catalog }}
+workflowcatalog.jdbc.user={{ db_user }}
+workflowcatalog.jdbc.password={{ db_password }}
+workflowcatalog.validationQuery=SELECT 1 from CONFIGURATION
+
+###########################################################################
+# User Profile MongoDB Configuration
+###########################################################################
+userprofile.mongodb.host=localhost
+userprofile.mongodb.port=27017
+
+
+###########################################################################
+# Server module Configuration
+###########################################################################
+#credential store server should be started before API server
+#This is obsolete property with new script files.
+#servers=credentialstore,apiserver,orchestrator
+
+
+###########################################################################
+# API Server Configurations
+###########################################################################
+apiserver.name={{ api_server_name }}
+apiserver.host={{ api_server_host }}
+apiserver.port={{ api_server_port }}
+apiserver.min.threads=50
+
+###########################################################################
+# API Server SSL Configurations
+###########################################################################
+apiserver.tls.enabled=true
+apiserver.keystore={{ key_stores_location }}/{{ key_store }}
+apiserver.keystore.password=airavata
+
+###########################################################################
+# Orchestrator Server Configurations
+###########################################################################
+orchestrator.server.name={{ orchestrator_name }}
+orchestrator.server.host={{ orchestrator_host }}
+orchestrator.server.port={{ orchestrator_port }}
+orchestrator.server.min.threads=50
+job.validators=org.apache.airavata.orchestrator.core.validator.impl.BatchQueueValidator,org.apache.airavata.orchestrator.core.validator.impl.ExperimentStatusValidator
+submitter.interval=10000
+threadpool.size=10
+start.submitter=true
+embedded.mode=true
+enable.validation=true
+
+
+###########################################################################
+# GFac Server Configurations
+###########################################################################
+gfac.server.name={{ gfac_name }}
+gfac.server.host={{ gfac_host }}
+gfac.server.port={{ gfac_port }}
+gfac.thread.pool.size=50
+host.scheduler=org.apache.airavata.gfac.impl.DefaultHostScheduler
+
+
+
+###########################################################################
+# Airavata Workflow Interpreter Configurations
+###########################################################################
+workflowserver=org.apache.airavata.api.server.WorkflowServer
+enactment.thread.pool.size=10
+
+#to define custom workflow parser user following property
+#workflow.parser=org.apache.airavata.workflow.core.parser.AiravataWorkflowBuilder
+
+
+
+###########################################################################
+# Job Scheduler can send informative email messages to you about the status of your job.
+# Specify a string which consists of either the single character "n" (no mail), or one or more
+# of the characters "a" (send mail when job is aborted), "b" (send mail when job begins),
+# and "e" (send mail when job terminates). The default is "a" if not specified.
+###########################################################################
+
+job.notification.enable=true
+#Provide comma separated email ids as a string if more than one
+job.notification.emailids=
+job.notification.flags=abe
+
+###########################################################################
+# Credential Store module Configuration
+###########################################################################
+credential.store.keystore.url=/home/airavata/airavata_sym.jks
+credential.store.keystore.alias=airavata
+credential.store.keystore.password=airavata
+credential.store.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ credential_store }}
+credential.store.jdbc.user={{ db_user }}
+credential.store.jdbc.password={{ db_password }}
+credential.store.jdbc.driver=com.mysql.jdbc.Driver
+credential.store.server.host={{ cred_store_server_host }}
+credential.store.server.port=8960
+credentialstore=org.apache.airavata.credential.store.server.CredentialStoreServer
+
+# these properties used by credential store email notifications
+email.server=smtp.googlemail.com
+email.server.port=465
+email.user=airavata
+email.password=xxx
+email.ssl=true
+email.from=airavata@apache.org
+
+# SSH PKI key pair or ssh password can be used SSH based sshKeyAuthentication is used.
+# if user specify both password sshKeyAuthentication gets the higher preference
+
+################# ---------- For ssh key pair sshKeyAuthentication ------------------- ################
+#ssh.public.key=/path to public key for ssh
+#ssh.private.key=/path to private key file for ssh
+#ssh.keypass=passphrase for the private key
+#ssh.username=username for ssh connection
+## If you set "yes" for ssh.strict.hostKey.checking, then you must provide known hosts file path
+#ssh.strict.hostKey.checking=yes/no
+#ssh.known.hosts.file=/path to known hosts file
+### Incase of password sshKeyAuthentication.
+#ssh.password=Password for ssh connection
+
+################ ---------- BES Properties ------------------- ###############
+#bes.ca.cert.path=<location>/certificates/cacert.pem
+#bes.ca.key.path=<location>/certificates/cakey.pem
+#bes.ca.key.pass=passphrase
+
+###########################################################################
+# Monitoring module Configuration
+###########################################################################
+
+#This will be the primary monitoring tool which runs in airavata, in future there will be multiple monitoring
+#mechanisms and one would be able to start a monitor
+monitors=org.apache.airavata.gfac.monitor.impl.pull.qstat.QstatMonitor,org.apache.airavata.gfac.monitor.impl.LocalJobMonitor
+
+#These properties will used to enable email base monitoring
+email.based.monitor.host=imap.gmail.com
+email.based.monitor.address={{ monitor_email_address }}
+email.based.monitor.password={{ monitor_email_password }}
+email.based.monitor.folder.name=INBOX
+# either imaps or pop3
+email.based.monitor.store.protocol=imaps
+#These property will be used to query the email server periodically. value in milliseconds(ms).
+email.based.monitoring.period=10000
+
+###########################################################################
+# AMQP Notification Configuration
+###########################################################################
+#for simple scenarios we can use the guest user
+#rabbitmq.broker.url=amqp://localhost:5672
+#for production scenarios, give url as amqp://userName:password@hostName:portNumber/virtualHost, create user, virtualhost
+# and give permissions, refer: http://blog.dtzq.com/2012/06/rabbitmq-users-and-virtual-hosts.html
+rabbitmq.broker.url={{ rabbitmq_broker_url }}
+status.publisher=org.apache.airavata.messaging.core.impl.RabbitMQStatusPublisher
+task.launch.publisher=org.apache.airavata.messaging.core.impl.RabbitMQProcessLaunchPublisher
+rabbitmq.status.exchange.name=airavata_rabbitmq_exchange
+rabbitmq.task.launch.exchange.name=airavata_task_launch_rabbitmq_exchange
+durable.queue=false
+prefetch.count=200
+launch.queue.name=launch.queue
+cancel.queue.name=cancel.queue
+activity.publisher=org.apache.airavata.messaging.core.impl.RabbitMQStatusPublisher
+rabbitmq.exchange.name=airavata_rabbitmq_exchange
+
+###########################################################################
+# Zookeeper Server Configuration
+###########################################################################
+embedded.zk=false
+zookeeper.server.connection=localhost:2181
+zookeeper.timeout=30000
+
+########################################################################
+## API Security Configuration
+########################################################################
+api.secured=true
+security.manager.class=org.apache.airavata.api.server.security.DefaultAiravataSecurityManager
+### TLS related configuration ####
+TLS.enabled=true
+TLS.api.server.port=9930
+TLS.client.timeout=10000
+#### keystore configuration ####
+keystore.path={{ key_stores_location }}/{{ key_store }}
+keystore.password=airavata
+#### trust store configuration ####
+trust.store={{ key_stores_location }}/{{ cred_key_store }}
+trust.store.password=airavata
+#### remote authorization server url ####
+remote.oauth.authorization.server=https://idp.scigap.org:9443/services/
+#### xacml based authorization policy ####
+authorization.policy=airavata-default-xacml-policy
+#### authorization cache related configuration ####
+authz.cache.enabled=true
+authz.cache.manager.class=org.apache.airavata.api.server.security.authzcache.DefaultAuthzCacheManager
+in.memory.cache.size=1000
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/api-orch/templates/gfac-config.yaml.j2
----------------------------------------------------------------------
diff --git a/roles/api-orch/templates/gfac-config.yaml.j2 b/roles/api-orch/templates/gfac-config.yaml.j2
new file mode 100644
index 0000000..3df5832
--- /dev/null
+++ b/roles/api-orch/templates/gfac-config.yaml.j2
@@ -0,0 +1,111 @@
+##################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+################################################################
+
+jobSubmitters:
+ - submissionProtocol: SSH
+ taskClass: org.apache.airavata.gfac.impl.task.DefaultJobSubmissionTask
+# properties:
+# - userName: airavata
+# passPhrase: airavata
+# privateKey: /path/to/the/privatekey
+# publicKey: /path/to/the/publickey
+# hostName: remote.client.hostName
+
+ - submissionProtocol: SSH_FORK
+ taskClass: org.apache.airavata.gfac.impl.task.ForkJobSubmissionTask
+
+ - submissionProtocol: LOCAL
+ taskClass: org.apache.airavata.gfac.impl.task.DefaultJobSubmissionTask
+
+# Following job subbmitters are not yet implemented.
+
+ # - submissionProtocol: GSISSH
+ # taskClass: org.apache.airavata.task.adapters.GSISSHJobSubmissionTask
+commonTasks:
+ - type: SETUP
+ taskClass: org.apache.airavata.task.common.SetupTask
+
+ - type: CLEANUP
+ taskClass: org.apache.airavata.task.common.CleanupTask
+
+fileTransferTasks:
+# - transferProtocol: SCP
+# taskClass: org.apache.airavata.gfac.impl.task.DataStageTask
+
+# If your client doen't run the same instance where airavata server is running then you need to comment above
+# DataStageTask and uncomment SCPDataStageTask. To work with SCPDataStageTask, you either need to
+# provide ssh keys or password.
+
+ - transferProtocol: SCP
+ taskClass: org.apache.airavata.gfac.impl.task.SCPDataStageTask
+ properties:
+ - userName: root
+ passPhrase: ultrascan
+ privateKeyPath: /home/airavata/.ssh/id_rsa
+ publicKeyPath: /home/airavata/.ssh/id_rsa.pub
+ hostName: gw75.iu.xsede.org
+ inputPath: /var/www/portal/experimentData/
+# password: password
+
+# Following transfer tasks are not yet implemented.
+ #- transferProtocol: SFTP
+ # taskClass: org.apache.airavata.task.adapters.SFTPFileTransferTask
+
+ #- transferProtocol: GRIDFTP
+ # taskClass: org.apache.airavata.task.adapters.GRIDFTPFileTransferTask
+
+ #- transferProtocol: LOCAL
+ # taskClass: org.apache.airavata.task.adapters.LocalFileTransferTask
+
+resources:
+ - jobManagerType: PBS
+ commandOutputParser: org.apache.airavata.gfac.impl.job.PBSOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.PBSEmailParser
+ resourceEmailAddresses:
+ - pbsconsult@sdsc.edu # gordon
+ - adm@trident.bigred2.uits.iu.edu # Bigred2
+ - root <ad...@trident.bigred2.uits.iu.edu> # Bigred2
+ - root <ad...@scyld.localdomain> # alamo
+ - root <ad...@m2.karst.uits.iu.edu> #karst
+
+ - jobManagerType: SLURM
+ commandOutputParser: org.apache.airavata.gfac.impl.job.SlurmOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.SLURMEmailParser
+ resourceEmailAddresses:
+ - SDSC Admin <sl...@comet-fe3.sdsc.edu> # comet
+ - slurm@batch1.stampede.tacc.utexas.edu # stampede
+ - SDSC Admin <sl...@comet-fe4.sdsc.edu> # comet new
+ - Slurm <sl...@psc.edu> # bridges
+ - Slurm Daemon <sl...@odin.oscer.ou.edu> # OU Schooner
+
+ - jobManagerType: UGE
+ commandOutputParser: org.apache.airavata.gfac.impl.job.UGEOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.UGEEmailParser
+ resourceEmailAddresses:
+ - ls4.tacc.utexas.edu # contain Lonestar
+
+ - jobManagerType: LSF
+ commandOutputParser: org.apache.airavata.gfac.impl.job.LSFOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.LSFEmailParser
+ resourceEmailAddresses:
+ - iu.xsede.edu # test resource mail address
+
+ - jobManagerType: FORK
+ commandOutputParser: org.apache.airavata.gfac.impl.job.ForkOutputParser
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/api-orch/vars/main.yml
----------------------------------------------------------------------
diff --git a/roles/api-orch/vars/main.yml b/roles/api-orch/vars/main.yml
new file mode 100644
index 0000000..16b85b0
--- /dev/null
+++ b/roles/api-orch/vars/main.yml
@@ -0,0 +1,3 @@
+---
+# API Server and Orchestrator related variables
+api_orch_dir: "{{ deployment_dir }}/api-orchestrator"
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/common/files/airavata.jks
----------------------------------------------------------------------
diff --git a/roles/common/files/airavata.jks b/roles/common/files/airavata.jks
new file mode 100644
index 0000000..e0e46e2
Binary files /dev/null and b/roles/common/files/airavata.jks differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/common/files/client_truststore.jks
----------------------------------------------------------------------
diff --git a/roles/common/files/client_truststore.jks b/roles/common/files/client_truststore.jks
new file mode 100644
index 0000000..4d39906
Binary files /dev/null and b/roles/common/files/client_truststore.jks differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/common/handlers/main.yml
----------------------------------------------------------------------
diff --git a/roles/common/handlers/main.yml b/roles/common/handlers/main.yml
new file mode 100644
index 0000000..d5c99e94
--- /dev/null
+++ b/roles/common/handlers/main.yml
@@ -0,0 +1,45 @@
+---
+# Handler file
+# Can have multiple handlers
+
+# Zookeeper related handlers
+- name: start zookeeper
+ command: ./bin/zkServer.sh start chdir={{zookeeper_dir}}/ creates={{zookeeper_data_dir}}/zookeeper_server.pid
+ become: true
+ become_user: "{{ user }}"
+
+- name: stop zookeeper
+ command: ./bin/zkServer.sh stop chdir={{zookeeper_dir}}/ removes={{zookeeper_data_dir}}/zookeeper_server.pid
+ become: true
+ become_user: "{{ user }}"
+
+- name: restart zookeeper
+ command: ./bin/zkServer.sh restart chdir={{zookeeper_dir}}/ removes={{zookeeper_data_dir}}/zookeeper_server.pid
+ become: true
+ become_user: "{{ user }}"
+
+# Rabbitmq related handlers
+- name: start rabbitmq
+ service: name=rabbitmq-server state=started
+
+- name: stop rabbitmq
+ service: name=rabbitmq-server state=stopped
+
+- name: restart rabbitmq
+ service: name=rabbitmq-server state=restarted
+
+# Gfac related handlers
+- name: start gfac
+ command: ./bin/airavata-server-start.sh gfac -d chdir="{{ gfac_dir }}/{{ airavata_dist }}/" creates="{{ gfac_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+- name: stop gfac
+ command: ./bin/airavata-server-stop.sh -f chdir="{{ gfac_dir }}/{{ airavata_dist }}/" removes="{{ gfac_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+# Gfac related handlers
+- name: start api-orch
+ command: ./bin/airavata-server-start.sh api-orch -d chdir="{{ api_orch_dir }}/{{ airavata_dist }}/" creates="{{ api_orch_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+- name: stop api-orch
+ command: ./bin/airavata-server-stop.sh -f chdir="{{ api_orch_dir }}/{{ airavata_dist }}/" removes="{{ api_orch_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/common/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml
new file mode 100644
index 0000000..18d628d
--- /dev/null
+++ b/roles/common/tasks/main.yml
@@ -0,0 +1,40 @@
+---
+# Setup airavata source
+- name: Create deployment directory {{ deployment_dir }}
+ file: path={{ deployment_dir }} state=directory mode=0755
+ become: true
+ become_user: "{{ user }}"
+ tags: deploy
+
+- name: Create source directory
+ file: path={{airavata_source_dir}} state=directory mode=0755 owner={{ user }} group={{ group }}
+ tags: deploy
+
+- name: git checkout from airavata github
+ git: repo=https://git-wip-us.apache.org/repos/asf/airavata.git dest="{{ airavata_source_dir }}" version=master
+ register: checkout
+ become: true
+ become_user: "{{ user }}"
+ tags: deploy, update_gfac, update_api_orch, update
+
+- name: Run maven build
+ command: mvn clean install -Dmaven.test.skip=true chdir="{{ airavata_source_dir }}/"
+ when: (checkout|success) or (checkout|skipped)
+ register: build
+ become: true
+ become_user: "{{ user }}"
+ tags: deploy, update_gfac, update_api_orch, update
+
+################################################################################
+# copy key store and trust store files
+- name: Create KeyStores directory
+ file: path="{{ key_stores_location }}" state=directory owner="{{ user }}" group="{{ group }}"
+ tags: deploy
+
+- name: Transfer airavata.jks KeyStore file
+ copy: src="{{ key_store }}" dest="{{ key_stores_location }}/{{ key_store }}" owner="{{ user }}" group="{{ group }}"
+ tags: deploy
+
+- name: Transfer client trust store KeyStore file
+ copy: src="{{ cred_key_store }}" dest="{{ key_stores_location }}/{{ cred_key_store }}" owner="{{ user }}" group="{{ group }}"
+ tags: deploy
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/common/vars/main.yml
----------------------------------------------------------------------
diff --git a/roles/common/vars/main.yml b/roles/common/vars/main.yml
new file mode 100644
index 0000000..0071b42
--- /dev/null
+++ b/roles/common/vars/main.yml
@@ -0,0 +1,5 @@
+---
+# Common variables
+airavata_source_dir: "{{ user_home }}/source"
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/gfac/files/mysql-connector-java-5.1.37-bin.jar
----------------------------------------------------------------------
diff --git a/roles/gfac/files/mysql-connector-java-5.1.37-bin.jar b/roles/gfac/files/mysql-connector-java-5.1.37-bin.jar
new file mode 100644
index 0000000..465af67
Binary files /dev/null and b/roles/gfac/files/mysql-connector-java-5.1.37-bin.jar differ
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/gfac/handlers/main.yml
----------------------------------------------------------------------
diff --git a/roles/gfac/handlers/main.yml b/roles/gfac/handlers/main.yml
new file mode 100644
index 0000000..b3d85a9
--- /dev/null
+++ b/roles/gfac/handlers/main.yml
@@ -0,0 +1,8 @@
+---
+
+# Gfac related handlers
+- name: start gfac
+ command: ./bin/airavata-server-start.sh gfac -d chdir="{{ gfac_dir }}/{{ airavata_dist }}/" creates="{{ gfac_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+- name: stop gfac
+ command: ./bin/airavata-server-stop.sh -f chdir="{{ gfac_dir }}/{{ airavata_dist }}/" removes="{{ gfac_dir }}/{{ airavata_dist }}/bin/server_start_*"
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/gfac/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/gfac/tasks/main.yml b/roles/gfac/tasks/main.yml
new file mode 100644
index 0000000..bae85cf
--- /dev/null
+++ b/roles/gfac/tasks/main.yml
@@ -0,0 +1,53 @@
+---
+
+################################################################################
+# gfac deployments
+- name: Create Gfac deployment directory
+ file: path="{{ gfac_dir }}" state=directory owner="{{ user }}" group="{{ group }}"
+ when: build|success
+ tags: deploy, update_gfac, update
+
+- name: Check previous deployments
+ stat: path="{{ gfac_dir }}/{{ airavata_dist }}" get_md5=no get_checksum=no
+ register: p
+ tags: deploy, update_gfac, update
+
+- block:
+ - name: stop gfac
+ command: ./bin/airavata-server-stop.sh -f chdir="{{ gfac_dir }}/{{ airavata_dist }}/" removes="{{ gfac_dir }}/{{ airavata_dist }}/bin/server_start_*"
+
+ - name: Delete previous deployments
+ file: path="{{ gfac_dir }}/{{ airavata_dist }}" state=absent
+
+ when: p.stat.exists == True
+ tags: deploy, update_gfac, update
+
+# - block:
+# - name: Remove pervious backup directory
+# file: path="{{ gfac_dir }}/backup" state=absent
+# notify:
+# - stop gfac
+#
+# - name: Backup previous deployment directory
+# copy: src="{{ gfac_dir }}/{{ airavata_dist }}" dest="{{ gfac_dir }}/backup" copy=no
+#
+# when: p.stat.exists == True
+# tags: deploy, update_gfac, update
+
+- name: Copy distribution to gfac deployment directory
+ unarchive: src="{{ airavata_source_dir }}/distribution/target/{{ airavata_dist_name }}" dest="{{ gfac_dir }}/" copy=no
+ become: yes
+ become_user: "{{ user }}"
+ tags: deploy, update_gfac, update
+
+- name: Copy Airavata server properties file
+ template: src=airavata-server.properties.j2 dest="{{ gfac_dir }}/{{ airavata_dist }}/bin/airavata-server.properties" owner="{{ user }}" group="{{ group }}" mode="u=rw,g=r,o=r"
+ tags: deploy, update_gfac, update
+
+- name: Copy Gfac configuration file
+ template: src=gfac-config.yaml.j2 dest="{{ gfac_dir }}/{{ airavata_dist }}/bin/gfac-config.yaml" owner="{{ user }}" group="{{ group }}" mode="u=rw,g=r,o=r"
+ tags: deploy, update_gfac, update
+
+- name: Copy Mysql jar to lib
+ copy: src="{{ mysql_connector_jar }}" dest="{{ gfac_dir }}/{{ airavata_dist }}/lib/{{ mysql_connector_jar }}" owner="{{ user }}" group="{{ group }}"
+ tags: deploy, update_gfac, update
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/gfac/templates/airavata-server.properties.j2
----------------------------------------------------------------------
diff --git a/roles/gfac/templates/airavata-server.properties.j2 b/roles/gfac/templates/airavata-server.properties.j2
new file mode 100644
index 0000000..449a7fd
--- /dev/null
+++ b/roles/gfac/templates/airavata-server.properties.j2
@@ -0,0 +1,278 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+###########################################################################
+#
+# This properties file provides configuration for all Airavata Services:
+# API Server, Registry, Workflow Interpreter, GFac, Orchestrator
+#
+###########################################################################
+
+###########################################################################
+# API Server Registry Configuration
+###########################################################################
+
+#for derby [AiravataJPARegistry]
+#registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#registry.jdbc.url=jdbc:derby://localhost:1527/experiment_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+registry.jdbc.driver=com.mysql.jdbc.Driver
+registry.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ exp_catalog }}
+registry.jdbc.user={{ db_user }}
+registry.jdbc.password={{ db_password }}
+#FIXME: Probably the following property should be removed.
+start.derby.server.mode=false
+validationQuery=SELECT 1 from CONFIGURATION
+cache.enable=false
+jpa.cache.size=-1
+#jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true
+
+# Properties for default user mode
+default.registry.user=admin
+default.registry.password=admin
+default.registry.password.hash.method=SHA
+default.registry.gateway=default
+
+###########################################################################
+# Application Catalog DB Configuration
+###########################################################################
+#for derby [AiravataJPARegistry]
+#appcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#appcatalog.jdbc.url=jdbc:derby://localhost:1527/app_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+appcatalog.jdbc.driver=com.mysql.jdbc.Driver
+appcatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ app_catalog }}
+appcatalog.jdbc.user={{ db_user }}
+appcatalog.jdbc.password={{ db_password }}
+appcatalog.validationQuery=SELECT 1 from CONFIGURATION
+
+##########################################################################
+# Replica Catalog DB Configuration
+###########################################################################
+#for derby [AiravataJPARegistry]
+#replicacatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#replicacatalog.jdbc.url=jdbc:derby://localhost:1527/replica_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+replicacatalog.jdbc.driver=com.mysql.jdbc.Driver
+replicacatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ replica_catalog }}
+replicacatalog.jdbc.user={{ db_user }}
+replicacatalog.jdbc.password={{ db_password }}
+replicacatalog.validationQuery=SELECT 1 from CONFIGURATION
+
+###########################################################################
+# Workflow Catalog DB Configuration
+###########################################################################
+#for derby [AiravataJPARegistry]
+#workflowcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+#workflowcatalog.jdbc.url=jdbc:derby://localhost:1527/workflow_catalog;create=true;user=airavata;password=airavata
+# MySql database configuration
+workflowcatalog.jdbc.driver=com.mysql.jdbc.Driver
+workflowcatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ replica_catalog }}
+workflowcatalog.jdbc.user={{ db_user }}
+workflowcatalog.jdbc.password={{ db_password }}
+workflowcatalog.validationQuery=SELECT 1 from CONFIGURATION
+
+###########################################################################
+# User Profile MongoDB Configuration
+###########################################################################
+userprofile.mongodb.host=localhost
+userprofile.mongodb.port=27017
+
+
+###########################################################################
+# Server module Configuration
+###########################################################################
+#credential store server should be started before API server
+#This is obsolete property with new script files.
+#servers=credentialstore,apiserver,orchestrator
+
+
+###########################################################################
+# API Server Configurations
+###########################################################################
+apiserver.name={{ api_server_name }}
+apiserver.host={{ api_server_host }}
+apiserver.port={{ api_server_port }}
+apiserver.min.threads=50
+
+###########################################################################
+# API Server SSL Configurations
+###########################################################################
+apiserver.tls.enabled=true
+apiserver.keystore={{ key_stores_location }}/{{ key_store }}
+apiserver.keystore.password=airavata
+
+###########################################################################
+# Orchestrator Server Configurations
+###########################################################################
+orchestrator.server.name={{ orchestrator_name }}
+orchestrator.server.host={{ orchestrator_host }}
+orchestrator.server.port={{ orchestrator_port }}
+orchestrator.server.min.threads=50
+job.validators=org.apache.airavata.orchestrator.core.validator.impl.BatchQueueValidator,org.apache.airavata.orchestrator.core.validator.impl.ExperimentStatusValidator
+submitter.interval=10000
+threadpool.size=10
+start.submitter=true
+embedded.mode=true
+enable.validation=true
+
+
+###########################################################################
+# GFac Server Configurations
+###########################################################################
+gfac.server.name={{ gfac_name }}
+gfac.server.host={{ gfac_host }}
+gfac.server.port={{ gfac_port }}
+gfac.thread.pool.size=50
+host.scheduler=org.apache.airavata.gfac.impl.DefaultHostScheduler
+
+
+
+###########################################################################
+# Airavata Workflow Interpreter Configurations
+###########################################################################
+workflowserver=org.apache.airavata.api.server.WorkflowServer
+enactment.thread.pool.size=10
+
+#to define custom workflow parser user following property
+#workflow.parser=org.apache.airavata.workflow.core.parser.AiravataWorkflowBuilder
+
+
+
+###########################################################################
+# Job Scheduler can send informative email messages to you about the status of your job.
+# Specify a string which consists of either the single character "n" (no mail), or one or more
+# of the characters "a" (send mail when job is aborted), "b" (send mail when job begins),
+# and "e" (send mail when job terminates). The default is "a" if not specified.
+###########################################################################
+
+job.notification.enable=true
+#Provide comma separated email ids as a string if more than one
+job.notification.emailids=
+job.notification.flags=abe
+
+###########################################################################
+# Credential Store module Configuration
+###########################################################################
+credential.store.keystore.url=/home/airavata/airavata_sym.jks
+credential.store.keystore.alias=airavata
+credential.store.keystore.password=airavata
+credential.store.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ credential_store }}
+credential.store.jdbc.user={{ db_user }}
+credential.store.jdbc.password={{ db_password }}
+credential.store.jdbc.driver=com.mysql.jdbc.Driver
+credential.store.server.host={{ cred_store_server_host }}
+credential.store.server.port=8960
+credentialstore=org.apache.airavata.credential.store.server.CredentialStoreServer
+
+# these properties used by credential store email notifications
+email.server=smtp.googlemail.com
+email.server.port=465
+email.user=airavata
+email.password=xxx
+email.ssl=true
+email.from=airavata@apache.org
+
+# SSH PKI key pair or ssh password can be used SSH based sshKeyAuthentication is used.
+# if user specify both password sshKeyAuthentication gets the higher preference
+
+################# ---------- For ssh key pair sshKeyAuthentication ------------------- ################
+#ssh.public.key=/path to public key for ssh
+#ssh.private.key=/path to private key file for ssh
+#ssh.keypass=passphrase for the private key
+#ssh.username=username for ssh connection
+## If you set "yes" for ssh.strict.hostKey.checking, then you must provide known hosts file path
+#ssh.strict.hostKey.checking=yes/no
+#ssh.known.hosts.file=/path to known hosts file
+### Incase of password sshKeyAuthentication.
+#ssh.password=Password for ssh connection
+
+################ ---------- BES Properties ------------------- ###############
+#bes.ca.cert.path=<location>/certificates/cacert.pem
+#bes.ca.key.path=<location>/certificates/cakey.pem
+#bes.ca.key.pass=passphrase
+
+###########################################################################
+# Monitoring module Configuration
+###########################################################################
+
+#This will be the primary monitoring tool which runs in airavata, in future there will be multiple monitoring
+#mechanisms and one would be able to start a monitor
+monitors=org.apache.airavata.gfac.monitor.impl.pull.qstat.QstatMonitor,org.apache.airavata.gfac.monitor.impl.LocalJobMonitor
+
+#These properties will used to enable email base monitoring
+email.based.monitor.host=imap.gmail.com
+email.based.monitor.address={{ monitor_email_address }}
+email.based.monitor.password={{ monitor_email_password }}
+email.based.monitor.folder.name=INBOX
+# either imaps or pop3
+email.based.monitor.store.protocol=imaps
+#These property will be used to query the email server periodically. value in milliseconds(ms).
+email.based.monitoring.period=10000
+
+###########################################################################
+# AMQP Notification Configuration
+###########################################################################
+#for simple scenarios we can use the guest user
+#rabbitmq.broker.url=amqp://localhost:5672
+#for production scenarios, give url as amqp://userName:password@hostName:portNumber/virtualHost, create user, virtualhost
+# and give permissions, refer: http://blog.dtzq.com/2012/06/rabbitmq-users-and-virtual-hosts.html
+rabbitmq.broker.url={{ rabbitmq_broker_url }}
+status.publisher=org.apache.airavata.messaging.core.impl.RabbitMQStatusPublisher
+task.launch.publisher=org.apache.airavata.messaging.core.impl.RabbitMQProcessLaunchPublisher
+rabbitmq.status.exchange.name=airavata_rabbitmq_exchange
+rabbitmq.task.launch.exchange.name=airavata_task_launch_rabbitmq_exchange
+durable.queue=false
+prefetch.count=200
+launch.queue.name=launch.queue
+cancel.queue.name=cancel.queue
+activity.publisher=org.apache.airavata.messaging.core.impl.RabbitMQStatusPublisher
+rabbitmq.exchange.name=airavata_rabbitmq_exchange
+
+###########################################################################
+# Zookeeper Server Configuration
+###########################################################################
+embedded.zk=false
+zookeeper.server.connection=localhost:2181
+zookeeper.timeout=30000
+
+########################################################################
+## API Security Configuration
+########################################################################
+api.secured=true
+security.manager.class=org.apache.airavata.api.server.security.DefaultAiravataSecurityManager
+### TLS related configuration ####
+TLS.enabled=true
+TLS.api.server.port=9930
+TLS.client.timeout=10000
+#### keystore configuration ####
+keystore.path={{ key_stores_location }}/{{ key_store }}
+keystore.password=airavata
+#### trust store configuration ####
+trust.store={{ key_stores_location }}/{{ cred_key_store }}
+trust.store.password=airavata
+#### remote authorization server url ####
+remote.oauth.authorization.server=https://idp.scigap.org:9443/services/
+#### xacml based authorization policy ####
+authorization.policy=airavata-default-xacml-policy
+#### authorization cache related configuration ####
+authz.cache.enabled=true
+authz.cache.manager.class=org.apache.airavata.api.server.security.authzcache.DefaultAuthzCacheManager
+in.memory.cache.size=1000
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/gfac/templates/gfac-config.yaml.j2
----------------------------------------------------------------------
diff --git a/roles/gfac/templates/gfac-config.yaml.j2 b/roles/gfac/templates/gfac-config.yaml.j2
new file mode 100644
index 0000000..3df5832
--- /dev/null
+++ b/roles/gfac/templates/gfac-config.yaml.j2
@@ -0,0 +1,111 @@
+##################################################################
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+################################################################
+
+jobSubmitters:
+ - submissionProtocol: SSH
+ taskClass: org.apache.airavata.gfac.impl.task.DefaultJobSubmissionTask
+# properties:
+# - userName: airavata
+# passPhrase: airavata
+# privateKey: /path/to/the/privatekey
+# publicKey: /path/to/the/publickey
+# hostName: remote.client.hostName
+
+ - submissionProtocol: SSH_FORK
+ taskClass: org.apache.airavata.gfac.impl.task.ForkJobSubmissionTask
+
+ - submissionProtocol: LOCAL
+ taskClass: org.apache.airavata.gfac.impl.task.DefaultJobSubmissionTask
+
+# Following job subbmitters are not yet implemented.
+
+ # - submissionProtocol: GSISSH
+ # taskClass: org.apache.airavata.task.adapters.GSISSHJobSubmissionTask
+commonTasks:
+ - type: SETUP
+ taskClass: org.apache.airavata.task.common.SetupTask
+
+ - type: CLEANUP
+ taskClass: org.apache.airavata.task.common.CleanupTask
+
+fileTransferTasks:
+# - transferProtocol: SCP
+# taskClass: org.apache.airavata.gfac.impl.task.DataStageTask
+
+# If your client doen't run the same instance where airavata server is running then you need to comment above
+# DataStageTask and uncomment SCPDataStageTask. To work with SCPDataStageTask, you either need to
+# provide ssh keys or password.
+
+ - transferProtocol: SCP
+ taskClass: org.apache.airavata.gfac.impl.task.SCPDataStageTask
+ properties:
+ - userName: root
+ passPhrase: ultrascan
+ privateKeyPath: /home/airavata/.ssh/id_rsa
+ publicKeyPath: /home/airavata/.ssh/id_rsa.pub
+ hostName: gw75.iu.xsede.org
+ inputPath: /var/www/portal/experimentData/
+# password: password
+
+# Following transfer tasks are not yet implemented.
+ #- transferProtocol: SFTP
+ # taskClass: org.apache.airavata.task.adapters.SFTPFileTransferTask
+
+ #- transferProtocol: GRIDFTP
+ # taskClass: org.apache.airavata.task.adapters.GRIDFTPFileTransferTask
+
+ #- transferProtocol: LOCAL
+ # taskClass: org.apache.airavata.task.adapters.LocalFileTransferTask
+
+resources:
+ - jobManagerType: PBS
+ commandOutputParser: org.apache.airavata.gfac.impl.job.PBSOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.PBSEmailParser
+ resourceEmailAddresses:
+ - pbsconsult@sdsc.edu # gordon
+ - adm@trident.bigred2.uits.iu.edu # Bigred2
+ - root <ad...@trident.bigred2.uits.iu.edu> # Bigred2
+ - root <ad...@scyld.localdomain> # alamo
+ - root <ad...@m2.karst.uits.iu.edu> #karst
+
+ - jobManagerType: SLURM
+ commandOutputParser: org.apache.airavata.gfac.impl.job.SlurmOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.SLURMEmailParser
+ resourceEmailAddresses:
+ - SDSC Admin <sl...@comet-fe3.sdsc.edu> # comet
+ - slurm@batch1.stampede.tacc.utexas.edu # stampede
+ - SDSC Admin <sl...@comet-fe4.sdsc.edu> # comet new
+ - Slurm <sl...@psc.edu> # bridges
+ - Slurm Daemon <sl...@odin.oscer.ou.edu> # OU Schooner
+
+ - jobManagerType: UGE
+ commandOutputParser: org.apache.airavata.gfac.impl.job.UGEOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.UGEEmailParser
+ resourceEmailAddresses:
+ - ls4.tacc.utexas.edu # contain Lonestar
+
+ - jobManagerType: LSF
+ commandOutputParser: org.apache.airavata.gfac.impl.job.LSFOutputParser
+ emailParser: org.apache.airavata.gfac.monitor.email.parser.LSFEmailParser
+ resourceEmailAddresses:
+ - iu.xsede.edu # test resource mail address
+
+ - jobManagerType: FORK
+ commandOutputParser: org.apache.airavata.gfac.impl.job.ForkOutputParser
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/gfac/vars/main.yml
----------------------------------------------------------------------
diff --git a/roles/gfac/vars/main.yml b/roles/gfac/vars/main.yml
new file mode 100644
index 0000000..f5451c3
--- /dev/null
+++ b/roles/gfac/vars/main.yml
@@ -0,0 +1,3 @@
+---
+# Gfac related variables
+gfac_dir: "{{ deployment_dir }}/gfac-instance"
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/rabbitmq/handlers/main.yml
----------------------------------------------------------------------
diff --git a/roles/rabbitmq/handlers/main.yml b/roles/rabbitmq/handlers/main.yml
new file mode 100644
index 0000000..4515589
--- /dev/null
+++ b/roles/rabbitmq/handlers/main.yml
@@ -0,0 +1,10 @@
+---
+# Rabbitmq related handlers
+- name: start rabbitmq
+ service: name=rabbitmq-server state=started
+
+- name: stop rabbitmq
+ service: name=rabbitmq-server state=stopped
+
+- name: restart rabbitmq
+ service: name=rabbitmq-server state=restarted
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/rabbitmq/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/rabbitmq/tasks/main.yml b/roles/rabbitmq/tasks/main.yml
new file mode 100644
index 0000000..1d0647b
--- /dev/null
+++ b/roles/rabbitmq/tasks/main.yml
@@ -0,0 +1,44 @@
+---
+
+
+################################################################################
+# Setup and run rabbitmq
+- name: Install erlang latest version
+ yum: name=https://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm state=present
+ tags: rabbitmq, dependency
+
+
+- name: Install Rabbitmq rpm
+ yum: name=https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.3/rabbitmq-server-3.6.3-1.noarch.rpm state=present
+ tags: rabbimq, dependency
+
+ # add hostname to /etc/hosts file
+- name: Edit /etc/hosts file
+ lineinfile: dest=/etc/hosts line="{{ host_address }} {{host_name}}"
+ notify:
+ - restart rabbitmq
+ tags: rabbitmq, dependency
+
+- name: Start Rabbitmq server
+ service: name=rabbitmq-server state=started
+ tags: rabbitmq, dependency
+
+- name: Enable rabbitmq management plugin
+ rabbitmq_plugin: names=rabbitmq_management state=enabled
+ tags: rabbitmq, dependency
+
+- name: Create rabbitmq vhost {{ rabbitmq_vhost }}
+ rabbitmq_vhost: name="{{ rabbitmq_vhost }}" state=present
+ tags: rabbitmq, dependency
+
+- name: Add user {{ rabbitmq_user }} to vhost {{ rabbitmq_vhost }} and give permission
+ rabbitmq_user: user="{{ rabbitmq_user }}"
+ password="{{ rabbitmq_password }}"
+ vhost="{{ rabbitmq_vhost }}"
+ configure_priv=.*
+ read_priv=.*
+ write_priv=.*
+ state=present
+ tags: rabbitmq, dependency
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/setup/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/setup/tasks/main.yml b/roles/setup/tasks/main.yml
new file mode 100644
index 0000000..a20b018
--- /dev/null
+++ b/roles/setup/tasks/main.yml
@@ -0,0 +1,44 @@
+---
+#Tasks file can include smaller files if wanted
+#All commons tasks goes here
+- name: Create a new user group "{{ group }}"
+ group: name={{ group }}
+ tags: user
+
+- name: Create a new user "{{ user }}"
+ user: name={{ user }} group={{ group }}
+ tags: user
+
+################################################################################
+- name: Install git latest version
+ yum: name=git state=latest update_cache=yes
+ tags: env
+
+- name: Install maven latest version
+ yum: name=maven state=latest update_cache=yes
+ tags: env
+
+################################################################################
+# Install Orcal Java
+- name: download oracle java 8 rpm
+ get_url: url="{{ java_rpm_url }}" dest="{{ java_dir_source }}" headers='Cookie:oraclelicense=accept-securebackup-cookie'
+ tags: env
+
+- name: Install oracle java 8
+ yum: name="{{ java_dir_source }}/{{ java_rpm_filename }}" state=present
+ tags: env
+
+- name: set Java version as default
+ alternatives:
+ name="{{ item.exe }}"
+ link="/usr/bin/{{ item.exe }}"
+ path="{{ item.path }}/{{ item.exe }}"
+ with_items:
+ - { path: "{{ java_home }}/jre/bin", exe: 'java' }
+ - { path: "{{ java_home }}/jre/bin", exe: 'keytool' }
+ - { path: "{{ java_home }}/bin", exe: 'javac' }
+ - { path: "{{ java_home }}/bin", exe: 'javadoc' }
+ tags: env
+
+# End
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/setup/tasks/redhat.yml
----------------------------------------------------------------------
diff --git a/roles/setup/tasks/redhat.yml b/roles/setup/tasks/redhat.yml
new file mode 100644
index 0000000..a0e56c7
--- /dev/null
+++ b/roles/setup/tasks/redhat.yml
@@ -0,0 +1,12 @@
+---
+- name: Install git latest version
+ yum: name=git state=latest update_cache=yes
+# become: true
+# become_user: airavata
+ tags: env_setup
+
+- name: Install maven latest version
+ yum: name=maven state=latest update_cache=yes
+ tags: env_setup
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/setup/vars/main.yml
----------------------------------------------------------------------
diff --git a/roles/setup/vars/main.yml b/roles/setup/vars/main.yml
new file mode 100644
index 0000000..a995684
--- /dev/null
+++ b/roles/setup/vars/main.yml
@@ -0,0 +1,15 @@
+---
+#Variables associated with this role
+# Oracle Java 8
+java_dir_source: "/usr/local/src"
+
+java_version: 8
+java_version_update: 91
+java_version_build: '14'
+java_version_string: "1.{{ java_version }}.0_{{ java_version_update }}"
+java_home: "/usr/java/jdk1.{{ java_version }}.0_{{ java_version_update }}"
+
+java_rpm_filename: "jdk-{{ java_version }}u{{ java_version_update }}-linux-x64.rpm"
+java_rpm_url: "http://download.oracle.com/otn-pub/java/jdk/{{ java_version }}u{{ java_version_update }}-b{{ java_version_build }}/{{ java_rpm_filename }}"
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/zookeeper/handlers/main.yml
----------------------------------------------------------------------
diff --git a/roles/zookeeper/handlers/main.yml b/roles/zookeeper/handlers/main.yml
new file mode 100644
index 0000000..c6d7c34
--- /dev/null
+++ b/roles/zookeeper/handlers/main.yml
@@ -0,0 +1,19 @@
+---
+
+# Zookeeper related handlers
+- name: start zookeeper
+ command: ./bin/zkServer.sh start chdir={{zookeeper_dir}}/ creates={{zookeeper_data_dir}}/zookeeper_server.pid
+ become: true
+ become_user: "{{ user }}"
+
+- name: stop zookeeper
+ command: ./bin/zkServer.sh stop chdir={{zookeeper_dir}}/ removes={{zookeeper_data_dir}}/zookeeper_server.pid
+ become: true
+ become_user: "{{ user }}"
+
+- name: restart zookeeper
+ command: ./bin/zkServer.sh restart chdir={{zookeeper_dir}}/ removes={{zookeeper_data_dir}}/zookeeper_server.pid
+ become: true
+ become_user: "{{ user }}"
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/zookeeper/tasks/main.yml
----------------------------------------------------------------------
diff --git a/roles/zookeeper/tasks/main.yml b/roles/zookeeper/tasks/main.yml
new file mode 100644
index 0000000..c1fd86b
--- /dev/null
+++ b/roles/zookeeper/tasks/main.yml
@@ -0,0 +1,15 @@
+---
+################################################################################
+# Setup and run Zookeeper
+- name: Download and unarchive zookeeper
+ unarchive: src="{{ zookeeper_url }}" dest="{{ user_home }}" copy=no owner="{{ user }}" group="{{ group }}"
+ tags: zookeeper, dependency
+
+- name: Copy zoo.cfg file
+ template: src=zoo.cfg.j2 dest="{{ zookeeper_dir }}/conf/zoo.cfg" owner="{{ user }}" group="{{ group }}" mode="u=rw,g=r,o=r"
+ notify:
+ - start zookeeper
+ - restart zookeeper
+ tags: zookeeper, dependency
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/zookeeper/templates/zoo.cfg.j2
----------------------------------------------------------------------
diff --git a/roles/zookeeper/templates/zoo.cfg.j2 b/roles/zookeeper/templates/zoo.cfg.j2
new file mode 100644
index 0000000..8426b98
--- /dev/null
+++ b/roles/zookeeper/templates/zoo.cfg.j2
@@ -0,0 +1,28 @@
+# The number of milliseconds of each tick
+tickTime={{tick_time}}
+# The number of ticks that the initial
+# synchronization phase can take
+initLimit={{init_limit}}
+# The number of ticks that can pass between
+# sending a request and getting an acknowledgement
+syncLimit={{sync_limit}}
+# the directory where the snapshot is stored.
+# do not use /tmp for storage, /tmp here is just
+# example sakes.
+dataDir={{zookeeper_data_dir}}
+# the port at which the clients will connect
+clientPort={{ client_port }}
+# the maximum number of client connections.
+# increase this if you need to handle more clients
+#maxClientCnxns=60
+#
+# Be sure to read the maintenance section of the
+# administrator guide before turning on autopurge.
+#
+# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
+#
+# The number of snapshots to retain in dataDir
+#autopurge.snapRetainCount=3
+# Purge task interval in hours
+# Set to "0" to disable auto purge feature
+#autopurge.purgeInterval=1
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/roles/zookeeper/vars/main.yml
----------------------------------------------------------------------
diff --git a/roles/zookeeper/vars/main.yml b/roles/zookeeper/vars/main.yml
new file mode 100644
index 0000000..dd40e56
--- /dev/null
+++ b/roles/zookeeper/vars/main.yml
@@ -0,0 +1,17 @@
+---
+#Variables associated with this role
+# zookeeper related variable
+zookeeper_version: 3.4.8
+zookeeper_url: http://www.us.apache.org/dist/zookeeper/zookeeper-{{zookeeper_version}}/zookeeper-{{zookeeper_version}}.tar.gz
+
+apt_cache_timeout: 3600
+client_port: 2183
+init_limit: 5
+sync_limit: 2
+tick_time: 2000
+data_dir: /var/lib/zookeeper
+log_dir: /var/log/zookeeper
+zookeeper_dir: "{{ user_home }}/zookeeper-{{zookeeper_version}}"
+zookeeper_data_dir: "{{ zookeeper_dir }}/data"
+
+...
http://git-wip-us.apache.org/repos/asf/airavata/blob/56384a1a/site.yml
----------------------------------------------------------------------
diff --git a/site.yml b/site.yml
new file mode 100644
index 0000000..cf71290
--- /dev/null
+++ b/site.yml
@@ -0,0 +1,25 @@
+---
+#Master playbook
+- hosts: zookeeper
+ roles:
+ - setup
+ - zookeeper
+
+- hosts: rabbitmq
+ roles:
+ - setup
+ - rabbitmq
+
+- hosts: gfac
+ roles:
+ - setup
+ - common
+ - gfac
+
+- hosts: api-orch
+ roles:
+ - setup
+ - common
+ - api-orch
+
+...