You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2015/03/19 16:03:28 UTC
[62/62] [abbrv] airavata git commit: merging with master
merging with master
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/48be39fe
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/48be39fe
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/48be39fe
Branch: refs/heads/queue-gfac-rabbitmq
Commit: 48be39fea6f1df43d0097364a937428198fcc9af
Parents: 93ed077 73f371d
Author: Lahiru Gunathilake <gl...@gmail.com>
Authored: Thu Mar 19 11:02:15 2015 -0400
Committer: Lahiru Gunathilake <gl...@gmail.com>
Committed: Thu Mar 19 11:02:15 2015 -0400
----------------------------------------------------------------------
.../airavata/api/server/AiravataAPIServer.java | 38 +-
.../server/handler/AiravataServerHandler.java | 412 +-
.../api/server/util/DataModelUtils.java | 8 +-
.../java/org/apache/airavata/api/Airavata.java | 28098 +++++++++++++----
.../airavata/api/airavataAPIConstants.java | 2 +-
.../main/resources/lib/airavata/Airavata.cpp | 8232 +++--
.../src/main/resources/lib/airavata/Airavata.h | 2388 +-
.../lib/airavata/Airavata_server.skeleton.cpp | 95 +-
.../lib/airavata/airavataAPI_constants.cpp | 2 +-
.../lib/airavata/computeResourceModel_types.cpp | 12 +-
.../lib/airavata/computeResourceModel_types.h | 5 +-
.../lib/airavata/experimentModel_types.cpp | 62 +-
.../lib/airavata/experimentModel_types.h | 61 +-
.../gatewayResourceProfileModel_constants.cpp | 2 -
.../gatewayResourceProfileModel_constants.h | 1 -
.../gatewayResourceProfileModel_types.cpp | 72 +-
.../gatewayResourceProfileModel_types.h | 45 +-
.../lib/airavata/workspaceModel_types.cpp | 51 +-
.../lib/airavata/workspaceModel_types.h | 45 +-
.../resources/lib/Airavata/API/Airavata.php | 7240 +++--
.../main/resources/lib/Airavata/API/Types.php | 2 +-
.../Model/AppCatalog/ComputeResource/Types.php | 10 +-
.../Model/AppCatalog/GatewayProfile/Types.php | 92 +-
.../Model/Workspace/Experiment/Types.php | 60 +
.../lib/Airavata/Model/Workspace/Types.php | 58 +-
.../client/samples/CreateLaunchExperiment.java | 822 +-
.../samples/CreateLaunchExperimentUS3.java | 20 +-
.../client/samples/RegisterSampleData.java | 37 +-
.../samples/TestCreateLaunchExperiment.java | 10 +-
.../tools/RegisterOGCEUS3Application.java | 10 +-
.../tools/RegisterSampleApplications.java | 335 +-
.../client/tools/RegisterUS3Application.java | 14 +-
.../computeresource/AuthenticationMode.java | 70 +
.../computeresource/ResourceJobManagerType.java | 42 +-
.../computeresource/UnicoreJobSubmission.java | 2 +
.../ComputeResourcePreference.java | 168 +-
.../gatewayprofile/GatewayResourceProfile.java | 226 +-
.../airavata/model/workspace/Gateway.java | 334 +-
.../ComputationalResourceScheduling.java | 109 +-
.../experiment/UserConfigurationData.java | 205 +-
.../airavataAPI.thrift | 169 +-
.../computeResourceModel.thrift | 23 +-
.../experimentModel.thrift | 11 +-
.../gatewayResourceProfileModel.thrift | 28 +-
.../workspaceModel.thrift | 6 +-
.../appcatalog/cpi/ApplicationDeployment.java | 4 +-
.../appcatalog/cpi/ApplicationInterface.java | 8 +-
.../appcatalog/cpi/WorkflowCatalog.java | 4 +-
.../data/impl/ApplicationDeploymentImpl.java | 6 +-
.../data/impl/ApplicationInterfaceImpl.java | 12 +-
.../data/impl/GwyResourceProfileImpl.java | 30 +-
.../catalog/data/impl/WorkflowCatalogImpl.java | 6 +-
.../data/model/ApplicationDeployment.java | 10 +
.../data/model/ApplicationInterface.java | 10 +
.../catalog/data/model/ApplicationModule.java | 10 +
.../data/model/ComputeResourcePreference.java | 10 +
.../catalog/data/model/GatewayProfile.java | 19 -
.../data/model/UnicoreJobSubmission.java | 5 +-
.../catalog/data/model/Workflow.java | 10 +
.../data/resources/AbstractResource.java | 6 +-
.../data/resources/AppDeploymentResource.java | 12 +
.../data/resources/AppInterfaceResource.java | 12 +
.../data/resources/AppModuleResource.java | 12 +
.../ComputeHostPreferenceResource.java | 11 +
.../data/resources/GatewayProfileResource.java | 30 +-
.../resources/UnicoreJobSubmissionResource.java | 16 +-
.../data/resources/WorkflowResource.java | 12 +
.../catalog/data/util/AppCatalogJPAUtils.java | 7 +-
.../data/util/AppCatalogThriftConversion.java | 4 +-
.../src/main/resources/appcatalog-derby.sql | 211 +-
.../src/main/resources/appcatalog-mysql.sql | 209 +-
.../app/catalog/test/AppDeploymentTest.java | 11 +-
.../app/catalog/test/AppInterfaceTest.java | 12 +-
.../app/catalog/test/GatewayProfileTest.java | 5 +-
.../src/test/resources/appcatalog-derby.sql | 211 +-
.../apache/airavata/common/utils/Constants.java | 4 +-
.../common/utils/DatabaseTestCases.java | 2 +-
.../main/resources/airavata-client.properties | 2 +-
.../server/src/main/resources/LSFTemplate.xslt | 92 +
.../server/src/main/resources/PBSTemplate.xslt | 22 +-
.../server/src/main/resources/SGETemplate.xslt | 18 +-
.../src/main/resources/SLURMTemplate.xslt | 22 +-
.../main/resources/airavata-server.properties | 6 +-
.../credential-store-webapp/pom.xml | 158 -
.../basic/BasicAccessAuthenticator.java | 226 -
.../credentialstore/local/LocalUserStore.java | 339 -
.../session/HttpAuthenticatorFilter.java | 191 -
.../session/ServletRequestHelper.java | 129 -
.../main/resources/airavata-server.properties | 237 -
.../main/resources/credential-store/client.xml | 36 -
.../credential-store/oauth-privkey.pk8 | 28 -
.../resources/credential-store/oauth-pubkey.pem | 9 -
.../src/main/webapp/WEB-INF/web.xml | 130 -
.../src/main/webapp/acs/index.jsp | 44 -
.../src/main/webapp/credential-store/error.jsp | 53 -
.../credential-store/password-credentials.jsp | 33 -
.../webapp/credential-store/show-redirect.jsp | 44 -
.../main/webapp/credential-store/success.jsp | 25 -
.../src/main/webapp/gateway/acs.jsp | 62 -
.../src/main/webapp/gateway/callback.jsp | 78 -
.../src/main/webapp/gateway/list_users.jsp | 78 -
.../src/main/webapp/gateway/logout.jsp | 35 -
.../src/main/webapp/gateway/user.jsp | 102 -
.../src/main/webapp/images/airavata-logo-2.png | Bin 4314 -> 0 bytes
.../src/main/webapp/index.jsp | 26 -
.../src/main/webapp/user-store/add.jsp | 142 -
.../src/main/webapp/user-store/index.jsp | 138 -
.../src/main/webapp/user-store/password.jsp | 157 -
.../credential-store/pom.xml | 154 -
.../scripts/credential-store-h2.sql | 42 -
.../scripts/credential-store-mysql.sql | 42 -
.../credential/store/client/TestSSLClient.java | 140 -
.../store/cpi/CredentialStoreService.java | 6888 ----
.../store/cpi/cs_cpi_serviceConstants.java | 55 -
.../credential/store/credential/AuditInfo.java | 53 -
.../store/credential/CommunityUser.java | 71 -
.../credential/store/credential/Credential.java | 62 -
.../impl/certificate/CertificateAuditInfo.java | 101 -
.../impl/certificate/CertificateCredential.java | 102 -
.../impl/password/PasswordCredential.java | 53 -
.../credential/impl/ssh/SSHCredential.java | 88 -
.../impl/ssh/SSHCredentialGenerator.java | 103 -
.../store/datamodel/CertificateCredential.java | 1104 -
.../store/datamodel/CommunityUser.java | 589 -
.../store/datamodel/PasswordCredential.java | 698 -
.../store/datamodel/SSHCredential.java | 998 -
.../store/datamodel/csDataModelConstants.java | 55 -
.../exception/CredentialStoreException.java | 397 -
.../store/notifier/CredentialStoreNotifier.java | 42 -
.../store/notifier/NotificationMessage.java | 46 -
.../store/notifier/NotifierBootstrap.java | 144 -
.../notifier/impl/EmailNotificationMessage.java | 58 -
.../store/notifier/impl/EmailNotifier.java | 71 -
.../impl/EmailNotifierConfiguration.java | 84 -
.../store/server/CredentialStoreServer.java | 158 -
.../server/CredentialStoreServerHandler.java | 201 -
.../store/servlet/CredentialBootstrapper.java | 49 -
.../servlet/CredentialStoreCallbackServlet.java | 272 -
.../servlet/CredentialStoreStartServlet.java | 183 -
.../store/store/CredentialReader.java | 112 -
.../store/store/CredentialReaderFactory.java | 54 -
.../store/store/CredentialStoreException.java | 40 -
.../store/store/CredentialWriter.java | 39 -
.../store/impl/CertificateCredentialWriter.java | 121 -
.../store/store/impl/CredentialReaderImpl.java | 162 -
.../store/store/impl/SSHCredentialWriter.java | 87 -
.../store/store/impl/db/CommunityUserDAO.java | 257 -
.../store/store/impl/db/CredentialsDAO.java | 458 -
.../store/store/impl/db/ParentDAO.java | 37 -
.../store/util/ConfigurationReader.java | 121 -
.../store/util/CredentialStoreConstants.java | 37 -
.../credential/store/util/PrivateKeyStore.java | 70 -
.../credential/store/util/TokenGenerator.java | 57 -
.../airavata/credential/store/util/Utility.java | 110 -
.../store/notifier/impl/EmailNotifierTest.java | 56 -
.../store/impl/db/CommunityUserDAOTest.java | 207 -
.../store/store/impl/db/CredentialsDAOTest.java | 421 -
.../store/util/ConfigurationReaderTest.java | 58 -
.../store/util/TokenGeneratorTest.java | 42 -
.../test/resources/credential-store/client.xml | 35 -
.../src/test/resources/keystore.jks | Bin 2230 -> 0 bytes
.../src/test/resources/mykeystore.jks | Bin 498 -> 0 bytes
.../credentialStoreErrors.thrift | 32 -
.../cs-thrift-description/cs.cpi.service.thrift | 50 -
.../cs-thrift-description/csDataModel.thrift | 61 -
.../cs-thrift-description/generate-cs-stubs.sh | 134 -
modules/credential-store-service/pom.xml | 42 -
.../credential-store-service/pom.xml | 166 +
.../scripts/credential-store-h2.sql | 42 +
.../scripts/credential-store-mysql.sql | 42 +
.../credential/store/credential/AuditInfo.java | 53 +
.../store/credential/CommunityUser.java | 71 +
.../credential/store/credential/Credential.java | 62 +
.../impl/certificate/CertificateAuditInfo.java | 101 +
.../impl/certificate/CertificateCredential.java | 102 +
.../impl/password/PasswordCredential.java | 53 +
.../credential/impl/ssh/SSHCredential.java | 88 +
.../impl/ssh/SSHCredentialGenerator.java | 103 +
.../store/notifier/CredentialStoreNotifier.java | 42 +
.../store/notifier/NotificationMessage.java | 46 +
.../store/notifier/NotifierBootstrap.java | 144 +
.../notifier/impl/EmailNotificationMessage.java | 58 +
.../store/notifier/impl/EmailNotifier.java | 71 +
.../impl/EmailNotifierConfiguration.java | 84 +
.../store/server/CredentialStoreServer.java | 158 +
.../server/CredentialStoreServerHandler.java | 202 +
.../store/servlet/CredentialBootstrapper.java | 49 +
.../servlet/CredentialStoreCallbackServlet.java | 272 +
.../servlet/CredentialStoreStartServlet.java | 183 +
.../store/store/CredentialReader.java | 112 +
.../store/store/CredentialReaderFactory.java | 54 +
.../store/store/CredentialStoreException.java | 40 +
.../store/store/CredentialWriter.java | 39 +
.../store/impl/CertificateCredentialWriter.java | 121 +
.../store/store/impl/CredentialReaderImpl.java | 162 +
.../store/store/impl/SSHCredentialWriter.java | 87 +
.../store/store/impl/db/CommunityUserDAO.java | 257 +
.../store/store/impl/db/CredentialsDAO.java | 458 +
.../store/store/impl/db/ParentDAO.java | 37 +
.../store/util/ConfigurationReader.java | 121 +
.../store/util/CredentialStoreConstants.java | 37 +
.../credential/store/util/PrivateKeyStore.java | 70 +
.../credential/store/util/TokenGenerator.java | 57 +
.../airavata/credential/store/util/Utility.java | 110 +
.../store/notifier/impl/EmailNotifierTest.java | 56 +
.../store/impl/db/CommunityUserDAOTest.java | 207 +
.../store/store/impl/db/CredentialsDAOTest.java | 421 +
.../store/store/impl/db/SSHCredentialTest.java | 92 +
.../store/util/ConfigurationReaderTest.java | 58 +
.../store/util/TokenGeneratorTest.java | 42 +
.../test/resources/airavata-server.properties | 254 +
.../test/resources/credential-store/client.xml | 35 +
.../src/test/resources/keystore.jks | Bin 0 -> 2230 bytes
.../src/test/resources/mykeystore.jks | Bin 0 -> 498 bytes
.../credential-store-stubs/pom.xml | 50 +
.../credential/store/client/TestSSLClient.java | 140 +
.../store/cpi/CredentialStoreService.java | 6888 ++++
.../store/cpi/credentialStoreCPIConstants.java | 55 +
.../store/datamodel/CertificateCredential.java | 1104 +
.../store/datamodel/CommunityUser.java | 589 +
.../store/datamodel/PasswordCredential.java | 698 +
.../store/datamodel/SSHCredential.java | 998 +
.../credentialStoreDataModelConstants.java | 55 +
.../exception/CredentialStoreException.java | 397 +
.../credential-store-webapp/pom.xml | 158 +
.../basic/BasicAccessAuthenticator.java | 226 +
.../credentialstore/local/LocalUserStore.java | 339 +
.../session/HttpAuthenticatorFilter.java | 191 +
.../session/ServletRequestHelper.java | 129 +
.../main/resources/airavata-server.properties | 237 +
.../main/resources/credential-store/client.xml | 36 +
.../credential-store/oauth-privkey.pk8 | 28 +
.../resources/credential-store/oauth-pubkey.pem | 9 +
.../src/main/webapp/WEB-INF/web.xml | 130 +
.../src/main/webapp/acs/index.jsp | 44 +
.../src/main/webapp/credential-store/error.jsp | 53 +
.../credential-store/password-credentials.jsp | 33 +
.../webapp/credential-store/show-redirect.jsp | 44 +
.../main/webapp/credential-store/success.jsp | 25 +
.../src/main/webapp/gateway/acs.jsp | 62 +
.../src/main/webapp/gateway/callback.jsp | 78 +
.../src/main/webapp/gateway/list_users.jsp | 78 +
.../src/main/webapp/gateway/logout.jsp | 35 +
.../src/main/webapp/gateway/user.jsp | 102 +
.../src/main/webapp/images/airavata-logo-2.png | Bin 0 -> 4314 bytes
.../src/main/webapp/index.jsp | 26 +
.../src/main/webapp/user-store/add.jsp | 142 +
.../src/main/webapp/user-store/index.jsp | 138 +
.../src/main/webapp/user-store/password.jsp | 157 +
.../credentialStoreCPI.thrift | 61 +
.../credentialStoreDataModel.thrift | 61 +
.../credentialStoreErrors.thrift | 32 +
.../cs-thrift-descriptions/generate-cs-stubs.sh | 134 +
modules/credential-store/pom.xml | 43 +
modules/distribution/server/pom.xml | 1211 +-
.../server/src/main/assembly/bin-assembly.xml | 1 +
.../server/src/main/resources/bin/data.sql | 141 -
.../airavata/gfac/server/GfacServerHandler.java | 54 +-
.../airavata/gfac/client/util/Initialize.java | 4 +-
modules/gfac/gfac-bes/pom.xml | 4 +-
.../gfac/bes/provider/impl/BESProvider.java | 10 +-
.../org/apache/airavata/gfac/RequestData.java | 2 +
.../gfac/core/context/JobExecutionContext.java | 9 +
.../airavata/gfac/core/cpi/BetterGfacImpl.java | 26 +-
.../airavata/gfac/core/utils/GFacUtils.java | 2 +-
.../gfac/core/utils/OutHandlerWorker.java | 11 +-
.../gfac/gsissh/util/GFACGSISSHUtils.java | 10 +-
.../monitor/impl/pull/qstat/HPCPullMonitor.java | 42 +-
.../impl/pull/qstat/ResourceConnection.java | 16 +-
.../airavata/gfac/monitor/util/CommonUtils.java | 1 +
.../gfac/ssh/provider/impl/SSHProvider.java | 1 +
.../gfac/ssh/security/TokenizedSSHAuthInfo.java | 5 +-
.../airavata/gfac/ssh/util/GFACSSHUtils.java | 53 +-
.../airavata/gfac/ssh/util/HandleOutputs.java | 5 +-
.../apache/airavata/integration/BaseCaseIT.java | 4 +-
.../airavata/integration/DataRetrievalIT.java | 8 +-
.../airavata/integration/SimpleEchoIT.java | 4 +-
.../SingleAppIntegrationTestBase.java | 6 +-
.../WorkflowIntegrationTestBase.java | 2 +-
.../integration/tools/DocumentCreatorNew.java | 75 +-
modules/messaging/client/pom.xml | 2 +-
.../messaging/client/RabbitMQListener.java | 228 +
.../messaging/client/RabbitMQListner.java | 230 -
.../airavata/messaging/client/TestReader.java | 50 +
.../orchestrator/util/DataModelUtils.java | 10 +-
.../orchestrator/client/util/Initialize.java | 4 +-
.../airavata/orchestrator/cpi/Orchestrator.java | 2 +-
.../orchestrator/core/util/Initialize.java | 4 +-
.../persistance/registry/jpa/ResourceType.java | 2 -
.../persistance/registry/jpa/ResourceUtils.java | 69 +-
.../registry/jpa/impl/ExperimentRegistry.java | 16 +-
.../registry/jpa/impl/GatewayRegistry.java | 76 +
.../registry/jpa/impl/LoggingRegistryImpl.java | 35 +-
.../registry/jpa/impl/ProjectRegistry.java | 16 +-
.../registry/jpa/impl/RegistryFactory.java | 17 +
.../registry/jpa/impl/RegistryImpl.java | 28 +-
.../Computational_Resource_Scheduling.java | 10 +
.../registry/jpa/model/Experiment.java | 14 +-
.../jpa/model/ExperimentConfigData.java | 20 +
.../persistance/registry/jpa/model/Gateway.java | 32 +-
.../registry/jpa/model/Gateway_Worker.java | 14 +-
.../registry/jpa/model/Gateway_Worker_PK.java | 14 +-
.../persistance/registry/jpa/model/Project.java | 13 +-
.../registry/jpa/model/Published_Workflow.java | 124 -
.../jpa/model/Published_Workflow_PK.java | 64 -
.../registry/jpa/model/User_Workflow.java | 122 -
.../registry/jpa/model/User_Workflow_PK.java | 74 -
.../jpa/resources/AbstractResource.java | 33 +-
.../ComputationSchedulingResource.java | 10 +
.../jpa/resources/ConfigDataResource.java | 22 +
.../jpa/resources/ExperimentResource.java | 6 +-
.../registry/jpa/resources/GatewayResource.java | 159 +-
.../registry/jpa/resources/ProjectResource.java | 4 +-
.../jpa/resources/PublishWorkflowResource.java | 282 -
.../jpa/resources/UserWorkflowResource.java | 174 -
.../registry/jpa/resources/Utils.java | 72 +-
.../registry/jpa/resources/WorkerResource.java | 100 +-
.../jpa/utils/ThriftDataModelConversion.java | 22 +
.../src/main/resources/META-INF/persistence.xml | 2 -
.../src/main/resources/registry-derby.sql | 58 +-
.../src/main/resources/registry-mysql.sql | 56 +-
.../registry/jpa/GatewayResourceTest.java | 26 +-
.../jpa/PublishWorkflowResourceTest.java | 62 -
.../registry/jpa/UserWorkflowResourceTest.java | 66 -
.../registry/jpa/util/Initialize.java | 4 +-
.../src/test/resources/registry-derby.sql | 58 +-
.../airavata/registry/cpi/ParentDataType.java | 3 +-
.../apache/airavata/registry/cpi/Registry.java | 2 +-
.../registry/cpi/RegistryModelType.java | 1 +
.../airavata/registry/cpi/utils/Constants.java | 3 +-
.../src/test/resources/jdbc-authenticator.xml | 2 +-
.../test/resources/session-authenticator.xml | 2 +-
modules/test-suite/pom.xml | 116 -
.../tests/LeadCallbackHandlerTest.java | 173 -
.../tests/LeadNotificationManagerTest.java | 49 -
.../tests/MultipleSubscriptionTest.java | 105 -
.../tests/RenewSubscriptionTest.java | 155 -
.../tests/ThreadMessagePassingCallback.java | 27 -
.../tests/impl/publish/Test.java | 40 -
.../tests/impl/publish/TestWSMPublisher.java | 119 -
.../tests/messagebox/MessagePullerTest.java | 140 -
.../MultipleSubscriptionForMessageBoxTest.java | 118 -
.../tests/messagebox/RenewSubscriptionTest.java | 109 -
.../tests/messagebox/SubscriberThread.java | 96 -
.../restart/MessageBoxClientRestartTest.java | 131 -
.../restart/MessageBoxCreateThread.java | 83 -
.../tests/samples/workflow/SimpleTest.java | 202 -
.../workflow/SimpleWorkflowExecution.java | 473 -
.../workflow/WorkflowNotificationListener.java | 127 -
.../tests/util/CommonUtils.java | 26 -
.../tests/util/SubscriberThread.java | 91 -
.../tests/util/TestConfigKeys.java | 34 -
.../src/test/resources/gram.properties.template | 70 -
.../src/test/resources/unit_test.properties | 26 -
.../airavata/workflow/engine/WorkflowUtils.java | 10 +-
.../registry/JCRComponentRegistry.java | 3 +-
.../dialogs/workflow/WorkflowImportWindow.java | 3 +-
.../ui/experiment/LaunchApplicationWindow.java | 8 +-
.../RegistryWorkflowPublisherWindow.java | 3 +-
.../WorkflowInterpreterLaunchWindow.java | 9 +-
pom.xml | 6 +-
.../apache/airavata/gsi/ssh/GSSContextX509.java | 11 +-
.../airavata/gsi/ssh/api/job/JobDescriptor.java | 14 +
.../ssh/api/job/JobManagerConfiguration.java | 9 +-
.../gsi/ssh/api/job/LSFJobConfiguration.java | 116 +
.../gsi/ssh/api/job/LSFOutputParser.java | 110 +
.../airavata/gsi/ssh/api/job/OutputParser.java | 14 +-
.../gsi/ssh/api/job/PBSJobConfiguration.java | 15 +
.../gsi/ssh/api/job/PBSOutputParser.java | 8 +-
.../gsi/ssh/api/job/SGEOutputParser.java | 8 +-
.../gsi/ssh/api/job/SlurmJobConfiguration.java | 15 +
.../gsi/ssh/api/job/SlurmOutputParser.java | 10 +-
.../gsi/ssh/impl/GSISSHAbstractCluster.java | 74 +-
.../apache/airavata/gsi/ssh/impl/JobStatus.java | 20 +-
.../airavata/gsi/ssh/impl/PBSCluster.java | 4 +
.../airavata/gsi/ssh/impl/RawCommandInfo.java | 8 +-
.../gsi/ssh/listener/JobSubmissionListener.java | 2 +-
.../airavata/gsi/ssh/util/CommonUtils.java | 13 +
.../gsissh/src/main/resources/LSFTemplate.xslt | 93 +
.../main/resources/schemas/PBSJobDescriptor.xsd | 3 +-
.../impl/DefaultSSHApiTestWithMyProxyAuth.java | 25 +-
.../gsi/ssh/impl/VanilaTestWithSSHAuth.java | 48 +-
tools/registry-tool/README | 2 +-
383 files changed, 59870 insertions(+), 35784 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/AiravataAPIServer.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --cc airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index 90b8e6d,ed141b9..f499345
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@@ -54,16 -55,16 +55,16 @@@ public class CreateLaunchExperiment
private final static Logger logger = LoggerFactory.getLogger(CreateLaunchExperiment.class);
private static final String DEFAULT_USER = "default.registry.user";
- private static final String DEFAULT_GATEWAY = "default.registry.gateway";
+ private static final String DEFAULT_GATEWAY = "php_reference_gateway";
private static Airavata.Client airavataClient;
- private static String echoAppId = "Echo_61988d1f-7ca9-47ba-9212-a0ac2e973cf1";
+ private static String echoAppId = "Echo_1365a7fd-eae1-4575-b447-99afb4d79c82";
private static String mpiAppId = "HelloMPI_720e159f-198f-4daa-96ca-9f5eafee92c9";
private static String wrfAppId = "WRF_7ad5da38-c08b-417c-a9ea-da9298839762";
- private static String amberAppId = "Amber_9e4f28b6-7a5d-4fe1-b07f-2053f8f0deb3";
+ private static String amberAppId = "Amber_aa083c86-4680-4002-b3ef-fad93c181926";
private static String gromacsAppId = "GROMACS_05622038-9edd-4cb1-824e-0b7cb993364b";
private static String espressoAppId = "ESPRESSO_10cc2820-5d0b-4c63-9546-8a8b595593c1";
- private static String lammpsAppId = "LAMMPS_10893eb5-3840-438c-8446-d26c7ecb001f";
+ private static String lammpsAppId = "LAMMPS_2472685b-8acf-497e-aafe-cc66fe5f4cb6";
private static String nwchemAppId = "NWChem_2c8fee64-acf9-4a89-b6d3-91eb53c7640c";
private static String trinityAppId = "Trinity_e894acf5-9bca-46e8-a1bd-7e2d5155191a";
private static String autodockAppId = "AutoDock_43d9fdd0-c404-49f4-b913-3abf9080a8c9";
@@@ -89,9 -95,73 +95,74 @@@
private static String fsdResourceId;
+ public static void getAvailableAppInterfaceComputeResources(String appInterfaceId) {
+ try {
+ Map<String, String> availableAppInterfaceComputeResources = airavataClient.getAvailableAppInterfaceComputeResources(appInterfaceId);
+ for (String key : availableAppInterfaceComputeResources.keySet()){
+ System.out.println("id : " + key);
+ System.out.println("name : " + availableAppInterfaceComputeResources.get(key));
+ }
+ } catch (AiravataSystemException e) {
+ e.printStackTrace();
+ } catch (InvalidRequestException e) {
+ e.printStackTrace();
+ } catch (AiravataClientException e) {
+ e.printStackTrace();
+ } catch (TException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
+ public static void createGateway(){
+ try {
+ Gateway gateway = new Gateway();
+ gateway.setGatewayId("testGatewayId2");
+ gateway.setGatewayName("testGateway2");
+ gatewayId = airavataClient.addGateway(gateway);
+ System.out.println(gatewayId);
+ } catch (AiravataSystemException e) {
+ e.printStackTrace();
+ } catch (InvalidRequestException e) {
+ e.printStackTrace();
+ } catch (AiravataClientException e) {
+ e.printStackTrace();
+ } catch (TException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ public static void getGateway(String gatewayId){
+ try {
+ Gateway gateway = airavataClient.getGateway(gatewayId);
+ gateway.setDomain("testDomain");
+ airavataClient.updateGateway(gatewayId, gateway);
+ List<Gateway> allGateways = airavataClient.getAllGateways();
+ System.out.println(allGateways.size());
+ if (airavataClient.isGatewayExist(gatewayId)){
+ Gateway gateway1 = airavataClient.getGateway(gatewayId);
+ System.out.println(gateway1.getGatewayName());
+ }
+ boolean b = airavataClient.deleteGateway("testGatewayId2");
+ System.out.println(b);
+ } catch (AiravataSystemException e) {
+ e.printStackTrace();
+ } catch (InvalidRequestException e) {
+ e.printStackTrace();
+ } catch (AiravataClientException e) {
+ e.printStackTrace();
+ } catch (TException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+
public static void createAndLaunchExp() throws TException {
// final String expId = createEchoExperimentForFSD(airavataClient);
+ List<String> experimentIds = new ArrayList<String>();
try {
for (int i = 0; i < 1; i++) {
// final String expId = createExperimentForSSHHost(airavata);
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/modules/configuration/server/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/modules/credential-store/credential-store-webapp/src/main/resources/airavata-server.properties
----------------------------------------------------------------------
diff --cc modules/credential-store/credential-store-webapp/src/main/resources/airavata-server.properties
index 0000000,badf28d..64e0160
mode 000000,100644..100644
--- a/modules/credential-store/credential-store-webapp/src/main/resources/airavata-server.properties
+++ b/modules/credential-store/credential-store-webapp/src/main/resources/airavata-server.properties
@@@ -1,0 -1,234 +1,237 @@@
+ #
+ #
+ # 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://localhost:3306/persistent_data
+ registry.jdbc.user=airavata
+ registry.jdbc.password=airavata
+ start.derby.server.mode=true
+ validationQuery=SELECT 1 from CONFIGURATION
+ jpa.cache.size=5000
+ #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
+
+ #ip=127.0.0.1
+
+ ###########################################################################
+ # 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://localhost:3306/app_catalog
+ appcatalog.jdbc.user=airavata
+ appcatalog.jdbc.password=airavata
+ appcatalog.validationQuery=SELECT 1 from CONFIGURATION
+
+ ###########################################################################
+ # Server module Configuration
+ ###########################################################################
+
+ servers=apiserver,orchestrator,gfac,workflowserver
+ #shutdown.trategy=NONE
+ shutdown.trategy=SELF_TERMINATE
+
+
+ apiserver.server.host=localhost
+ apiserver.server.port=8930
+ apiserver.server.min.threads=50
+ workflow.server.host=localhost
+ workflow.server.port=8931
+ orchestrator.server.host=localhost
+ orchestrator.server.port=8940
+ gfac.server.host=localhost
+ gfac.server.port=8950
+ orchestrator.server.min.threads=50
+
+ ###########################################################################
+ # Credential Store module Configuration
+ ###########################################################################
+ credential.store.keystore.url=/Users/lahirugunathilake/Downloads/airavata_sym.jks
+ credential.store.keystore.alias=airavata
+ credential.store.keystore.password=airavata
+ credential.store.jdbc.url=jdbc:derby://localhost:1527/experiment_catalog;create=true;user=airavata;password=airavata
+ credential.store.jdbc.user=airavata
+ credential.store.jdbc.password=airavata
+ credential.store.jdbc.driver=org.apache.derby.jdbc.ClientDriver
+
+ notifier.enabled=false
+ #period in milliseconds
+ notifier.duration=5000
+
+ email.server=smtp.googlemail.com
+ email.server.port=465
+ email.user=airavata
+ email.password=xxx
+ email.ssl=true
+ email.from=airavata@apache.org
+
+ ###########################################################################
+ # Airavata GFac MyProxy GSI credentials to access Grid Resources.
+ ###########################################################################
+ #
+ # Security Configuration used by Airavata Generic Factory Service
+ # to interact with Computational Resources.
+ #
+ gfac=org.apache.airavata.gfac.server.GfacServer
+ myproxy.server=myproxy.teragrid.org
+ myproxy.username=ogce
+ myproxy.password=
+ myproxy.life=3600
+ # XSEDE Trusted certificates can be downloaded from https://software.xsede.org/security/xsede-certs.tar.gz
+ trusted.cert.location=/Users/lahirugunathilake/Downloads/certificates
+ # SSH PKI key pair or ssh password can be used SSH based authentication is used.
+ # if user specify both password authentication gets the higher preference
+
+ ################# ---------- For ssh key pair authentication ------------------- ################
+ #public.ssh.key=/path to public key for ssh
+ #ssh.username=username for ssh connection
+ #private.ssh.key=/path to private key file for ssh
+ #ssh.keypass=passphrase for the private key
+
+
+ ################# ---------- For ssh key pair authentication ------------------- ################
+ #ssh.username=username for ssh connection
+ #ssh.password=Password for ssh connection
+
+
+
+ ###########################################################################
+ # Airavata Workflow Interpreter Configurations
+ ###########################################################################
+
+ #runInThread=true
+ #provenance=true
+ #provenanceWriterThreadPoolSize=20
+ #gfac.embedded=true
+ #workflowserver=org.apache.airavata.api.server.WorkflowServer
+
+
+ ###########################################################################
+ # API Server module Configuration
+ ###########################################################################
+ apiserver=org.apache.airavata.api.server.AiravataAPIServer
+
+ ###########################################################################
+ # Workflow Server module Configuration
+ ###########################################################################
+
+ workflowserver=org.apache.airavata.api.server.WorkflowServer
+
+ ###########################################################################
+ # Advance configuration to change service implementations
+ ###########################################################################
+ # If false, disables two phase commit when submitting jobs
+ TwoPhase=true
+ #
+ # Class which implemented HostScheduler interface. It will determine the which host to submit the request
+ #
+ host.scheduler=org.apache.airavata.gfac.core.scheduler.impl.SimpleHostScheduler
+
+ ###########################################################################
+ # 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
+
+
+ ###########################################################################
+ # AMQP Notification Configuration
+ ###########################################################################
+
+
+ amqp.notification.enable=1
+
+ amqp.broker.host=localhost
+ amqp.broker.port=5672
+ amqp.broker.username=guest
+ amqp.broker.password=guest
+
+ amqp.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPSenderImpl
+ amqp.topic.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPTopicSenderImpl
+ amqp.broadcast.sender=org.apache.airavata.wsmg.client.amqp.rabbitmq.AMQPBroadcastSenderImpl
+
+ #,org.apache.airavata.gfac.monitor.impl.push.amqp.AMQPMonitor
+ #This is the amqp related configuration and this lists down the Rabbitmq host, this is an xsede specific configuration
+ amqp.hosts=info1.dyn.teragrid.org,info2.dyn.teragrid.org
+ proxy.file.path=/Users/lahirugunathilake/Downloads/x509up_u503876
+ connection.name=xsede
+ #publisher
+ activity.listeners=org.apache.airavata.gfac.core.monitor.AiravataJobStatusUpdator,org.apache.airavata.gfac.core.monitor.AiravataTaskStatusUpdator,org.apache.airavata.gfac.core.monitor.AiravataWorkflowNodeStatusUpdator,org.apache.airavata.api.server.listener.AiravataExperimentStatusUpdator,org.apache.airavata.gfac.core.monitor.GfacInternalStatusUpdator,org.apache.airavata.workflow.engine.util.ProxyMonitorPublisher
+ publish.rabbitmq=false
-activity.publisher=org.apache.airavata.messaging.core.impl.RabbitMQPublisher
++status.publisher=org.apache.airavata.messaging.core.impl.RabbitMQStatusPublisher
++task.launch.publisher=org.apache.airavata.messaging.core.impl.RabbitMQTaskLaunchPublisher
+ rabbitmq.broker.url=amqp://localhost:5672
-rabbitmq.exchange.name=airavata_rabbitmq_exchange
++rabbitmq.status.exchange.name=airavata_rabbitmq_exchange
++rabbitmq.task.launch.exchange.name=airavata_task_launch_rabbitmq_exchange
+
+ ###########################################################################
+ # Orchestrator module Configuration
+ ###########################################################################
+
+ #job.submitter=org.apache.airavata.orchestrator.core.impl.GFACEmbeddedJobSubmitter
-job.submitter=org.apache.airavata.orchestrator.core.impl.GFACServiceJobSubmitter
++#job.submitter=org.apache.airavata.orchestrator.core.impl.GFACPassiveJobSubmitter
++job.submitter=org.apache.airavata.orchestrator.core.impl.GFACRPCJobSubmitter
+ job.validators=org.apache.airavata.orchestrator.core.validator.impl.SimpleAppDataValidator,org.apache.airavata.orchestrator.core.validator.impl.ExperimentStatusValidator
+ submitter.interval=10000
+ threadpool.size=10
+ start.submitter=true
+ embedded.mode=true
+ enable.validation=true
+ orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer
+
+ ###########################################################################
+ # Zookeeper Server Configuration
+ ###########################################################################
+
+ embedded.zk=true
+ zookeeper.server.host=localhost
+ zookeeper.server.port=2181
+ airavata-server=/api-server
+ orchestrator-server=/orchestrator-server
+ gfac-server=/gfac-server
+ gfac-experiments=/gfac-experiments
+ gfac-server-name=gfac-node0
+ orchestrator-server-name=orch-node0
+ airavata-server-name=api-node0
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java
----------------------------------------------------------------------
diff --cc modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java
index cca793e,4973a41..88979a4
--- a/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java
+++ b/modules/gfac/airavata-gfac-service/src/main/java/org/apache/airavata/gfac/server/GfacServerHandler.java
@@@ -27,7 -27,10 +27,11 @@@ import org.apache.aiaravata.application
import org.apache.airavata.common.exception.ApplicationSettingsException;
import org.apache.airavata.common.logger.AiravataLogger;
import org.apache.airavata.common.logger.AiravataLoggerFactory;
+import org.apache.airavata.common.utils.*;
+ import org.apache.airavata.common.utils.AiravataZKUtils;
+ import org.apache.airavata.common.utils.Constants;
+ import org.apache.airavata.common.utils.MonitorPublisher;
+ import org.apache.airavata.common.utils.ServerSettings;
import org.apache.airavata.gfac.core.cpi.BetterGfacImpl;
import org.apache.airavata.gfac.core.cpi.GFac;
import org.apache.airavata.gfac.core.utils.GFacThreadPoolExecutor;
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/utils/GFacUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/RabbitMQListener.java
----------------------------------------------------------------------
diff --cc modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/RabbitMQListener.java
index 0000000,53d08d3..3f876ae
mode 000000,100644..100644
--- a/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/RabbitMQListener.java
+++ b/modules/messaging/client/src/main/java/org/apache/airavata/messaging/client/RabbitMQListener.java
@@@ -1,0 -1,228 +1,228 @@@
+ /*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+ package org.apache.airavata.messaging.client;
+
+ import org.apache.airavata.common.exception.ApplicationSettingsException;
+ import org.apache.airavata.common.utils.AiravataUtils;
+ import org.apache.airavata.common.utils.ServerSettings;
+ import org.apache.airavata.common.utils.ThriftUtils;
+ import org.apache.airavata.messaging.core.MessageContext;
+ import org.apache.airavata.messaging.core.MessageHandler;
+ import org.apache.airavata.messaging.core.MessagingConstants;
-import org.apache.airavata.messaging.core.impl.RabbitMQConsumer;
++import org.apache.airavata.messaging.core.impl.RabbitMQStatusConsumer;
+ import org.apache.airavata.model.messaging.event.*;
+ import org.apache.commons.cli.*;
+ import org.apache.thrift.TBase;
+ import org.apache.thrift.TException;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+
+ import java.io.*;
+ import java.util.ArrayList;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+
+
+ public class RabbitMQListener {
+ public static final String RABBITMQ_BROKER_URL = "rabbitmq.broker.url";
+ public static final String RABBITMQ_EXCHANGE_NAME = "rabbitmq.exchange.name";
+ private final static Logger logger = LoggerFactory.getLogger(RabbitMQListener.class);
+ private static String gatewayId = "*";
+ private static boolean gatewayLevelMessages = false;
+ private static boolean experimentLevelMessages = false;
+ private static boolean jobLevelMessages = false;
+ private static String experimentId = "*";
+ private static String jobId = "*";
+ private static boolean allMessages = false;
+
+ public static void main(String[] args) {
+ File file = new File("/tmp/latency_client");
+ parseArguments(args);
+ try {
+ FileOutputStream fos = new FileOutputStream(file, false);
+ final BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
+ AiravataUtils.setExecutionAsServer();
+ String brokerUrl = ServerSettings.getSetting(RABBITMQ_BROKER_URL);
+ System.out.println("broker url " + brokerUrl);
+ final String exchangeName = ServerSettings.getSetting(RABBITMQ_EXCHANGE_NAME);
- RabbitMQConsumer consumer = new RabbitMQConsumer(brokerUrl, exchangeName);
++ RabbitMQStatusConsumer consumer = new RabbitMQStatusConsumer(brokerUrl, exchangeName);
+ consumer.listen(new MessageHandler() {
+ @Override
+ public Map<String, Object> getProperties() {
+ Map<String, Object> props = new HashMap<String, Object>();
+ List<String> routingKeys = new ArrayList<String>();
+ if (allMessages){
+ routingKeys.add("*");
+ routingKeys.add("*.*");
+ routingKeys.add("*.*.*");
+ routingKeys.add("*.*.*.*");
+ routingKeys.add("*.*.*.*.*");
+ }else {
+ if (gatewayLevelMessages){
+ routingKeys.add(gatewayId);
+ routingKeys.add(gatewayId + ".*");
+ routingKeys.add(gatewayId + ".*.*");
+ routingKeys.add(gatewayId + ".*.*.*");
+ routingKeys.add(gatewayId + ".*.*.*.*");
+ }else if (experimentLevelMessages){
+ routingKeys.add(gatewayId);
+ routingKeys.add(gatewayId + "." + experimentId);
+ routingKeys.add(gatewayId + "." + experimentId+ ".*");
+ routingKeys.add(gatewayId + "." + experimentId+ ".*.*");
+ routingKeys.add(gatewayId + "." + experimentId+ ".*.*.*");
+ }else if (jobLevelMessages){
+ routingKeys.add(gatewayId);
+ routingKeys.add(gatewayId + "." + experimentId);
+ routingKeys.add(gatewayId + "." + experimentId+ ".*");
+ routingKeys.add(gatewayId + "." + experimentId+ ".*.*");
+ routingKeys.add(gatewayId + "." + experimentId+ ".*." + jobId);
+ }
+ }
+ props.put(MessagingConstants.RABBIT_ROUTING_KEY, routingKeys);
+ return props;
+ }
+
+ @Override
+ public void onMessage(MessageContext message) {
+ try {
+ long latency = System.currentTimeMillis() - message.getUpdatedTime().getTime();
+ bw.write(message.getMessageId() + " :" + latency);
+ bw.newLine();
+ bw.flush();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ if (message.getType().equals(MessageType.EXPERIMENT)){
+ try {
+ ExperimentStatusChangeEvent event = new ExperimentStatusChangeEvent();
+ TBase messageEvent = message.getEvent();
+ byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
+ ThriftUtils.createThriftFromBytes(bytes, event);
+ System.out.println(" Message Received with message id '" + message.getMessageId()
+ + "' and with message type '" + message.getType() + "' and with state : '" + event.getState().toString() +
+ " for Gateway " + event.getGatewayId());
+ } catch (TException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }else if (message.getType().equals(MessageType.WORKFLOWNODE)){
+ try {
+ WorkflowNodeStatusChangeEvent event = new WorkflowNodeStatusChangeEvent();
+ TBase messageEvent = message.getEvent();
+ byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
+ ThriftUtils.createThriftFromBytes(bytes, event);
+ System.out.println(" Message Received with message id '" + message.getMessageId()
+ + "' and with message type '" + message.getType() + "' and with state : '" + event.getState().toString() +
+ " for Gateway " + event.getWorkflowNodeIdentity().getGatewayId());
+ } catch (TException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }else if (message.getType().equals(MessageType.TASK)){
+ try {
+ TaskStatusChangeEvent event = new TaskStatusChangeEvent();
+ TBase messageEvent = message.getEvent();
+ byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
+ ThriftUtils.createThriftFromBytes(bytes, event);
+ System.out.println(" Message Received with message id '" + message.getMessageId()
+ + "' and with message type '" + message.getType() + "' and with state : '" + event.getState().toString() +
+ " for Gateway " + event.getTaskIdentity().getGatewayId());
+ } catch (TException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }else if (message.getType().equals(MessageType.JOB)){
+ try {
+ JobStatusChangeEvent event = new JobStatusChangeEvent();
+ TBase messageEvent = message.getEvent();
+ byte[] bytes = ThriftUtils.serializeThriftObject(messageEvent);
+ ThriftUtils.createThriftFromBytes(bytes, event);
+ System.out.println(" Message Received with message id '" + message.getMessageId()
+ + "' and with message type '" + message.getType() + "' and with state : '" + event.getState().toString() +
+ " for Gateway " + event.getJobIdentity().getGatewayId());
+ } catch (TException e) {
+ logger.error(e.getMessage(), e);
+ }
+ }
+ }
+ });
+ } catch (ApplicationSettingsException e) {
+ logger.error("Error reading airavata server properties", e);
+ }catch (Exception e) {
+ logger.error(e.getMessage(), e);
+ }
+
+ }
+
+ public static void parseArguments(String[] args) {
+ try{
+ Options options = new Options();
+
+ options.addOption("gId", true , "Gateway ID");
+ options.addOption("eId", true, "Experiment ID");
+ options.addOption("jId", true, "Job ID");
+ options.addOption("a", false, "All Notifications");
+
+ CommandLineParser parser = new PosixParser();
+ CommandLine cmd = parser.parse( options, args);
+ if (cmd.getOptions() == null || cmd.getOptions().length == 0){
+ logger.info("You have not specified any options. We assume you need to listen to all the messages...");
+ allMessages = true;
+ gatewayId = "*";
+ }
+ if (cmd.hasOption("a")){
+ logger.info("Listening to all the messages...");
+ allMessages = true;
+ gatewayId = "*";
+ }else {
+ gatewayId = cmd.getOptionValue("gId");
+ if (gatewayId == null){
+ gatewayId = "*";
+ logger.info("You have not specified a gateway id. We assume you need to listen to all the messages...");
+ } else {
+ gatewayLevelMessages = true;
+ }
+ experimentId = cmd.getOptionValue("eId");
+ if (experimentId == null && !gatewayId.equals("*")){
+ experimentId = "*";
+ logger.info("You have not specified a experiment id. We assume you need to listen to all the messages for the gateway with id " + gatewayId);
+ } else if (experimentId == null && gatewayId.equals("*")) {
+ experimentId = "*";
+ logger.info("You have not specified a experiment id and a gateway id. We assume you need to listen to all the messages...");
+ }else {
+ experimentLevelMessages = true;
+ }
+ jobId = cmd.getOptionValue("jId");
+ if (jobId == null && !gatewayId.equals("*") && !experimentId.equals("*")){
+ jobId = "*";
+ logger.info("You have not specified a job id. We assume you need to listen to all the messages for the gateway with id " + gatewayId
+ + " with experiment id : " + experimentId );
+ } else if (jobId == null && gatewayId.equals("*") && experimentId.equals("*")) {
+ jobId = "*";
+ logger.info("You have not specified a job Id or experiment Id or a gateway Id. We assume you need to listen to all the messages...");
+ }else {
+ jobLevelMessages = true;
+ }
+ }
+ } catch (ParseException e) {
+ logger.error("Error while reading command line parameters" , e);
+ }
+ }
+ }
http://git-wip-us.apache.org/repos/asf/airavata/blob/48be39fe/pom.xml
----------------------------------------------------------------------