diff --git a/.gitignore b/.gitignore index 3e19d06..188fd28 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ __pycache__/ .nox/ **/.gradle +**/config/appplication.yml +**/build diff --git a/exn-middleware-core/Dockerfile b/exn-middleware-core/Dockerfile index a4f8558..b462200 100644 --- a/exn-middleware-core/Dockerfile +++ b/exn-middleware-core/Dockerfile @@ -29,7 +29,8 @@ WORKDIR /app COPY --from=builder /app/target/exn-middleware-core-0.0.1-SNAPSHOT.jar ./exn-middleware-core-0.0.1-SNAPSHOT.jar #Copy application configuration -COPY config ./ +RUN mkdir config +COPY config/application-production.yml ./config/application.yml #Run java app on container start CMD ["java", "-jar", "exn-middleware-core-0.0.1-SNAPSHOT.jar"] diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/ExnMiddlewareApplication.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/ExnMiddlewareApplication.class deleted file mode 100644 index 9758804..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/ExnMiddlewareApplication.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/AppConfig.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/AppConfig.class deleted file mode 100644 index c1d07d8..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/AppConfig.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/RestTemplateConf.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/RestTemplateConf.class deleted file mode 100644 index 136f2ae..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/RestTemplateConf.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/SalConfiguration.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/SalConfiguration.class deleted file mode 100644 index b7987cd..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/configuration/SalConfiguration.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/config/ConfigureEXNConnector.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/config/ConfigureEXNConnector.class deleted file mode 100644 index 6b4c73a..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/config/ConfigureEXNConnector.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/consumers/StringConsumer.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/consumers/StringConsumer.class deleted file mode 100644 index 78c404e..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/consumers/StringConsumer.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/handlers/connection/EXNConnectorHandler.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/handlers/connection/EXNConnectorHandler.class deleted file mode 100644 index a263d4f..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/handlers/connection/EXNConnectorHandler.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/handlers/consumer/AMQPSalMessageHandler.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/handlers/consumer/AMQPSalMessageHandler.class deleted file mode 100644 index f00b3d3..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/handlers/consumer/AMQPSalMessageHandler.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/publishers/PropertiesPublisher$_send_closure1.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/publishers/PropertiesPublisher$_send_closure1.class deleted file mode 100644 index 6bebbaf..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/publishers/PropertiesPublisher$_send_closure1.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/publishers/PropertiesPublisher.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/publishers/PropertiesPublisher.class deleted file mode 100644 index 9bd1da5..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/middleware/publishers/PropertiesPublisher.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/base/Credentials.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/base/Credentials.class deleted file mode 100644 index af0300b..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/base/Credentials.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/cloud/Cloud.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/cloud/Cloud.class deleted file mode 100644 index 9444160..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/cloud/Cloud.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeAttributeRequirement.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeAttributeRequirement.class deleted file mode 100644 index aee18b7..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeAttributeRequirement.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeCandidateRequest.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeCandidateRequest.class deleted file mode 100644 index 4926825..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeCandidateRequest.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeRequirement.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeRequirement.class deleted file mode 100644 index 6cb0a7c..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeRequirement.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeTypeRequirement.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeTypeRequirement.class deleted file mode 100644 index de44298..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/model/nodecandidate/NodeTypeRequirement.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/AbstractProcessor.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/AbstractProcessor.class deleted file mode 100644 index 01ad6f3..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/AbstractProcessor.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/Processor.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/Processor.class deleted file mode 100644 index 2749c0e..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/Processor.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_delete_closure3.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_delete_closure3.class deleted file mode 100644 index d3e933a..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_delete_closure3.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_get_closure2.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_get_closure2.class deleted file mode 100644 index 32cc0f4..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_get_closure2.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_post_closure1.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_post_closure1.class deleted file mode 100644 index d2083e3..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor$_post_closure1.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor.class deleted file mode 100644 index c0ddc40..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_delete_closure3.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_delete_closure3.class deleted file mode 100644 index 6ed616a..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_delete_closure3.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_get_closure2.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_get_closure2.class deleted file mode 100644 index 659face..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_get_closure2.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_post_closure1.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_post_closure1.class deleted file mode 100644 index 3f7dc7d..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_post_closure1.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_update_closure4.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_update_closure4.class deleted file mode 100644 index b6deaf8..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor$_update_closure4.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor.class deleted file mode 100644 index 7d45463..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NoOpProcessor.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NoOpProcessor.class deleted file mode 100644 index 1fe93f4..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NoOpProcessor.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeCandidateProcessor.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeCandidateProcessor.class deleted file mode 100644 index 686d79f..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeCandidateProcessor.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_delete_closure3.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_delete_closure3.class deleted file mode 100644 index dec9e10..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_delete_closure3.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_get_closure2.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_get_closure2.class deleted file mode 100644 index a0abcd3..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_get_closure2.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_post_closure1.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_post_closure1.class deleted file mode 100644 index 9f2c061..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_post_closure1.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_update_closure4.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_update_closure4.class deleted file mode 100644 index 770998f..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor$_update_closure4.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor.class deleted file mode 100644 index f7093de..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/AbstractSalRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/AbstractSalRepository.class deleted file mode 100644 index 88754d8..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/AbstractSalRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/GatewayRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/GatewayRepository.class deleted file mode 100644 index 9aedffc..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/GatewayRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/cloud/CloudRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/cloud/CloudRepository.class deleted file mode 100644 index 71889a7..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/cloud/CloudRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/JobRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/JobRepository.class deleted file mode 100644 index c896829..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/JobRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/IJobDeleteStrategy.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/IJobDeleteStrategy.class deleted file mode 100644 index 5e44111..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/IJobDeleteStrategy.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobDeleteStrategy.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobDeleteStrategy.class deleted file mode 100644 index 64b614d..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobDeleteStrategy.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobKillStrategy.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobKillStrategy.class deleted file mode 100644 index 6349724..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobKillStrategy.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobStopStrategy.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobStopStrategy.class deleted file mode 100644 index 7373ac0..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/job/deleteStrategies/JobStopStrategy.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/AbstractNodeRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/AbstractNodeRepository.class deleted file mode 100644 index e394722..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/AbstractNodeRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/ByonNodeRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/ByonNodeRepository.class deleted file mode 100644 index 90a6a12..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/ByonNodeRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/CloudNodeRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/CloudNodeRepository.class deleted file mode 100644 index 413e940..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/CloudNodeRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/EdgeNodeRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/EdgeNodeRepository.class deleted file mode 100644 index 51038f6..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/EdgeNodeRepository.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/NodeRegistrar.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/NodeRegistrar.class deleted file mode 100644 index 2807a41..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/node/NodeRegistrar.class and /dev/null differ diff --git a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/nodecandidate/NodeCandidateRepository.class b/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/nodecandidate/NodeCandidateRepository.class deleted file mode 100644 index 576f1a1..0000000 Binary files a/exn-middleware-core/build/classes/groovy/main/eu/nebulouscloud/exn/modules/sal/repository/nodecandidate/NodeCandidateRepository.class and /dev/null differ diff --git a/exn-middleware-core/config/application-production.yml b/exn-middleware-core/config/application-production.yml new file mode 100644 index 0000000..5fd1af6 --- /dev/null +++ b/exn-middleware-core/config/application-production.yml @@ -0,0 +1,27 @@ +logging: + level: + eu.nebulouscloud.exn: TRACE + +spring: + profiles: default + main: + web-application-type: none + jms: + pub-sub-domain: true + +application: + exn: + config: + url: 'nebulous-activemq' + port: '5672' + username: 'admin' + password: 'admin' + sal: + protocol: 'http' + host: 'sal' + port: '8080' + api: 'sal' + username: 'admin' + password: 'admin' + jms: + topic: 'eu.nebulouscloud' \ No newline at end of file diff --git a/exn-middleware-core/config/application.yml b/exn-middleware-core/config/application.yml index 5fd1af6..b31f5b3 100644 --- a/exn-middleware-core/config/application.yml +++ b/exn-middleware-core/config/application.yml @@ -12,7 +12,8 @@ spring: application: exn: config: - url: 'nebulous-activemq' +# url: 'nebulous-activemq' + url: 'localhost' port: '5672' username: 'admin' password: 'admin' diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/middleware/config/ConfigureEXNConnector.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/middleware/config/ConfigureEXNConnector.groovy index e5eb87b..e7f67ce 100644 --- a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/middleware/config/ConfigureEXNConnector.groovy +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/middleware/config/ConfigureEXNConnector.groovy @@ -29,25 +29,37 @@ class ConfigureEXNConnector { "exn.sal", new EXNConnectorHandler(), [ - new Publisher("cloud.post","cloud.post.reply",true,false), + new Publisher("cloud.create","cloud.create.reply",true,false), new Publisher("cloud.get","cloud.get.reply",true,false), new Publisher("cloud.delete","cloud.delete.reply",true,false), - new Publisher("nodecandidate.post","nodecandidate.post.reply",true,false), + new Publisher("nodecandidate.rank","nodecandidate.rank.reply",true,false), new Publisher("nodecandidate.get","nodecandidate.get.reply",true,false), - new Publisher("node.post","node.post.reply",true,false), - new Publisher("node.update","node.update.reply",true,false), + new Publisher("node.create","node.create.reply",true,false), + new Publisher("node.assign","node.assign.reply",true,false), new Publisher("node.get","node.get.reply",true,false), new Publisher("node.delete","node.delete.reply",true,false), new Publisher("job.get","job.get.reply",true,false), - new Publisher("job.update","job.update.reply",true,false), - new Publisher("job.post","job.post.reply",true,false), - new Publisher("job.delete","job.delete.reply",true,false) + new Publisher("job.submit","job.submit.reply",true,false), + new Publisher("job.create","job.create.reply",true,false), + new Publisher("job.delete","job.delete.reply",true,false), + new Publisher("job.kill","job.kill.reply",true,false), + new Publisher("job.stop","job.stop.reply",true,false), + new Publisher("scale.in","scale.in.reply",true,false), + new Publisher("scale.out","scale.out.reply",true,false), + new Publisher("cluster.get","cluster.get.reply",true,false), + new Publisher("cluster.define","cluster.define.reply",true,false), + new Publisher("cluster.deploy","cluster.deploy.reply",true,false), + new Publisher("cluster.deployApplication","cluster.deployApplication.reply",true,false), + new Publisher("cluster.scaleout","cluster.scaleout.reply",true,false), + new Publisher("cluster.scalein","cluster.scalein.reply",true,false) ], [ new Consumer("cloud","cloud.>", amqpSalMessageHandler,true,false), new Consumer("nodecandidate","nodecandidate.>", amqpSalMessageHandler,true,false), new Consumer("node","node.>", amqpSalMessageHandler,true,false), - new Consumer("job","job.>", amqpSalMessageHandler,true,false) + new Consumer("job","job.>", amqpSalMessageHandler,true,false), + new Consumer("scale","scale.>", amqpSalMessageHandler,true,false), + new Consumer("cluster","cluster.>", amqpSalMessageHandler,true,false) ], false, false, diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/AbstractProcessor.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/AbstractProcessor.groovy index 7786cda..167623f 100644 --- a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/AbstractProcessor.groovy +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/AbstractProcessor.groovy @@ -1,6 +1,7 @@ package eu.nebulouscloud.exn.modules.sal.processors import com.fasterxml.jackson.databind.ObjectMapper +import eu.nebulouscloud.exn.modules.sal.service.ActionResolveService import org.apache.commons.lang3.StringUtils import org.apache.qpid.protonj2.client.impl.ClientMessage import org.slf4j.Logger @@ -23,6 +24,9 @@ abstract class AbstractProcessor implements Processor { @Autowired ObjectMapper mapper + @Autowired + ActionResolveService resolveService + @Override Map process(String destination, ClientMessage message) { @@ -37,6 +41,8 @@ abstract class AbstractProcessor implements Processor { logger.debug("[{}] Processing {}", metaData, o) String method = destination.substring(destination.lastIndexOf(".") + 1) + + method = resolveService.resolve(method,metaData) try { switch (method) { @@ -52,8 +58,12 @@ abstract class AbstractProcessor implements Processor { case 'delete': ret = delete(metaData, o) break; + case 'create': + ret = create(metaData,o) + break default: - ret = post(metaData,o) + ret.status = HttpStatus.NOT_ACCEPTABLE + ret.body = ["key": "gateway-server-exception-error", "message": 'Action '+method+' not supported'] } } catch (HttpClientErrorException e) { @@ -84,7 +94,7 @@ abstract class AbstractProcessor implements Processor { } - Map post(Map metaData, String body) { return noop(metaData, body) } + Map create(Map metaData, String body) { return noop(metaData, body) } Map search(Map metaData, String body) { return noop(metaData, body) } @@ -98,4 +108,18 @@ abstract class AbstractProcessor implements Processor { return ["status": HttpStatus.ACCEPTED.value(), "body": metaData?.user + " { " + body + "}"] } + protected def normalizeResponse(def response){ + + if(response instanceof Boolean){ + return ["success":response] + } + + if(response instanceof Number){ + return ["success":response ==0] + } + + return response + + } + } diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor.groovy index 59fad02..7016293 100644 --- a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor.groovy +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/CloudProcessor.groovy @@ -24,7 +24,7 @@ class CloudProcessor extends AbstractProcessor{ SalConfiguration salConfiguration @Override - Map post(Map metaData, String o){ + Map create(Map metaData, String o){ def ret =[ "status": HttpStatus.OK.value(), @@ -48,7 +48,7 @@ class CloudProcessor extends AbstractProcessor{ return [ "status": HttpStatus.OK.value(), - "body": ["success": response == 0] + "body": normalizeResponse(response) ] } @@ -103,7 +103,7 @@ class CloudProcessor extends AbstractProcessor{ return [ "status": HttpStatus.OK.value(), - "body": ["success":response] + "body": normalizeResponse(response) ] } diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/ClusterProcessor.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/ClusterProcessor.groovy new file mode 100644 index 0000000..0869b04 --- /dev/null +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/ClusterProcessor.groovy @@ -0,0 +1,86 @@ +package eu.nebulouscloud.exn.modules.sal.processors.impl + +import eu.nebulouscloud.exn.modules.sal.configuration.SalConfiguration +import eu.nebulouscloud.exn.modules.sal.processors.AbstractProcessor +import eu.nebulouscloud.exn.modules.sal.repository.GatewayRepository +import eu.nebulouscloud.exn.modules.sal.repository.cloud.CloudRepository +import eu.nebulouscloud.exn.modules.sal.repository.cluster.ClusterRepository +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.http.HttpHeaders +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.stereotype.Service + +@Service +class ClusterProcessor extends AbstractProcessor{ + + @Autowired + ClusterRepository clusterRepository + + @Autowired + GatewayRepository gatewayRepository + + @Autowired + SalConfiguration salConfiguration + + @Override + Map get(Map metaData, String o) { + + logger.info('{} - Getting cluster {}',metaData.user, metaData.cluster) + + String sessionId = gatewayRepository.login(salConfiguration.username,salConfiguration.password) + + HttpHeaders headers = new HttpHeaders() + headers.add('sessionid',sessionId) + + def response = clusterRepository.getById(metaData.clusterName as String,headers) + + return [ + "status": HttpStatus.OK.value(), + "body": normalizeResponse(response) + ] + + } + + @Override + Map create(Map metaData, String o){ + + logger.info('{} - Posting cluster action {} with body {}',metaData?.user, metaData.action ,o) + + String sessionId = gatewayRepository.login(salConfiguration.username,salConfiguration.password) + + HttpHeaders headers = new HttpHeaders() + headers.add('sessionid',sessionId) + headers.setContentType(MediaType.APPLICATION_JSON) + + def response = clusterRepository.postAction(o,metaData.action as String,headers,Object.class) + + logger.info('Got response {}',response) + return [ + "status": HttpStatus.OK.value(), + "body": normalizeResponse(response) + ] + + } + + @Override + Map update(Map metaData, String o) { + + logger.info('{} - Scaling cluster with body {}',metaData?.user, o) + + String sessionId = gatewayRepository.login(salConfiguration.username,salConfiguration.password) + + HttpHeaders headers = new HttpHeaders() + headers.add('sessionid',sessionId) + + def response = clusterRepository.scale(o,metaData.action as String,headers, Object.class) + + logger.info('Got response {}',response) + return [ + "status": HttpStatus.OK.value(), + "body": normalizeResponse(response) + ] + + } + +} diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor.groovy index 38b816d..8b745bf 100644 --- a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor.groovy +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/JobProcessor.groovy @@ -28,7 +28,7 @@ class JobProcessor extends AbstractProcessor{ Map deleteStrategies @Override - Map post(Map metaData, String o){ + Map create(Map metaData, String o){ def ret =[ "status": HttpStatus.OK.value(), @@ -52,7 +52,7 @@ class JobProcessor extends AbstractProcessor{ return [ "status": HttpStatus.OK.value(), - "body": ["success":response] + "body": normalizeResponse(response) ] } @@ -60,12 +60,7 @@ class JobProcessor extends AbstractProcessor{ @Override Map get(Map metaData, String o) { - def ret =[ - "status": HttpStatus.OK.value(), - "body": {} - ] - - logger.info('{} - Getting clouds {}',metaData?.user, o) + logger.info('{} - Getting jobs {}',metaData?.user, o) //User Credentials for connecting to ProActive Server. //SAL is a REST interface to PWS. Get it from UI or store behind the scenes ? @@ -85,7 +80,7 @@ class JobProcessor extends AbstractProcessor{ return [ "status": HttpStatus.OK.value(), - "body": response + "body": normalizeResponse(response) ] } @@ -93,11 +88,6 @@ class JobProcessor extends AbstractProcessor{ @Override Map delete(Map metaData, String o) { - def ret =[ - "status": HttpStatus.OK.value(), - "body": {} - ] - String jobId = metaData.jobId String action = metaData.action @@ -155,7 +145,7 @@ class JobProcessor extends AbstractProcessor{ return [ "status": HttpStatus.OK.value(), - "body": response + "body": normalizeResponse(response) ] } diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeCandidateProcessor.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeCandidateProcessor.groovy index 7617f6b..47a3ae2 100644 --- a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeCandidateProcessor.groovy +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeCandidateProcessor.groovy @@ -40,7 +40,6 @@ class NodeCandidateProcessor extends AbstractProcessor{ headers.add('sessionid',sessionId) headers.setContentType(MediaType.APPLICATION_JSON) - //Check jobId mentioned above List response = nodeCandidateRepository.findCandidates(o,headers,List.class) return [ @@ -51,7 +50,7 @@ class NodeCandidateProcessor extends AbstractProcessor{ } @Override - Map post(Map metaData, String o) { + Map update(Map metaData, String o) { logger.info('{} - Ranking node candidates {}',metaData?.user, o) @@ -61,12 +60,11 @@ class NodeCandidateProcessor extends AbstractProcessor{ headers.add('sessionid',sessionId) headers.setContentType(MediaType.APPLICATION_JSON) - //Check jobId mentioned above - List response = nodeCandidateRepository.rankCandidates(o,headers,Object.class) + def response = nodeCandidateRepository.rankCandidates(o,headers,Object.class) return [ "status": HttpStatus.OK.value(), - "body": response + "body": normalizeResponse(response) ] } diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor.groovy index 61b9336..f6203bf 100644 --- a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor.groovy +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/NodeProcessor.groovy @@ -23,7 +23,7 @@ class NodeProcessor extends AbstractProcessor{ Map nodeRegistrarMap @Override - Map post(Map metaData, String o){ + Map create(Map metaData, String o){ def ret =[ "status": HttpStatus.OK.value(), @@ -53,7 +53,7 @@ class NodeProcessor extends AbstractProcessor{ return [ "status": HttpStatus.OK.value(), - "body": ["success": response == 0] + "body": normalizeResponse(response) ] } @@ -127,7 +127,7 @@ class NodeProcessor extends AbstractProcessor{ return [ "status": HttpStatus.OK.value(), - "body": response + "body": normalizeResponse(response) ] } diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/ScaleProcessor.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/ScaleProcessor.groovy new file mode 100644 index 0000000..7c9360e --- /dev/null +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/processors/impl/ScaleProcessor.groovy @@ -0,0 +1,57 @@ +package eu.nebulouscloud.exn.modules.sal.processors.impl + +import eu.nebulouscloud.exn.modules.sal.configuration.SalConfiguration +import eu.nebulouscloud.exn.modules.sal.processors.AbstractProcessor +import eu.nebulouscloud.exn.modules.sal.repository.GatewayRepository +import eu.nebulouscloud.exn.modules.sal.repository.cloud.CloudRepository +import eu.nebulouscloud.exn.modules.sal.repository.scale.ScaleRepository +import org.springframework.beans.factory.annotation.Autowired +import org.springframework.http.HttpHeaders +import org.springframework.http.HttpStatus +import org.springframework.http.MediaType +import org.springframework.stereotype.Service + +@Service +class ScaleProcessor extends AbstractProcessor{ + + @Autowired + ScaleRepository scaleRepository + + @Autowired + GatewayRepository gatewayRepository + + @Autowired + SalConfiguration salConfiguration + + @Override + Map update(Map metaData, String o) { + + logger.info('{} - Scaling job {} with task {} and action {} with body {}',metaData?.user, metaData.jobId, metaData.taskName, o) + + String sessionId = gatewayRepository.login(salConfiguration.username,salConfiguration.password) + + HttpHeaders headers = new HttpHeaders() + headers.add('sessionid',sessionId) + headers.setContentType(MediaType.APPLICATION_JSON) + + String jobId = metaData.jobId + String taskName = metaData.taskName + + if(!jobId || !taskName){ + return [ + "status": HttpStatus.BAD_REQUEST.value(), + "body": ["key":"not-job-or-task-definition","message":"JobId and TaskName cannot be null"] + ] + } + + //Check jobId mentioned above + Object response = scaleRepository.scale(o,jobId,taskName,metaData.action as String,headers, Object.class) + + return [ + "status": HttpStatus.OK.value(), + "body": normalizeResponse(response) + ] + + } + +} diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/repository/cluster/ClusterRepository.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/repository/cluster/ClusterRepository.groovy new file mode 100644 index 0000000..5f02aa7 --- /dev/null +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/repository/cluster/ClusterRepository.groovy @@ -0,0 +1,26 @@ +package eu.nebulouscloud.exn.modules.sal.repository.cluster + +import eu.nebulouscloud.exn.modules.sal.repository.AbstractSalRepository +import org.springframework.http.HttpHeaders +import org.springframework.stereotype.Repository + +@Repository +class ClusterRepository extends AbstractSalRepository{ + + ClusterRepository() { + super('cluster') + } + + private final Map SCALE_ACTION_MAPPING = [ + 'scaleout' : 'out', + 'scalein' : 'in' + ] + + def postAction(String body, String action, HttpHeaders headers, Class responseType){ + post(action,body,headers,responseType) + } + + def scale(String body, String action, HttpHeaders headers, Class responseType){ + post("scale/${SCALE_ACTION_MAPPING[action]}",body,headers,responseType) + } +} diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/repository/scale/ScaleRepository.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/repository/scale/ScaleRepository.groovy new file mode 100644 index 0000000..356d46c --- /dev/null +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/repository/scale/ScaleRepository.groovy @@ -0,0 +1,17 @@ +package eu.nebulouscloud.exn.modules.sal.repository.scale + +import eu.nebulouscloud.exn.modules.sal.repository.AbstractSalRepository +import org.springframework.http.HttpHeaders +import org.springframework.stereotype.Repository + +@Repository +class ScaleRepository extends AbstractSalRepository{ + + ScaleRepository() { + super("scale") + } + + def scale(String body, String jobId, String taskName, String action, HttpHeaders headers, Class responseType){ + post("${jobId}/${taskName}/${action}",body,headers,responseType) + } +} diff --git a/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/service/ActionResolveService.groovy b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/service/ActionResolveService.groovy new file mode 100644 index 0000000..af8e06c --- /dev/null +++ b/exn-middleware-core/src/main/groovy/eu/nebulouscloud/exn/modules/sal/service/ActionResolveService.groovy @@ -0,0 +1,28 @@ +package eu.nebulouscloud.exn.modules.sal.service + +import org.springframework.stereotype.Service + +@Service +class ActionResolveService { + + private final Map,String> ACTION_MAPPING =[ + ['assign','submit','in','out','scaleout','scalein']:'update', + ['define','deploy','deployApplication']:'create', + ['delete','stop','kill'] : 'delete', + ['rank'] : 'update' + ] + + String resolve(String method, Map metaData){ + + String match = ACTION_MAPPING.findResult {k,v -> k.contains(method) ? v : null } + + //If matched then used method is treated as a metadata for the action + //stop: delete -> stop + //create: create -> create + if(match){ + metaData.put('action',method) + } + return match ?: method + + } +}