Implementing cluster status monitoring
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/914799c1 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/914799c1 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/914799c1 Branch: refs/heads/develop Commit: 914799c13c228342908cb542f2d0ed109ad918d2 Parents: b5d7796 Author: scnakandala <[email protected]> Authored: Tue Nov 8 13:32:19 2016 -0500 Committer: scnakandala <[email protected]> Committed: Tue Nov 8 13:32:19 2016 -0500 ---------------------------------------------------------------------- .../server/handler/AiravataServerHandler.java | 14 + .../java/org/apache/airavata/api/Airavata.java | 41301 +++++++++-------- .../main/resources/lib/airavata/Airavata.cpp | 1010 +- .../src/main/resources/lib/airavata/Airavata.h | 152 + .../lib/airavata/Airavata_server.skeleton.cpp | 5 + .../airavata/compute_resource_model_types.cpp | 257 +- .../lib/airavata/compute_resource_model_types.h | 10 +- .../lib/airavata/status_models_types.cpp | 201 + .../lib/airavata/status_models_types.h | 67 + .../resources/lib/Airavata/API/Airavata.php | 465 +- .../Model/AppCatalog/ComputeResource/Types.php | 45 +- .../lib/Airavata/Model/Status/Types.php | 190 + .../lib/apache/airavata/api/Airavata-remote | 7 + .../lib/apache/airavata/api/Airavata.py | 347 +- .../model/appcatalog/computeresource/ttypes.py | 42 +- .../lib/apache/airavata/model/status/ttypes.py | 142 + .../computeresource/CloudJobSubmission.java | 145 +- .../computeresource/ResourceJobManagerType.java | 5 +- modules/cluster-monitoring/pom.xml | 31 +- .../monitoring/ClusterHealthMonitor.java | 265 - .../monitoring/ClusterStatusMonitorJob.java | 279 + .../ClusterStatusMonitorJobScheduler.java | 70 + .../src/main/resources/cluster-properties.json | 53 - .../src/main/resources/id_rsa | 30 - .../src/main/resources/id_rsa.pub | 1 - .../common/utils/ApplicationSettings.java | 8 + .../src/main/resources/CLOUD_Groovy.template | 7 - .../main/resources/airavata-server.properties | 5 + .../server/src/main/resources/gfac-config.yaml | 2 - .../store/cpi/CredentialStoreService.java | 2 +- .../store/datamodel/CertificateCredential.java | 27 +- .../store/datamodel/CommunityUser.java | 26 +- .../store/datamodel/PasswordCredential.java | 27 +- .../store/datamodel/SSHCredential.java | 27 +- .../store/datamodel/SSHCredentialSummary.java | 27 +- .../exception/CredentialStoreException.java | 2 +- .../src/main/assembly/bin-assembly.xml | 1 - .../apache/airavata/gfac/cpi/GfacService.java | 2 +- .../apache/airavata/gfac/core/GFacUtils.java | 301 +- .../apache/airavata/gfac/core/GroovyMap.java | 9 - .../org/apache/airavata/gfac/impl/Factory.java | 13 +- .../gfac/impl/task/AuroraJobSubmission.java | 148 + .../gfac/impl/task/AuroraJobSubmissionTask.java | 147 - .../impl/task/DefaultJobSubmissionTask.java | 14 +- .../orchestrator/cpi/OrchestratorService.java | 30 +- .../orchestrator/orchestrator-service/pom.xml | 5 + .../orchestrator/server/OrchestratorServer.java | 17 +- .../core/experiment/catalog/ResourceType.java | 3 +- .../catalog/impl/ExperimentCatalogImpl.java | 20 +- .../catalog/impl/ExperimentRegistry.java | 33 + .../experiment/catalog/model/QueueStatus.java | 99 + .../experiment/catalog/model/QueueStatusPK.java | 88 + .../catalog/resources/QueueStatusResource.java | 208 + .../src/main/resources/META-INF/persistence.xml | 1 + .../src/main/resources/expcatalog-derby.sql | 10 + .../src/main/resources/expcatalog-mysql.sql | 9 + .../catalog/QueueStatusResourceTest.java | 76 + .../registry/cpi/ExpCatParentDataType.java | 3 +- .../cpi/ExperimentCatalogModelType.java | 3 +- .../service/handler/RegistryServerHandler.java | 42 +- .../airavata/registry/api/RegistryService.java | 5531 ++- .../api/exception/RegistryServiceException.java | 2 +- modules/sharing-registry/pom.xml | 12 +- .../sharing-data-migrator/pom.xml | 7 +- .../sharing-registry-distribution/pom.xml | 14 +- .../sharing-registry-server/pom.xml | 11 +- .../sharing-registry-stubs/pom.xml | 5 +- .../airavata-apis/airavata_api.thrift | 5 + .../component-cpis/registry-api.thrift | 8 + .../status_models.thrift | 9 + .../compute_resource_model.thrift | 12 +- 71 files changed, 28902 insertions(+), 23290 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/914799c1/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java ---------------------------------------------------------------------- diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java index 6c6c07f..0f56747 100644 --- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java +++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java @@ -73,6 +73,7 @@ import org.apache.airavata.model.security.AuthzToken; import org.apache.airavata.model.status.ExperimentState; import org.apache.airavata.model.status.ExperimentStatus; import org.apache.airavata.model.status.JobStatus; +import org.apache.airavata.model.status.QueueStatusModel; import org.apache.airavata.model.workspace.Gateway; import org.apache.airavata.model.workspace.Notification; import org.apache.airavata.model.workspace.Project; @@ -3684,6 +3685,19 @@ public class AiravataServerHandler implements Airavata.Iface { } @Override + public List<QueueStatusModel> getLatestQueueStatuses(AuthzToken authzToken) throws InvalidRequestException, AiravataClientException, AiravataSystemException, AuthorizationException, TException { + try { + return getRegistryServiceClient().getLatestQueueStatuses(); + } catch (ApplicationSettingsException | RegistryServiceException e) { + String msg = "Error in retrieving queue statuses"; + logger.error(msg, e); + AiravataSystemException exception = new AiravataSystemException(AiravataErrorType.INTERNAL_ERROR); + exception.setMessage(msg+" More info : " + e.getMessage()); + throw exception; + } + } + + @Override @SecurityCheck public WorkflowModel getWorkflow(AuthzToken authzToken, String workflowTemplateId) throws InvalidRequestException, AiravataClientException, AuthorizationException, AiravataSystemException, TException {
