Mereged master branch
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/0db33d2e Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/0db33d2e Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/0db33d2e Branch: refs/heads/master Commit: 0db33d2e515603f94a8fc4abd34b1b91f6a1faa4 Parents: 48192d9 73f371d Author: shamrath <[email protected]> Authored: Thu Mar 19 15:11:10 2015 -0400 Committer: shamrath <[email protected]> Committed: Thu Mar 19 15:11:10 2015 -0400 ---------------------------------------------------------------------- .../airavata/api/server/AiravataAPIServer.java | 38 +- .../server/handler/AiravataServerHandler.java | 498 +- .../api/server/util/DataModelUtils.java | 8 +- .../java/org/apache/airavata/api/Airavata.java | 49461 ++++++++++++----- .../airavata/api/airavataAPIConstants.java | 2 +- .../main/resources/lib/airavata/Airavata.cpp | 15118 +++-- .../src/main/resources/lib/airavata/Airavata.h | 7404 ++- .../lib/airavata/Airavata_server.skeleton.cpp | 115 +- .../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 | 13160 +++-- .../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 | 1007 +- .../samples/CreateLaunchExperimentUS3.java | 20 +- .../client/samples/RegisterSampleData.java | 37 +- .../samples/TestCreateLaunchExperiment.java | 10 +- .../tools/RegisterOGCEUS3Application.java | 10 +- .../tools/RegisterSampleApplications.java | 366 +- .../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 | 192 +- .../computeResourceModel.thrift | 23 +- .../experimentModel.thrift | 11 +- .../gatewayResourceProfileModel.thrift | 28 +- .../workspaceModel.thrift | 6 +- .../appcatalog/cpi/ApplicationDeployment.java | 4 +- .../appcatalog/cpi/ApplicationInterface.java | 8 +- .../appcatalog/cpi/ComputeResource.java | 3 + .../appcatalog/cpi/WorkflowCatalog.java | 4 +- .../data/impl/ApplicationDeploymentImpl.java | 6 +- .../data/impl/ApplicationInterfaceImpl.java | 12 +- .../catalog/data/impl/ComputeResourceImpl.java | 45 +- .../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 - .../catalog/data/model/UnicoreDataMovement.java | 65 + .../data/model/UnicoreJobSubmission.java | 5 +- .../catalog/data/model/Workflow.java | 10 + .../data/resources/AbstractResource.java | 13 +- .../data/resources/AppDeploymentResource.java | 12 + .../data/resources/AppInterfaceResource.java | 12 + .../data/resources/AppModuleResource.java | 12 + .../ComputeHostPreferenceResource.java | 11 + .../data/resources/GatewayProfileResource.java | 30 +- .../resources/UnicoreDataMovementResource.java | 255 + .../resources/UnicoreJobSubmissionResource.java | 16 +- .../data/resources/WorkflowResource.java | 12 + .../catalog/data/util/AppCatalogJPAUtils.java | 26 +- .../data/util/AppCatalogResourceType.java | 1 + .../data/util/AppCatalogThriftConversion.java | 29 +- .../src/main/resources/META-INF/persistence.xml | 1 + .../src/main/resources/appcatalog-derby.sql | 219 +- .../src/main/resources/appcatalog-mysql.sql | 218 +- .../app/catalog/test/AppDeploymentTest.java | 11 +- .../app/catalog/test/AppInterfaceTest.java | 12 +- .../app/catalog/test/GatewayProfileTest.java | 5 +- .../src/test/resources/appcatalog-derby.sql | 219 +- modules/commons/utils/pom.xml | 4 +- .../apache/airavata/common/utils/Constants.java | 4 +- .../common/utils/DatabaseTestCases.java | 2 +- .../airavata/common/utils/WSConstants.java | 10 +- .../apache/airavata/common/utils/WSDLUtil.java | 764 +- .../apache/airavata/common/utils/XMLUtil.java | 34 +- .../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 | 241 - .../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 | 149 - .../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 | 241 + .../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 | 1251 +- .../server/src/main/assembly/bin-assembly.xml | 1 + .../server/src/main/resources/bin/data.sql | 141 - .../airavata/gfac/server/GfacServerHandler.java | 44 +- .../airavata/gfac/client/util/Initialize.java | 4 +- modules/gfac/gfac-bes/pom.xml | 9 +- .../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 +- modules/gfac/gfac-gsissh/pom.xml | 10 - .../handler/GSISSHDirectorySetupHandler.java | 7 +- .../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 + modules/gfac/gfac-ssh/pom.xml | 10 - .../ssh/handler/SSHDirectorySetupHandler.java | 7 +- .../gfac/ssh/provider/impl/SSHProvider.java | 1 + .../gfac/ssh/security/TokenizedSSHAuthInfo.java | 5 +- .../airavata/gfac/ssh/util/GFACSSHUtils.java | 98 +- .../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 +- .../messaging/client/RabbitMQListener.java | 13 + .../airavata/messaging/client/TestReader.java | 50 + .../core/impl/RabbitMQStatusPublisher.java | 5 +- .../messaging/core/stats/CountWriterTask.java | 35 + .../messaging/core/stats/LatencyWriterTask.java | 37 + .../messaging/core/stats/StatCounter.java | 38 +- .../messaging/core/stats/WriterTask.java | 38 - .../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 - modules/workflow-model/workflow-engine/pom.xml | 5 +- .../airavata/workflow/engine/WorkflowUtils.java | 10 +- .../engine/gfac/GFacRegistryClient.java | 186 +- .../workflow/engine/gfac/SimpleWSClient.java | 166 +- .../interpretor/SystemComponentInvoker.java | 86 +- .../engine/interpretor/WorkflowInterpreter.java | 24 +- .../engine/invoker/AsynchronousInvoker.java | 98 +- .../workflow/engine/invoker/DynamicInvoker.java | 48 +- .../workflow/engine/invoker/Invoker.java | 84 +- .../workflow/engine/invoker/SimpleInvoker.java | 411 +- .../workflow/engine/util/InterpreterUtil.java | 112 +- .../workflow/engine/util/XBayaUtil.java | 94 +- .../engine/workflow/proxy/WorkflowContext.java | 4 +- .../workflow-model-component/pom.xml | 7 +- .../registry/JCRComponentRegistry.java | 3 +- .../workflow-model/workflow-model-core/pom.xml | 8 +- .../component/system/SubWorkflowComponent.java | 4 +- .../component/url/URLComponentRegistry.java | 12 +- .../component/ws/WSComponentApplication.java | 2 +- .../model/component/ws/WSComponentFactory.java | 8 +- .../model/component/ws/WSComponentRegistry.java | 32 +- .../model/component/ws/WorkflowComponent.java | 108 +- .../airavata/workflow/model/gpel/DSCUtil.java | 140 +- .../workflow/model/gpel/script/BPELScript.java | 1276 +- .../model/gpel/script/WorkflowWSDL.java | 528 +- .../model/graph/system/StreamSourceNode.java | 7 +- .../workflow/model/ode/ODEBPELTransformer.java | 1260 +- .../airavata/workflow/model/ode/ODEClient.java | 200 +- .../model/ode/ODEDeploymentDescriptor.java | 368 +- .../workflow/model/ode/ODEWSDLTransformer.java | 872 +- .../workflow/model/ode/WSDLCleaner.java | 196 +- .../workflow/model/wf/TridentTransformer.java | 50 +- .../airavata/workflow/model/wf/Workflow.java | 542 +- modules/xbaya-gui/pom.xml | 5 + .../xbaya/core/generators/BPELFiler.java | 38 +- .../xbaya/core/generators/ODEScriptFiler.java | 68 +- .../xbaya/invoker/factory/InvokerFactory.java | 16 +- .../graph/dynamic/DynamicNodeWindow.java | 72 +- .../dialogs/workflow/WorkflowImportWindow.java | 3 +- .../ui/experiment/LaunchApplicationWindow.java | 8 +- .../RegistryWorkflowPublisherWindow.java | 3 +- .../WorkflowInterpreterLaunchWindow.java | 9 +- pom.xml | 6 +- tools/gsissh/pom.xml | 8 +- .../java/com/jcraft/jsch/ExtendedSession.java | 2 - .../illinois/ncsa/BCGSS/BCGSSContextImpl.java | 2894 +- .../illinois/ncsa/BCGSS/CircularByteBuffer.java | 1648 +- .../ncsa/BCGSS/GlobusTlsCipherFactory.java | 126 +- .../illinois/ncsa/BCGSS/GlobusTlsClient.java | 494 +- .../edu/illinois/ncsa/BCGSS/TlsHandlerUtil.java | 564 +- .../apache/airavata/gsi/ssh/GSSContextX509.java | 43 +- .../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 | 233 +- .../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 + .../apache/airavata/gsi/ssh/util/SSHUtils.java | 4 +- .../gsissh/src/main/resources/LSFTemplate.xslt | 93 + .../main/resources/schemas/PBSJobDescriptor.xsd | 3 +- .../impl/DefaultSSHApiTestWithMyProxyAuth.java | 32 +- .../gsi/ssh/impl/VanilaTestWithSSHAuth.java | 90 +- tools/registry-tool/README | 2 +- 444 files changed, 91302 insertions(+), 58080 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/0db33d2e/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/0db33d2e/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 dd8686d,ed141b9..812f6c4 --- 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,17 @@@ 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_a8fc8511-7b8e-431a-ad0f-de5eb1a9c576"; ++ + private static String echoAppId = "Echo_61988d1f-7ca9-47ba-9212-a0ac2e973cf1"; 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_42124128-628b-484c-829d-aff8b584eb00"; + 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,11 -95,75 +96,76 @@@ 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 < 100; i++) { + for (int i = 0; i < 1; i++) { // final String expId = createExperimentForSSHHost(airavata); // final String expId = createEchoExperimentForFSD(airavataClient); // final String expId = createMPIExperimentForFSD(airavataClient); http://git-wip-us.apache.org/repos/asf/airavata/blob/0db33d2e/modules/configuration/server/src/main/resources/airavata-server.properties ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/0db33d2e/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..fe4de5d 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,241 @@@ + # + # + # 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 protected] + + ########################################################################### + # 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 ++enactment.thread.pool.size=10 ++ ++#to define custom workflow parser user following property ++#workflow.parser=org.apache.airavata.simple.workflow.engine.parser.AiravataWorkflowParser + + + ########################################################################### + # 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/0db33d2e/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 1c0f095,4973a41..2fc3f16 --- 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.common.utils.ThriftUtils; 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/0db33d2e/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/0db33d2e/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/0db33d2e/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 c1bdc3d,53d08d3..3f876ae --- 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 @@@ -55,12 -56,16 +56,16 @@@ public class RabbitMQListener 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() { http://git-wip-us.apache.org/repos/asf/airavata/blob/0db33d2e/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java ---------------------------------------------------------------------- diff --cc modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java index a149037,0000000..2ba7a19 mode 100644,000000..100644 --- a/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java +++ b/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/impl/RabbitMQStatusPublisher.java @@@ -1,107 -1,0 +1,106 @@@ +/* + * + * 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.core.impl; + +import org.apache.airavata.common.exception.AiravataException; +import org.apache.airavata.common.exception.ApplicationSettingsException; +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.MessagingConstants; +import org.apache.airavata.messaging.core.Publisher; - import org.apache.airavata.messaging.core.stats.StatCounter; +import org.apache.airavata.model.messaging.event.*; +import org.apache.thrift.TException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class RabbitMQStatusPublisher implements Publisher { + + private static Logger log = LoggerFactory.getLogger(RabbitMQStatusPublisher.class); + + private RabbitMQProducer rabbitMQProducer; + - StatCounter statCounter = StatCounter.getInstance(); ++// StatCounter statCounter = StatCounter.getInstance(); + + public RabbitMQStatusPublisher() throws Exception { + String brokerUrl; + String exchangeName; + try { + brokerUrl = ServerSettings.getSetting(MessagingConstants.RABBITMQ_BROKER_URL); + exchangeName = ServerSettings.getSetting(MessagingConstants.RABBITMQ_STATUS_EXCHANGE_NAME); + } catch (ApplicationSettingsException e) { + String message = "Failed to get read the required properties from airavata to initialize rabbitmq"; + log.error(message, e); + throw new AiravataException(message, e); + } + rabbitMQProducer = new RabbitMQProducer(brokerUrl, exchangeName); + rabbitMQProducer.open(); + } + + public void publish(MessageContext msgCtx) throws AiravataException { + try { + log.info("Publishing status to rabbitmq..."); + byte[] body = ThriftUtils.serializeThriftObject(msgCtx.getEvent()); + Message message = new Message(); + message.setEvent(body); + message.setMessageId(msgCtx.getMessageId()); + message.setMessageType(msgCtx.getType()); + message.setUpdatedTime(msgCtx.getUpdatedTime().getTime()); + String gatewayId = msgCtx.getGatewayId(); + String routingKey = null; + if (msgCtx.getType() == MessageType.EXPERIMENT) { + ExperimentStatusChangeEvent event = (ExperimentStatusChangeEvent) msgCtx.getEvent(); + routingKey = gatewayId + "." + event.getExperimentId(); + } else if (msgCtx.getType() == MessageType.TASK) { + TaskStatusChangeEvent event = (TaskStatusChangeEvent) msgCtx.getEvent(); + routingKey = gatewayId + "." + event.getTaskIdentity().getExperimentId() + "." + + event.getTaskIdentity().getWorkflowNodeId() + "." + event.getTaskIdentity().getTaskId(); + } else if (msgCtx.getType() == MessageType.TASKOUTPUT) { + TaskOutputChangeEvent event = (TaskOutputChangeEvent) msgCtx.getEvent(); + routingKey = gatewayId + "." + event.getTaskIdentity().getExperimentId() + "." + + event.getTaskIdentity().getWorkflowNodeId() + "." + event.getTaskIdentity().getTaskId(); + } else if (msgCtx.getType() == MessageType.WORKFLOWNODE) { + WorkflowNodeStatusChangeEvent event = (WorkflowNodeStatusChangeEvent) msgCtx.getEvent(); + WorkflowIdentifier workflowNodeIdentity = event.getWorkflowNodeIdentity(); + routingKey = gatewayId + "." + workflowNodeIdentity.getExperimentId() + "." + workflowNodeIdentity.getWorkflowNodeId(); + } else if (msgCtx.getType() == MessageType.JOB) { + JobStatusChangeEvent event = (JobStatusChangeEvent) msgCtx.getEvent(); + JobIdentifier identity = event.getJobIdentity(); + routingKey = gatewayId + "." + identity.getExperimentId() + "." + + identity.getWorkflowNodeId() + "." + + identity.getTaskId() + "." + + identity.getJobId(); + } + byte[] messageBody = ThriftUtils.serializeThriftObject(message); + rabbitMQProducer.send(messageBody, routingKey); - statCounter.add(); ++// statCounter.add(message); + } catch (TException e) { + String msg = "Error while deserializing the object"; + log.error(msg, e); + throw new AiravataException(msg, e); + } catch (Exception e) { + String msg = "Error while sending to rabbitmq"; + log.error(msg, e); + throw new AiravataException(msg, e); + } + } +} http://git-wip-us.apache.org/repos/asf/airavata/blob/0db33d2e/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/stats/CountWriterTask.java ---------------------------------------------------------------------- diff --cc modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/stats/CountWriterTask.java index 0000000,286e059..5261512 mode 000000,100644..100644 --- a/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/stats/CountWriterTask.java +++ b/modules/messaging/core/src/main/java/org/apache/airavata/messaging/core/stats/CountWriterTask.java @@@ -1,0 -1,36 +1,35 @@@ + package org.apache.airavata.messaging.core.stats; + + import java.io.*; + import java.util.List; + import java.util.TimerTask; + + public class CountWriterTask extends TimerTask { + + private File file; + private FileOutputStream fos; + private BufferedWriter bw; + + public void setFile(File file) { + this.file = file; + + } + + @Override + public void run() { + try { - System.out.println("########### calling Write Task ############"); + StatCounter statCounter = StatCounter.getInstance(); + List<Long> contPer10S = statCounter.getMessageContPer10S(); + fos = new FileOutputStream(file, false); + bw = new BufferedWriter(new OutputStreamWriter(fos)); + for (int i = 0; i < contPer10S.size(); i++) { + bw.write(String.valueOf(i+1) + " :" + String.valueOf(contPer10S.get(i))); + bw.newLine(); + } + bw.flush(); + } catch (IOException e) { + e.printStackTrace(); + } + + } + } http://git-wip-us.apache.org/repos/asf/airavata/blob/0db33d2e/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java ---------------------------------------------------------------------- diff --cc modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java index 3425a4f,7e7a8ba..2eece65 --- a/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java +++ b/modules/xbaya-gui/src/main/java/org/apache/airavata/xbaya/ui/experiment/WorkflowInterpreterLaunchWindow.java @@@ -360,24 -355,9 +362,25 @@@ public class WorkflowInterpreterLaunchW }else { throw new RuntimeException("Resource scheduling failed, target computer resource host name is not defined"); } +/* +// code snippet for load test. + for (int i = 0; i < 20; i++) { + experiment.setName(instanceName + "_" + i); + + experiment.setExperimentID(airavataClient.createExperiment(experiment)); + + try { + this.engine.getMonitor().subscribe(experiment.getExperimentID()); + this.engine.getMonitor().fireStartMonitoring(workflow.getName()); + } catch (MonitorException e) { + logger.error("Error while subscribing with experiment Id : " + experiment.getExperimentID(), e); + } + airavataClient.launchExperiment(experiment.getExperimentID(), "testToken"); + + }*/ - experiment.setExperimentID(airavataClient.createExperiment(experiment)); + //FIXME:: use gatewayId from UI + experiment.setExperimentID(airavataClient.createExperiment("default", experiment)); try { this.engine.getMonitor().subscribe(experiment.getExperimentID()); http://git-wip-us.apache.org/repos/asf/airavata/blob/0db33d2e/pom.xml ----------------------------------------------------------------------
