Commit a5a07d04 authored by Spiros Koulouzis's avatar Spiros Koulouzis

restructure project

parent c7334766
...@@ -34,3 +34,5 @@ ...@@ -34,3 +34,5 @@
/drip/target/ /drip/target/
/drip-manager/target/ /drip-manager/target/
/drip-manager/nbproject/ /drip-manager/nbproject/
/.idea/
/drip-manager/.idea/
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.11.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.11.2" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.28" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.9" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.3.Final" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.24" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.24" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.24" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.9.2" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.28" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.9" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.23" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
<orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.1.10.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.1.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.1.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.1.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.9.16" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.16" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.9.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.9.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
<orderEntry type="library" name="Maven: com.github.joschi.jackson:jackson-datatype-threetenbp:2.6.4" level="project" />
<orderEntry type="library" name="Maven: org.threeten:threetenbp:1.3.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-amqp:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.1.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-rabbit:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-amqp:2.1.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.2.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.rabbitmq:amqp-client:5.4.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: de.flapdoodle.embed:de.flapdoodle.embed.mongo:2.1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: de.flapdoodle.embed:de.flapdoodle.embed.process:2.1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.java.dev.jna:jna:4.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.java.dev.jna:jna-platform:4.5.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.apache.commons:commons-compress:1.18" level="project" />
<orderEntry type="library" name="Maven: nl.uva.sne.drip:drip-commons:3.0.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.1.10.RELEASE" level="project" />
</component>
</module>
\ No newline at end of file
definitions:
Credentials:
type: "object"
properties:
protocol:
type: "string"
token_type:
type: "string"
token:
type: "string"
keys:
type: object
additionalProperties:
type: string
user:
type: "string"
cloud_provider_name:
type: "string"
definitions:
NodeTemplate:
type: "object"
properties:
name:
type: "string"
type:
type: "string"
requirements:
type: "array"
items:
type: object
additionalProperties:
type: object
artifacts:
type: object
additionalProperties:
type: object
properties:
type: object
additionalProperties:
type: object
interfaces:
type: object
additionalProperties:
type: object
capabilities:
type: object
additionalProperties:
type: object
workflows:
type: object
additionalProperties:
type: object
definitions:
TopologyTemplate:
type: "object"
properties:
description:
type: "string"
inputs:
type: "array"
items:
type: object
additionalProperties:
type: object
policies:
type: "array"
items:
type: object
additionalProperties:
type: object
outputs:
type: "array"
items:
type: object
additionalProperties:
type: object
node_templates:
type: object
additionalProperties:
$ref: 'https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/openAPI/TOSCA/NodeTemplate.yml#/NodeTemplate'
relationship_templates:
type: object
additionalProperties:
type: object
groups:
type: object
additionalProperties:
type: object
substitution_mappings:
type: object
additionalProperties:
type: object
definitions:
ToscaTemplate:
type: "object"
properties:
tosca_definitions_version:
type: "string"
tosca_default_namespace:
type: "string"
template_name:
type: "string"
imports:
type: "array"
items:
type: object
additionalProperties:
type: string
repositories:
type: object
additionalProperties:
type: string
dsl_definitions:
type: object
additionalProperties:
type: string
node_types:
type: object
additionalProperties:
type: object
topology_template:
$ref: "https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/openAPI/TOSCA/TopologyTemplate.yml#/TopologyTemplate"
relationship_types:
type: object
additionalProperties:
type: object
relationship_templates:
type: object
additionalProperties:
type: object
capability_types:
type: object
additionalProperties:
type: object
artifact_types:
type: object
additionalProperties:
type: object
data_types:
type: object
additionalProperties:
type: object
interface_types:
type: object
additionalProperties:
type: object
policy_types:
type: object
additionalProperties:
type: string
group_types:
type: object
additionalProperties:
type: object
description:
type: "string"
template_author:
type: "string"
definitions:
User:
type: "object"
properties:
id:
type: "string"
username:
type: "string"
firstName:
type: "string"
lastName:
type: "string"
email:
type: "string"
password:
type: "string"
userStatus:
type: "integer"
format: "int32"
description: "User Status"
swagger: "2.0"
info:
description: "The Dynamic Real-time infrastructure planner (DRIP) allows application developers to seamlessly plan a customized virtual infrastructure based on application level constraints on QoS and resource budgets, provisioning the virtual infrastructure, deploy application components onto the virtual infrastructure, and start execution on demand using TOSCA."
version: "3.0.0"
title: "DRIP"
contact:
email: "z.zhao@uva.nl"
license:
name: "Apache 2.0"
url: "http://www.apache.org/licenses/LICENSE-2.0.html"
basePath: "/drip-api"
schemes:
- "https"
- "http"
paths:
/tosca_template:
post:
summary: "upload a tosca template description file"
description: ""
operationId: "uploadToscaTemplate"
consumes:
- "multipart/form-data"
parameters:
- in: "formData"
name: "file"
type: file
description: "tosca Template description"
required: true
responses:
200:
description: "successful operation"
schema:
type: "string"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
/tosca_template/ids:
get:
summary: "Get all topolog template IDs"
description: "Returns all IDss "
operationId: "getToscaTemplateIDs"
produces:
- "application/json"
responses:
200:
description: "successful operation"
schema:
type: array
items:
type: string
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
/tosca_template/{id}:
get:
summary: "Find topolog template by ID"
description: "Returns a single topolog template"
operationId: "getToscaTemplateByID"
produces:
- "text/plain"
parameters:
- name: "id"
in: "path"
description: "ID of topolog template to return"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
put:
summary: "Updates exisintg topolog template"
description: ""
operationId: "updateToscaTemplateByID"
consumes:
- "multipart/form-data"
produces:
- "text/plain"
parameters:
- in: "formData"
name: "file"
type: file
description: "tosca Template description"
- name: "id"
in: "path"
description: "ID of topolog template to return"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
delete:
summary: "Deletes a tosca topology template"
description: ""
operationId: "deleteToscaTemplateByID"
parameters:
- name: "id"
in: "path"
description: "ID of topology template to return"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
/planner/plan/{id}:
get:
summary: "plan tosca template"
description: "Returns the ID of the planed topolog template"
operationId: "planToscaTemplateByID"
produces:
- "text/plain"
parameters:
- name: "id"
in: "path"
description: "ID of topolog template to plan"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
/provisioner/provision/{id}:
get:
summary: "provision tosca template"
description: "provosions the operationId: Plan Tosca Template Returns the provision ID"
operationId: "provisionPlanToscaTemplateByID"
produces:
- "text/plain"
parameters:
- name: "id"
in: "path"
description: "ID of topolog template to plan"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
/deployer/deploy/{id}:
get:
summary: "deploy the software tosca template"
description: "Returns the deployment ID"
operationId: "deployProvisionToscaTemplateByID"
produces:
- "text/plain"
parameters:
- name: "id"
in: "path"
description: "ID of topolog template to deploy"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
/credential:
post:
summary: "Create credentials"
description: "Creates credentials"
operationId: "createCredentials"
produces:
- "application/json"
consumes:
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Created user object"
required: true
schema:
$ref: "https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/openAPI/TOSCA/Credentials.yml#/Credentials"
responses:
200:
description: "successful operation"
schema:
type: "string"
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:Credentials"
- "read:Credentials"
/credential/ids:
get:
summary: "Get all credential IDs"
description: "Returns all IDss "
operationId: "getCredentialIDs"
produces:
- "application/json"
responses:
200:
description: "successful operation"
schema:
type: array
items:
type: string
400:
description: "Invalid ID supplied"
404:
description: "ToscaTemplate not found"
405:
description: "Invalid input"
security:
- drip_auth:
- "write:ToscaTemplate"
- "read:ToscaTemplate"
/user:
post:
summary: "Create user"
description: "This can only be done by admin."
operationId: "createUser"
produces:
- "application/json"
parameters:
- in: "body"
name: "body"
description: "Created user object"
required: true
schema:
$ref: "https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/openAPI/User.yml#/User"
responses:
200:
description: "successful operation"
schema:
type: "string"
409:
description: "already exists"
security:
- drip_auth:
- "admin:User"
/user/login:
get:
tags:
- "user"
summary: "Logs user into the system"
description: ""
produces:
- "application/json"
parameters:
- name: "username"
in: "query"
description: "The user name for login"
required: true
type: "string"
- name: "password"
in: "query"
description: "The password for login in clear text"
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
type: "string"
headers:
X-Rate-Limit:
type: "integer"
format: "int32"
description: "calls per hour allowed by the user"
X-Expires-After:
type: "string"
format: "date-time"
description: "date in UTC when token expires"
400:
description: "Invalid username/password supplied"
/user/logout:
get:
summary: "Logs out current logged in user session"
description: ""
produces:
- "application/json"
parameters: []
responses:
default:
description: "successful operation"
/user/{username}:
get:
summary: "Get user by user name"
description: ""
produces:
- "application/json"
parameters:
- name: "username"
in: "path"
description: "The name that needs to be fetched. Use user1 for testing. "
required: true
type: "string"
responses:
200:
description: "successful operation"
schema:
$ref: "https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/openAPI/User.yml#/User"
400:
description: "Invalid username supplied"
404:
description: "User not found"
security:
- drip_auth:
- "admin:User"
put:
tags:
- "user"
summary: "Updated user"
description: "This can only be done by the logged in user."
produces:
- "application/json"
parameters:
- name: "username"
in: "path"
description: "name that need to be updated"
required: true
type: "string"
- in: "body"
name: "body"
description: "Updated user object"
required: true
schema:
$ref: "https://raw.githubusercontent.com/skoulouzis/DRIP/DRIP_3.0/TOSCA/openAPI/User.yml#/User"
responses:
400:
description: "Invalid user supplied"
404:
description: "User not found"
security:
- drip_auth:
- "admin:User"
delete:
summary: "Delete user"
description: "This can only be done by the logged in user."
produces:
- "application/json"
parameters:
- name: "username"
in: "path"
description: "The name that needs to be deleted"
required: true
type: "string"
responses:
400:
description: "Invalid username supplied"
404:
description: "User not found"
security:
- drip_auth:
- "admin:User"
securityDefinitions:
drip_auth:
type: "oauth2"
authorizationUrl: "http://localhost/oauth/dialog"
flow: "implicit"
scopes:
write:ToscaTemplate: "modify topolog template in your account"
read:ToscaTemplate: "read your topolog template"
admin:User: "Grants access to admin operations"
write:Credentials: "modify cloud credentials in your account"
read:Credentials: "read your cloud credentials"
externalDocs:
description: "Find out more about DRIP"
url: "https://github.com/QCAPI-DRIP/DRIP-integration/wiki"
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment