diff options
223 files changed, 8503 insertions, 9865 deletions
diff --git a/mod/bpgenerator/README.md b/mod/bpgenerator/README.md index d6b6f7d..eb35aff 100644 --- a/mod/bpgenerator/README.md +++ b/mod/bpgenerator/README.md @@ -27,14 +27,17 @@ OPTIONS: - -d: Onvoke the dmaap plugin (optional) - -o: The service component name override (optional) - it will look like this: ```bash -java -jar target/blueprint-generator-1.4.0-SNAPSHOT-executable.jar blueprint -p Blueprints -i ComponentSpecs/TestComponentSpec.json -n HelloWorld -d + java -jar target/<JAR Filename>.jar app ONAP -i componentspec -p OutputBlueprintPath -n Blueprintname -d ``` -This command will create a blueprint from the component spec TestComponentSpec. The blueprint file name will be called HelloWorld.yaml and it will be in the directory Blueprints. The blueprint will also contain the DMaaP plugin. +This command will create a blueprint from the component spec. The blueprint file name will be called Blueprintname.yaml and it will be in the directory OutputBlueprintPath. The blueprint will also contain the DMaaP plugin. + + + + ## Extra information: - The component spec must be of the same format as stated in the onap [readthedocs](https://onap.readthedocs.io/en/latest/submodules/dcaegen2.git/docs/sections/components/component-specification/common-specification.html#working-with-component-specs) page @@ -53,9 +56,9 @@ OPTIONS: - -p: The output path for all of the models (required) it will look like this: - + ```bash -java -jar target/blueprint-generator-1.4.0-SNAPSHOT-executable.jar policy -p models -i ComponentSpecs/TestComponentSpec.json + java -jar target/<JAR Filename>.jar app ONAP -type policycreate -i componentspec -p OutputPolicyPath ``` This command will create a directory called models and put the policy models created from the component spec given in that directory. (A component spec may generate multiple policy models)
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsFalseAndExternalTlsFalse.yaml b/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsFalseAndExternalTlsFalse.yaml deleted file mode 100644 index 94a3f1e..0000000 --- a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsFalseAndExternalTlsFalse.yaml +++ /dev/null @@ -1,136 +0,0 @@ - -#description: Test component spec -#blueprint_version: 1.0.1 ---- -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/dcaepolicyplugin/2.4.0/dcaepolicyplugin_types.yaml -inputs: - always_pull_image: - type: boolean - description: Set to true if the image should always be pulled - default: true - envs: - default: {} - external_cert_ca_name: - type: string - description: Name of Certificate Authority configured on CertService side. - default: "RA" - external_cert_cert_type: - type: string - description: Format of provided certificates - default: "P12" - external_cert_common_name: - type: string - description: Common name which should be present in certificate. - default: "sample.onap.org" - external_cert_sans: - type: string - description: "List of Subject Alternative Names (SANs) which should be present - in certificate. Delimiter - : Should contain common_name value and other FQDNs - under which given component is accessible." - default: "sample.onap.org:component.sample.onap.org" - external_cert_use_external_tls: - type: boolean - description: Flag to indicate external tls enable/disable. - default: false - external_port_0: - type: string - default: "80" - external_port_1: - type: string - default: "99" - image: - type: string - default: "test.tester" - location_id: - type: string - default: "" - replicas: - type: integer - description: number of instances - default: 1 - service_component_name_override: - type: string - default: "" - test.component.spec_cpu_limit: - type: string - default: "250m" - test.component.spec_cpu_request: - type: string - default: "250m" - test.component.spec_memory_limit: - type: string - default: "128Mi" - test.component.spec_memory_request: - type: string - default: "128Mi" - use_tls: - type: boolean - description: flag to indicate tls enable/disable - default: false -node_templates: - test.component.spec: - type: dcae.nodes.ContainerizedServiceComponent - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: - - concat: ["80:", {get_input: external_port_0}] - - concat: ["99:", {get_input: external_port_1}] - envs: - get_input: envs - properties: - application_config: - service_calls: [] - streams_publishes: {} - streams_subscribes: {} - service_component_name_override: - get_input: service_component_name_override - docker_config: - healthcheck: - interval: 300s - timeout: 120s - script: /etc/init.d/nagios status - type: docker - image: - get_input: image - location_id: - get_input: location_id - service_component_type: test-component-spec - replicas: - get_input: replicas - tls_info: - cert_directory: /opt/app/dcae-certificate/ - use_tls: - get_input: use_tls - external_cert: - external_cert_directory: /opt/app/dcae-certificate/ - use_external_tls: - get_input: external_cert_use_external_tls - ca_name: - get_input: external_cert_ca_name - cert_type: - get_input: external_cert_cert_type - external_certificate_parameters: - common_name: - get_input: external_cert_common_name - sans: - get_input: external_cert_sans - resource_config: - limits: - cpu: - get_input: test.component.spec_cpu_limit - memory: - get_input: test.component.spec_memory_limit - requests: - cpu: - get_input: test.component.spec_cpu_request - memory: - get_input: test.component.spec_memory_request - always_pull_image: - get_input: always_pull_image - relationships: []
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsTrueAndExternalTlsTrue.yaml b/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsTrueAndExternalTlsTrue.yaml deleted file mode 100644 index 4313d6b..0000000 --- a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsTrueAndExternalTlsTrue.yaml +++ /dev/null @@ -1,136 +0,0 @@ - -#description: Test component spec -#blueprint_version: 1.0.1 ---- -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/dcaepolicyplugin/2.4.0/dcaepolicyplugin_types.yaml -inputs: - always_pull_image: - type: boolean - description: Set to true if the image should always be pulled - default: true - envs: - default: {} - external_cert_ca_name: - type: string - description: Name of Certificate Authority configured on CertService side. - default: "RA" - external_cert_cert_type: - type: string - description: Format of provided certificates - default: "P12" - external_cert_common_name: - type: string - description: Common name which should be present in certificate. - default: "sample.onap.org" - external_cert_sans: - type: string - description: "List of Subject Alternative Names (SANs) which should be present - in certificate. Delimiter - : Should contain common_name value and other FQDNs - under which given component is accessible." - default: "sample.onap.org:component.sample.onap.org" - external_cert_use_external_tls: - type: boolean - description: Flag to indicate external tls enable/disable. - default: true - external_port_0: - type: string - default: "80" - external_port_1: - type: string - default: "99" - image: - type: string - default: "test.tester" - location_id: - type: string - default: "" - replicas: - type: integer - description: number of instances - default: 1 - service_component_name_override: - type: string - default: "" - test.component.spec_cpu_limit: - type: string - default: "250m" - test.component.spec_cpu_request: - type: string - default: "250m" - test.component.spec_memory_limit: - type: string - default: "128Mi" - test.component.spec_memory_request: - type: string - default: "128Mi" - use_tls: - type: boolean - description: flag to indicate tls enable/disable - default: true -node_templates: - test.component.spec: - type: dcae.nodes.ContainerizedServiceComponent - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: - - concat: ["80:", {get_input: external_port_0}] - - concat: ["99:", {get_input: external_port_1}] - envs: - get_input: envs - properties: - application_config: - service_calls: [] - streams_publishes: {} - streams_subscribes: {} - service_component_name_override: - get_input: service_component_name_override - docker_config: - healthcheck: - interval: 300s - timeout: 120s - script: /etc/init.d/nagios status - type: docker - image: - get_input: image - location_id: - get_input: location_id - service_component_type: test-component-spec - replicas: - get_input: replicas - tls_info: - cert_directory: /opt/app/dcae-certificate/ - use_tls: - get_input: use_tls - external_cert: - external_cert_directory: /opt/app/dcae-certificate/ - use_external_tls: - get_input: external_cert_use_external_tls - ca_name: - get_input: external_cert_ca_name - cert_type: - get_input: external_cert_cert_type - external_certificate_parameters: - common_name: - get_input: external_cert_common_name - sans: - get_input: external_cert_sans - resource_config: - limits: - cpu: - get_input: test.component.spec_cpu_limit - memory: - get_input: test.component.spec_memory_limit - requests: - cpu: - get_input: test.component.spec_cpu_request - memory: - get_input: test.component.spec_memory_request - always_pull_image: - get_input: always_pull_image - relationships: []
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsTrueAndNoExternalTls.yaml b/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsTrueAndNoExternalTls.yaml deleted file mode 100644 index c4515e3..0000000 --- a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withTlsTrueAndNoExternalTls.yaml +++ /dev/null @@ -1,101 +0,0 @@ - -#description: Test component spec -#blueprint_version: 1.0.1 ---- -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/dcaepolicyplugin/2.4.0/dcaepolicyplugin_types.yaml -inputs: - always_pull_image: - type: boolean - description: Set to true if the image should always be pulled - default: true - envs: - default: {} - external_port_0: - type: string - default: "80" - external_port_1: - type: string - default: "99" - image: - type: string - default: "test.tester" - location_id: - type: string - default: "" - replicas: - type: integer - description: number of instances - default: 1 - service_component_name_override: - type: string - default: "" - test.component.spec_cpu_limit: - type: string - default: "250m" - test.component.spec_cpu_request: - type: string - default: "250m" - test.component.spec_memory_limit: - type: string - default: "128Mi" - test.component.spec_memory_request: - type: string - default: "128Mi" - use_tls: - type: boolean - description: flag to indicate tls enable/disable - default: true -node_templates: - test.component.spec: - type: dcae.nodes.ContainerizedServiceComponent - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: - - concat: ["80:", {get_input: external_port_0}] - - concat: ["99:", {get_input: external_port_1}] - envs: - get_input: envs - properties: - application_config: - service_calls: [] - streams_publishes: {} - streams_subscribes: {} - service_component_name_override: - get_input: service_component_name_override - docker_config: - healthcheck: - interval: 300s - timeout: 120s - script: /etc/init.d/nagios status - type: docker - image: - get_input: image - location_id: - get_input: location_id - service_component_type: test-component-spec - replicas: - get_input: replicas - tls_info: - cert_directory: /opt/app/dcae-certificate/ - use_tls: - get_input: use_tls - resource_config: - limits: - cpu: - get_input: test.component.spec_cpu_limit - memory: - get_input: test.component.spec_memory_limit - requests: - cpu: - get_input: test.component.spec_cpu_request - memory: - get_input: test.component.spec_memory_request - always_pull_image: - get_input: always_pull_image - relationships: []
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withoutTlsInfo.yaml b/mod/bpgenerator/TestCases/TlsInfo/blueprint_withoutTlsInfo.yaml deleted file mode 100644 index e1f942f..0000000 --- a/mod/bpgenerator/TestCases/TlsInfo/blueprint_withoutTlsInfo.yaml +++ /dev/null @@ -1,93 +0,0 @@ - -#description: Test component spec -#blueprint_version: 1.0.1 ---- -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/dcaepolicyplugin/2.4.0/dcaepolicyplugin_types.yaml -inputs: - always_pull_image: - type: boolean - description: Set to true if the image should always be pulled - default: true - envs: - default: {} - external_port_0: - type: string - default: "80" - external_port_1: - type: string - default: "99" - image: - type: string - default: "test.tester" - location_id: - type: string - default: "" - replicas: - type: integer - description: number of instances - default: 1 - service_component_name_override: - type: string - default: "" - test.component.spec_cpu_limit: - type: string - default: "250m" - test.component.spec_cpu_request: - type: string - default: "250m" - test.component.spec_memory_limit: - type: string - default: "128Mi" - test.component.spec_memory_request: - type: string - default: "128Mi" -node_templates: - test.component.spec: - type: dcae.nodes.ContainerizedServiceComponent - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: - - concat: ["80:", {get_input: external_port_0}] - - concat: ["99:", {get_input: external_port_1}] - envs: - get_input: envs - properties: - application_config: - service_calls: [] - streams_publishes: {} - streams_subscribes: {} - service_component_name_override: - get_input: service_component_name_override - docker_config: - healthcheck: - interval: 300s - timeout: 120s - script: /etc/init.d/nagios status - type: docker - image: - get_input: image - location_id: - get_input: location_id - service_component_type: test-component-spec - replicas: - get_input: replicas - resource_config: - limits: - cpu: - get_input: test.component.spec_cpu_limit - memory: - get_input: test.component.spec_memory_limit - requests: - cpu: - get_input: test.component.spec_cpu_request - memory: - get_input: test.component.spec_memory_request - always_pull_image: - get_input: always_pull_image - relationships: []
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/datafile.json b/mod/bpgenerator/TestCases/datafile.json deleted file mode 100644 index d93bdb6..0000000 --- a/mod/bpgenerator/TestCases/datafile.json +++ /dev/null @@ -1,426 +0,0 @@ -{ - "self": { - "name": "dcaegen2.collectors.datafile.datafile-app-server", - "version": "1.0.0", - "description": "Docker application to collect log file from PNF", - "component_type": "docker" - }, - "streams": { - "subscribes": [ - { - "type": "message_router", - "config_key": "datafile_subscribe_mr", - "format": "VES_specification", - "version": "7.30.1" - } - ], - "publishes": [ - { - "type": "data_router", - "config_key": "datafile_publish_dr", - "format": "3GPP_XML", - "version": "1.0.0" - } - ] - }, - "services": { - "calls": [], - "provides": [] - }, - "auxilary": { - "healthcheck": { - "type": "http", - "interval": "15s", - "timeout": "1s", - "endpoint": "/heartbeat" - } - }, - "artifacts": [ - { - "uri": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest", - "type": "docker image" - } - ], - "parameters": [ - { - "name": "service_name", - "value": "datafile", - "description": "Name of the service", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "buscontroller_feed_publishing_endpoint", - "value": "http://dmaap-bc.onap.svc.cluster.local:8080/webapi/feeds", - "description": "DMAAP Bus Controller feed endpoint", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": true, - "type": "string", - "required": true - }, - { - "name": "dmaap_dr_feed_id", - "value": "bulk_pm_feed", - "description": "ID of the data router feed that the datafile collector will publish", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "streams_consumer.datafile_consume_mr.message_router_topic", - "value": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT", - "description": "datafile collector consume VES event to message router topic ", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.dmaapHostName", - "value": "localhost", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.dmaapPortNumber", - "value": "2222", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.dmaapTopicName", - "value": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.dmaapProtocol", - "value": "http", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.dmaapContentType", - "value": "application/json", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.consumerId", - "value": "C12", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.consumerGroup", - "value": "OpenDcae-c12", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.timeoutMs", - "value": "-1", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapConsumerConfiguration.messageLimit", - "value": "1", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapProducerConfiguration.dmaapHostName", - "value": "localhost", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapProducerConfiguration.dmaapPortNumber", - "value": "3907", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapProducerConfiguration.dmaapTopicName", - "value": "publish", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapProducerConfiguration.dmaapProtocol", - "value": "https", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapProducerConfiguration.dmaapUserName", - "value": "dradmin", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapProducerConfiguration.dmaapUserPassword", - "value": "dradmin", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapProducerConfiguration.dmaapContentType", - "value": "application/octet-stream", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "ftp.ftpesConfiguration.keyCert", - "value": "config/dfc.jks", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "ftp.ftpesConfiguration.keyPassword", - "value": "secret", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "ftp.ftpesConfiguration.trustedCA", - "value": "config/ftp.jks", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "ftp.ftpesConfiguration.trustedCAPassword", - "value": "secret", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "security.trustStorePath", - "value": "/opt/app/datafile/etc/cert/trust.jks", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "security.trustStorePasswordPath", - "value": "/opt/app/datafile/etc/cert/trust.pass", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "security.keyStorePath", - "value": "/opt/app/datafile/etc/cert/key.p12", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "security.keyStorePasswordPath", - "value": "/opt/app/datafile/etc/cert/key.pass", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "security.enableDmaapCertAuth", - "value": false, - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapHostName", - "value": "localhost", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapPortNumber", - "value": "6666", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapTopicName", - "value": "webapis/feeds", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapDrFeedName", - "value": "bulk_pm_feed", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapProtocol", - "value": "https", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapUserName", - "value": "dbcadmin", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapUserPassword", - "value": "dbcadmin", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "dmaap.dmaapBusControllerConfiguration.dmaapContentType", - "value": "application/json", - "description": "", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false, - "type": "string", - "required": true - }, - { - "name": "datafile.policy", - "value": "", - "description": "datafile Policy JSON as string", - "designer_editable": false, - "sourced_at_deployment": false, - "policy_editable": true, - "type": "string", - "required": true - } - ] -} diff --git a/mod/bpgenerator/TestCases/expects/createAppConfigResult.txt b/mod/bpgenerator/TestCases/expects/createAppConfigResult.txt deleted file mode 100644 index 11ce552..0000000 --- a/mod/bpgenerator/TestCases/expects/createAppConfigResult.txt +++ /dev/null @@ -1 +0,0 @@ -{TEST-PUB-DR_delivery_url={type=string}, TEST-PUB-DR_location={type=string}, TEST-PUB-DR_password={type=string}, TEST-PUB-DR_subscriber_id={type=string}, TEST-PUB-DR_username={type=string}, TEST-SUB-DR_delivery_url={type=string}, TEST-SUB-DR_location={type=string}, TEST-SUB-DR_password={type=string}, TEST-SUB-DR_subscriber_id={type=string}, TEST-SUB-DR_username={type=string}, TEST_PUB_MR_publish_url={type=string}, TEST_SUB_MR_subscribe_url={type=string}, service_component_name_override={type=string, default=}, testParam1={type=string, default=test-param-1}} diff --git a/mod/bpgenerator/TestCases/hello.json b/mod/bpgenerator/TestCases/hello.json deleted file mode 100644 index ec7d26a..0000000 --- a/mod/bpgenerator/TestCases/hello.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "self": { - "component_type": "docker", - "description": "Hello World mS for subscribing the data from local DMaaP, DR or MR, processing them and publishing them as PM files to local DMaaP DR", - "name": "dcae.collectors.vcc.helloworld.pm", - "version": "1.0.1" - }, - "services": { - "calls": [], - "provides": [] - }, - "streams": { - "publishes": [{ - "config_key": "DCAE-HELLO-WORLD-PUB-DR", - "format": "dataformat_Hello_World_PM", - "type": "data_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-PUB-MR", - "format": "dataformat_Hello_World_PM", - "type": "message_router", - "version": "1.0.0" - } - ], - "subscribes": [{ - "config_key": "DCAE-HELLO-WORLD-SUB-MR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE_HELLO_WORLD_SUB_MR", - "type": "message_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-SUB-DR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE-HELLO-WORLD-SUB-DR", - "type": "data_router", - "version": "1.0.0" - } - ] - }, - "parameters": - [ - { - "name": "vcc_hello_name", - "value": "fsdfa", - "description": "the name entered for specific person", - "sourced_at_deployment": true, - "designer_editable": true, - "policy_editable": false, - "type": "string" - }, - - { - "name": "useDtiConfig", - "value": false, - "description": "component depends on configuration from dti.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true - }, - - { - "name": "isSelfServeComponent", - "value": false, - "description": "Is this used as self serve component.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true, - "type": "string" - } - ], - "auxilary": { - "healthcheck": { - "interval": "60s", - "timeout": "20s", - "script": "/opt/app/vcc/bin/common/HealthCheck_HelloWorld.sh", - "type": "docker" - }, - "volumes": [ - { - "container": { - "bind": "/opt/app/dcae-certificate" - }, - "host": { - "path": "/opt/app/dcae-certificate" - } - }, - { - "container": { - "bind": "/opt/logs/DCAE/dmd/AGENT" - }, - "host": { - "path": "/opt/logs/DCAE/helloworldpm/dmd/AGENT" - } - }, - { - "container": { - "bind": "/opt/logs/DCAE/dmd/WATCHER" - }, - "host": { - "path": "/opt/logs/DCAE/helloworldpm/dmd/WATCHER" - } - }, - { - "container": { - "bind": "/opt/app/vcc/logs/DCAE" - }, - "host": { - "path": "/opt/logs/DCAE/helloworldpm/vcc-logs" - } - }, - { - "container": { - "bind": "/opt/app/vcc/archive/data" - }, - "host": { - "path": "/opt/data/DCAE/helloworldpm/vcc-archive" - } - } - ] - }, - "artifacts": [{ - "type": "docker image", - "uri": "dockercentral.it.att.com:5100/com.att.dcae.controller/dcae-controller-vcc-helloworld-pm:18.02-001" - }] -}
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/helloworld/blueprint/helloworld_changed_with_dmaap.yaml b/mod/bpgenerator/TestCases/helloworld/blueprint/helloworld_changed_with_dmaap.yaml deleted file mode 100644 index 95961ee..0000000 --- a/mod/bpgenerator/TestCases/helloworld/blueprint/helloworld_changed_with_dmaap.yaml +++ /dev/null @@ -1,376 +0,0 @@ -# ============LICENSE_START======================================================= -# org.onap.dcae -# ================================================================================ -# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed 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. -# ============LICENSE_END========================================================= -# -#description: Hello World mS for subscribing the data from local DMaaP, DR or MR, processing them and publishing them as PM files to local DMaaP DR -#blueprint_version: 1.0.1 ---- -tosca_definitions_version: cloudify_dsl_1_3 -description: Hello World mS for subscribing the data from local DMaaP, DR or MR, processing - them and publishing them as PM files to local DMaaP DR -imports: -- https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.1/k8splugin_types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/dmaap/dmaap.yaml -inputs: - DCAE-HELLO-WORLD-PUB-DR_DCAE-HELLO-WORLD-PUB-DR_feed_location: - type: string - DCAE-HELLO-WORLD-PUB-DR_feed_name: - type: string - DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_aaf_password: - type: string - DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_aaf_username: - type: string - DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_client_role: - type: string - DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_location: - type: string - DCAE-HELLO-WORLD-PUB-MR_topic_name: - type: string - DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_decompress: - type: string - DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_location: - type: string - DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_password: - type: string - DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_priviliged: - type: string - DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_username: - type: string - DCAE-HELLO-WORLD-SUB-DR_feed_name: - type: string - DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_aaf_password: - type: string - DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_aaf_username: - type: string - DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_client_role: - type: string - DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_location: - type: string - DCAE-HELLO-WORLD-SUB-MR_topic_name: - type: string - dcae.collectors.vcc.helloworld.pm_cpu_limit: - type: string - default: "250m" - dcae.collectors.vcc.helloworld.pm_cpu_request: - type: string - default: "250m" - dcae.collectors.vcc.helloworld.pm_memory_limit: - type: string - default: "128Mi" - dcae.collectors.vcc.helloworld.pm_memory_request: - type: string - default: "128Mi" - dcaes_database_name: - type: string - description: db name - default: "" - dcaes_database_writerfqdn: - type: string - description: db writerfqdn - default: "" - dti_database_name: - type: string - description: db name - default: "" - dti_database_writerfqdn: - type: string - description: db writerfqdn - default: "" - envs: - default: &envs {} - replicas: - type: integer - description: number of instances - default: 1 - repo_database_name: - type: string - description: db name - default: "" - repo_database_writerfqdn: - type: string - description: db writerfqdn - default: "" - service_component_name_override: - type: string - default: "" - tag_version: - type: string - default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest" - tca_policy_00_policy_id: - type: string - description: policy_id - default: "" - tca_policy_11_policy_id: - type: string - description: policy_id - default: "tca_policy_id_11" - use_tls: - type: boolean - description: flag to indicate tls enable/disable - default: true - vcc_hello_name: - type: string - default: "fsdfa" -node_templates: - DCAE-HELLO-WORLD-PUB-DR_feed: - type: ccsdk.nodes.Feed - properties: - feed_name: - get_input: DCAE-HELLO-WORLD-PUB-DR_feed_name - DCAE-HELLO-WORLD-PUB-MR_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: DCAE-HELLO-WORLD-PUB-MR_topic_name - DCAE-HELLO-WORLD-SUB-DR_feed: - type: ccsdk.nodes.Feed - properties: - feed_name: - get_input: DCAE-HELLO-WORLD-SUB-DR_feed_name - DCAE-HELLO-WORLD-SUB-MR_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: DCAE-HELLO-WORLD-SUB-MR_topic_name - dcae.collectors.vcc.helloworld.pm: - type: dcae.nodes.ContainerizedServiceComponentUsingDmaap - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: [] - envs: - <<: *envs - DCAES_DB_NAME: - get_input: dcaes_database_name - DCAES_DB_ADMIN_HOST: - get_attribute: - - dcaes_pgaasdb - - admin - - host - DCAES_DB_ADMIN_USER: - get_attribute: - - dcaes_pgaasdb - - admin - - user - DCAES_DB_ADMIN_PASS: - get_attribute: - - dcaes_pgaasdb - - admin - - password - DTI_DB_NAME: - get_input: dti_database_name - DTI_DB_ADMIN_HOST: - get_attribute: - - dti_pgaasdb - - admin - - host - DTI_DB_ADMIN_USER: - get_attribute: - - dti_pgaasdb - - admin - - user - DTI_DB_ADMIN_PASS: - get_attribute: - - dti_pgaasdb - - admin - - password - REPO_DB_NAME: - get_input: repo_database_name - REPO_DB_ADMIN_HOST: - get_attribute: - - repo_pgaasdb - - admin - - host - REPO_DB_ADMIN_USER: - get_attribute: - - repo_pgaasdb - - admin - - user - REPO_DB_ADMIN_PASS: - get_attribute: - - repo_pgaasdb - - admin - - password - properties: - application_config: - service_calls: [] - streams_publishes: - DCAE-HELLO-WORLD-PUB-DR: - dmaap_info: <<DCAE-HELLO-WORLD-PUB-DR_feed>> - type: data_router - DCAE-HELLO-WORLD-PUB-MR: - dmaap_info: <<DCAE-HELLO-WORLD-PUB-MR_topic>> - type: message_router - pass: - get_input: DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_aaf_password - user: - get_input: DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_aaf_username - streams_subscribes: - DCAE-HELLO-WORLD-SUB-DR: - dmaap_info: <<DCAE-HELLO-WORLD-SUB-DR_feed>> - type: data_router - DCAE-HELLO-WORLD-SUB-MR: - dmaap_info: <<DCAE-HELLO-WORLD-SUB-MR_topic>> - type: message_router - pass: - get_input: DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_aaf_password - user: - get_input: DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_aaf_username - isSelfServeComponent: false - service_component_name_override: - get_input: service_component_name_override - useDtiConfig: false - vcc_hello_name: - get_input: vcc_hello_name - docker_config: - healthcheck: - interval: 60s - timeout: 20s - script: /opt/app/vcc/bin/common/HealthCheck_HelloWorld.sh - type: docker - volumes: - - container: - bind: /opt/app/dcae-certificate - host: - path: /opt/app/dcae-certificate - - container: - bind: /opt/logs/DCAE/dmd/AGENT - host: - path: /opt/logs/DCAE/helloworldpm/dmd/AGENT - - container: - bind: /opt/logs/DCAE/dmd/WATCHER - host: - path: /opt/logs/DCAE/helloworldpm/dmd/WATCHER - - container: - bind: /opt/app/vcc/logs/DCAE - host: - path: /opt/logs/DCAE/helloworldpm/vcc-logs - - container: - bind: /opt/app/vcc/archive/data - host: - path: /opt/data/DCAE/helloworldpm/vcc-archive - image: - get_input: tag_version - service_component_type: dcae-collectors-vcc-helloworld-pm - log_info: - log_directory: /opt/app/VESCollector/logs/ecomp - replicas: - get_input: replicas - streams_publishes: - - name: DCAE-HELLO-WORLD-PUB-DR_feed - location: - get_input: DCAE-HELLO-WORLD-PUB-DR_DCAE-HELLO-WORLD-PUB-DR_feed_location - type: data_router - - name: DCAE-HELLO-WORLD-PUB-MR_topic - location: - get_input: DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_location - client_role: - get_input: DCAE-HELLO-WORLD-PUB-MR_DCAE-HELLO-WORLD-PUB-MR_topic_client_role - type: message_router - streams_subscribes: - - name: DCAE-HELLO-WORLD-SUB-MR_topic - location: - get_input: DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_location - client_role: - get_input: DCAE-HELLO-WORLD-SUB-MR_DCAE-HELLO-WORLD-SUB-MR_topic_client_role - type: message_router - - name: DCAE-HELLO-WORLD-SUB-DR_feed - location: - get_input: DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_location - type: data_router - username: - get_input: DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_username - password: - get_input: DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_password - privileged: - get_input: DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_priviliged - decompress: - get_input: DCAE-HELLO-WORLD-SUB-DR_DCAE-HELLO-WORLD-SUB-DR_feed_decompress - route: /DCAE-HELLO-WORLD-SUB-DR - scheme: https - tls_info: - cert_directory: /opt/app/dh/etc/cert - use_tls: - get_input: use_tls - resource_config: - limits: - cpu: - get_input: dcae.collectors.vcc.helloworld.pm_cpu_limit - memory: - get_input: dcae.collectors.vcc.helloworld.pm_memory_limit - requests: - cpu: - get_input: dcae.collectors.vcc.helloworld.pm_cpu_request - memory: - get_input: dcae.collectors.vcc.helloworld.pm_memory_request - relationships: - - type: ccsdk.relationships.publish_files - target: DCAE-HELLO-WORLD-PUB-DR_feed - - type: ccsdk.relationships.publish_events - target: DCAE-HELLO-WORLD-PUB-MR_topic - - type: ccsdk.relationships.subscribe_to_events - target: DCAE-HELLO-WORLD-SUB-MR_topic - - type: ccsdk.relationships.subscribe_to_files - target: DCAE-HELLO-WORLD-SUB-DR_feed - - type: cloudify.relationships.depends_on - target: tca_policy_00 - - type: cloudify.relationships.depends_on - target: tca_policy_11 - - type: cloudify.relationships.depends_on - target: dcaes_pgaasdb - - type: cloudify.relationships.depends_on - target: dti_pgaasdb - - type: cloudify.relationships.depends_on - target: repo_pgaasdb - dcaes_pgaasdb: - type: dcae.nodes.pgaas.database - properties: - writerfqdn: - get_input: dcaes_database_writerfqdn - name: - get_input: dcaes_database_name - use_existing: true - dti_pgaasdb: - type: dcae.nodes.pgaas.database - properties: - writerfqdn: - get_input: dti_database_writerfqdn - name: - get_input: dti_database_name - use_existing: true - repo_pgaasdb: - type: dcae.nodes.pgaas.database - properties: - writerfqdn: - get_input: repo_database_writerfqdn - name: - get_input: repo_database_name - use_existing: true - tca_policy_00: - type: clamp.nodes.policy - properties: - policy_id: - get_input: tca_policy_00_policy_id - policy_model_id: onap.policies.monitoring.cdap.tca.hi.lo.app - tca_policy_11: - type: clamp.nodes.policy - properties: - policy_id: - get_input: tca_policy_11_policy_id - policy_model_id: onap.policies.monitoring.cdap.tca.hi.lo.app
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/helloworld/blueprint/helloworld_changed_without_dmaap_yaml.yaml b/mod/bpgenerator/TestCases/helloworld/blueprint/helloworld_changed_without_dmaap_yaml.yaml deleted file mode 100644 index 4e1f5b5..0000000 --- a/mod/bpgenerator/TestCases/helloworld/blueprint/helloworld_changed_without_dmaap_yaml.yaml +++ /dev/null @@ -1,330 +0,0 @@ -# ============LICENSE_START======================================================= -# org.onap.dcae -# ================================================================================ -# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed 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. -# ============LICENSE_END========================================================= -# -#description: Hello World mS for subscribing the data from local DMaaP, DR or MR, processing them and publishing them as PM files to local DMaaP DR -#blueprint_version: 1.0.1 ---- -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.1/k8splugin_types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/dmaap/dmaap.yaml -inputs: - DCAE-HELLO-WORLD-PUB-DR_delivery_url: - type: string - DCAE-HELLO-WORLD-PUB-DR_location: - type: string - DCAE-HELLO-WORLD-PUB-DR_password: - type: string - DCAE-HELLO-WORLD-PUB-DR_subscriber_id: - type: string - DCAE-HELLO-WORLD-PUB-DR_username: - type: string - DCAE-HELLO-WORLD-SUB-DR_delivery_url: - type: string - DCAE-HELLO-WORLD-SUB-DR_location: - type: string - DCAE-HELLO-WORLD-SUB-DR_password: - type: string - DCAE-HELLO-WORLD-SUB-DR_subscriber_id: - type: string - DCAE-HELLO-WORLD-SUB-DR_username: - type: string - DCAE_HELLO_WORLD_PUB_MR_publish_url: - type: string - DCAE_HELLO_WORLD_SUB_MR_subscribe_url: - type: string - always_pull_image: - type: boolean - description: Set to true if the image should always be pulled - default: true - dcae.collectors.vcc.helloworld.pm_cpu_limit: - type: string - default: "250m" - dcae.collectors.vcc.helloworld.pm_cpu_request: - type: string - default: "250m" - dcae.collectors.vcc.helloworld.pm_memory_limit: - type: string - default: "128Mi" - dcae.collectors.vcc.helloworld.pm_memory_request: - type: string - default: "128Mi" - dcaes_database_name: - type: string - description: db name - default: "" - dcaes_database_writerfqdn: - type: string - description: db writerfqdn - default: "" - dti_database_name: - type: string - description: db name - default: "" - dti_database_writerfqdn: - type: string - description: db writerfqdn - default: "" - envs: - default: &envs {} - image: - type: string - default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest" - location_id: - type: string - default: "" - replicas: - type: integer - description: number of instances - default: 1 - repo_database_name: - type: string - description: db name - default: "" - repo_database_writerfqdn: - type: string - description: db writerfqdn - default: "" - service_component_name_override: - type: string - default: "" - tca_policy_00_policy_id: - type: string - description: policy_id - default: "" - tca_policy_11_policy_id: - type: string - description: policy_id - default: "tca_policy_id_11" - use_tls: - type: boolean - description: flag to indicate tls enable/disable - default: true - vcc_hello_name: - type: string - default: "fsdfa" -node_templates: - dcae.collectors.vcc.helloworld.pm: - type: dcae.nodes.ContainerizedPlatformComponent - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: [] - envs: - <<: *envs - DCAES_DB_NAME: - get_input: dcaes_database_name - DCAES_DB_ADMIN_HOST: - get_attribute: - - dcaes_pgaasdb - - admin - - host - DCAES_DB_ADMIN_USER: - get_attribute: - - dcaes_pgaasdb - - admin - - user - DCAES_DB_ADMIN_PASS: - get_attribute: - - dcaes_pgaasdb - - admin - - password - DTI_DB_NAME: - get_input: dti_database_name - DTI_DB_ADMIN_HOST: - get_attribute: - - dti_pgaasdb - - admin - - host - DTI_DB_ADMIN_USER: - get_attribute: - - dti_pgaasdb - - admin - - user - DTI_DB_ADMIN_PASS: - get_attribute: - - dti_pgaasdb - - admin - - password - REPO_DB_NAME: - get_input: repo_database_name - REPO_DB_ADMIN_HOST: - get_attribute: - - repo_pgaasdb - - admin - - host - REPO_DB_ADMIN_USER: - get_attribute: - - repo_pgaasdb - - admin - - user - REPO_DB_ADMIN_PASS: - get_attribute: - - repo_pgaasdb - - admin - - password - properties: - application_config: - service_calls: [] - streams_publishes: - DCAE-HELLO-WORLD-PUB-DR: - dmaap_info: - username: - get_input: DCAE-HELLO-WORLD-PUB-DR_username - password: - get_input: DCAE-HELLO-WORLD-PUB-DR_password - location: - get_input: DCAE-HELLO-WORLD-PUB-DR_location - delivery_url: - get_input: DCAE-HELLO-WORLD-PUB-DR_delivery_url - subscriber_id: - get_input: DCAE-HELLO-WORLD-PUB-DR_subscriber_id - type: data_router - DCAE-HELLO-WORLD-PUB-MR: - dmaap_info: - topic_url: - get_input: DCAE_HELLO_WORLD_PUB_MR_publish_url - type: message_router - streams_subscribes: - DCAE-HELLO-WORLD-SUB-DR: - dmaap_info: - username: - get_input: DCAE-HELLO-WORLD-SUB-DR_username - password: - get_input: DCAE-HELLO-WORLD-SUB-DR_password - location: - get_input: DCAE-HELLO-WORLD-SUB-DR_location - delivery_url: - get_input: DCAE-HELLO-WORLD-SUB-DR_delivery_url - subscriber_id: - get_input: DCAE-HELLO-WORLD-SUB-DR_subscriber_id - type: data_router - DCAE-HELLO-WORLD-SUB-MR: - dmaap_info: - topic_url: - get_input: DCAE_HELLO_WORLD_SUB_MR_subscribe_url - type: message_router - isSelfServeComponent: false - service_component_name_override: - get_input: service_component_name_override - useDtiConfig: false - vcc_hello_name: - get_input: vcc_hello_name - docker_config: - healthcheck: - interval: 60s - timeout: 20s - script: /opt/app/vcc/bin/common/HealthCheck_HelloWorld.sh - type: docker - volumes: - - container: - bind: /opt/app/dcae-certificate - host: - path: /opt/app/dcae-certificate - - container: - bind: /opt/logs/DCAE/dmd/AGENT - host: - path: /opt/logs/DCAE/helloworldpm/dmd/AGENT - - container: - bind: /opt/logs/DCAE/dmd/WATCHER - host: - path: /opt/logs/DCAE/helloworldpm/dmd/WATCHER - - container: - bind: /opt/app/vcc/logs/DCAE - host: - path: /opt/logs/DCAE/helloworldpm/vcc-logs - - container: - bind: /opt/app/vcc/archive/data - host: - path: /opt/data/DCAE/helloworldpm/vcc-archive - image: - get_input: image - location_id: - get_input: location_id - log_info: - log_directory: /opt/app/VESCollector/logs/ecomp - dns_name: dcae.collectors.vcc.helloworld.pm - replicas: - get_input: replicas - name: dcae.collectors.vcc.helloworld.pm - tls_info: - cert_directory: /opt/app/dh/etc/cert - use_tls: - get_input: use_tls - resource_config: - limits: - cpu: - get_input: dcae.collectors.vcc.helloworld.pm_cpu_limit - memory: - get_input: dcae.collectors.vcc.helloworld.pm_memory_limit - requests: - cpu: - get_input: dcae.collectors.vcc.helloworld.pm_cpu_request - memory: - get_input: dcae.collectors.vcc.helloworld.pm_memory_request - always_pull_image: - get_input: always_pull_image - relationships: - - type: cloudify.relationships.depends_on - target: tca_policy_00 - - type: cloudify.relationships.depends_on - target: tca_policy_11 - - type: cloudify.relationships.depends_on - target: dcaes_pgaasdb - - type: cloudify.relationships.depends_on - target: dti_pgaasdb - - type: cloudify.relationships.depends_on - target: repo_pgaasdb - dcaes_pgaasdb: - type: dcae.nodes.pgaas.database - properties: - writerfqdn: - get_input: dcaes_database_writerfqdn - name: - get_input: dcaes_database_name - use_existing: true - dti_pgaasdb: - type: dcae.nodes.pgaas.database - properties: - writerfqdn: - get_input: dti_database_writerfqdn - name: - get_input: dti_database_name - use_existing: true - repo_pgaasdb: - type: dcae.nodes.pgaas.database - properties: - writerfqdn: - get_input: repo_database_writerfqdn - name: - get_input: repo_database_name - use_existing: true - tca_policy_00: - type: clamp.nodes.policy - properties: - policy_id: - get_input: tca_policy_00_policy_id - policy_model_id: onap.policies.monitoring.cdap.tca.hi.lo.app - tca_policy_11: - type: clamp.nodes.policy - properties: - policy_id: - get_input: tca_policy_11_policy_id - policy_model_id: onap.policies.monitoring.cdap.tca.hi.lo.app
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/helloworld/compspec/hello-changed.json b/mod/bpgenerator/TestCases/helloworld/compspec/hello-changed.json deleted file mode 100644 index 24d8491..0000000 --- a/mod/bpgenerator/TestCases/helloworld/compspec/hello-changed.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "self": { - "component_type": "docker", - "description": "Hello World mS for subscribing the data from local DMaaP, DR or MR, processing them and publishing them as PM files to local DMaaP DR", - "name": "dcae.collectors.vcc.helloworld.pm", - "version": "1.0.1" - }, - "services": { - "calls": [], - "provides": [] - }, - "streams": { - "publishes": [{ - "config_key": "DCAE-HELLO-WORLD-PUB-DR", - "format": "dataformat_Hello_World_PM", - "type": "data_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-PUB-MR", - "format": "dataformat_Hello_World_PM", - "type": "message_router", - "version": "1.0.0" - } - ], - "subscribes": [{ - "config_key": "DCAE-HELLO-WORLD-SUB-MR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE_HELLO_WORLD_SUB_MR", - "type": "message_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-SUB-DR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE-HELLO-WORLD-SUB-DR", - "type": "data_router", - "version": "1.0.0" - } - ] - }, - "parameters": - [ - { - "name": "vcc_hello_name", - "value": "fsdfa", - "description": "the name entered for specific person", - "sourced_at_deployment": true, - "designer_editable": true, - "policy_editable": false, - "type": "string" - }, - - { - "name": "useDtiConfig", - "value": false, - "description": "component depends on configuration from dti.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true - }, - - { - "name": "isSelfServeComponent", - "value": false, - "description": "Is this used as self serve component.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true, - "type": "string" - } - ], - "auxilary": { - "healthcheck": { - "interval": "60s", - "timeout": "20s", - "script": "/opt/app/vcc/bin/common/HealthCheck_HelloWorld.sh", - "type": "docker" - }, - "log_info": { - "log_directory": "/opt/app/VESCollector/logs/ecomp" - }, - "tls_info":{ - "cert_directory":"/opt/app/dh/etc/cert", - "use_tls":true - }, - "databases": { - "dcaes": "PgaaS", - "repo": "PgaaS", - "dti": "pgaas" - }, - "volumes": [ - { - "container": { - "bind": "/opt/app/dcae-certificate" - }, - "host": { - "path": "/opt/app/dcae-certificate" - } - }, - { - "container": { - "bind": "/opt/logs/DCAE/dmd/AGENT" - }, - "host": { - "path": "/opt/logs/DCAE/helloworldpm/dmd/AGENT" - } - }, - { - "container": { - "bind": "/opt/logs/DCAE/dmd/WATCHER" - }, - "host": { - "path": "/opt/logs/DCAE/helloworldpm/dmd/WATCHER" - } - }, - { - "container": { - "bind": "/opt/app/vcc/logs/DCAE" - }, - "host": { - "path": "/opt/logs/DCAE/helloworldpm/vcc-logs" - } - }, - { - "container": { - "bind": "/opt/app/vcc/archive/data" - }, - "host": { - "path": "/opt/data/DCAE/helloworldpm/vcc-archive" - } - } - ] - }, - "policy_info":{ - "policy":[ - { - "node_label":"tca_policy_00", - "policy_model_id":"onap.policies.monitoring.cdap.tca.hi.lo.app" - }, - { - "node_label":"tca_policy_11", - "policy_id":"tca_policy_id_11", - "policy_model_id":"onap.policies.monitoring.cdap.tca.hi.lo.app" - } - ] - }, - "artifacts": [{ - "type": "docker image", - "uri": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest" - }] -}
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/imports/imports.yaml b/mod/bpgenerator/TestCases/imports/imports.yaml deleted file mode 100644 index 4b52b8a..0000000 --- a/mod/bpgenerator/TestCases/imports/imports.yaml +++ /dev/null @@ -1,2 +0,0 @@ -imports: ['https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml', 'plugin:k8splugin?version=3.4.1', - 'plugin:pgaas?version=1.3.0', 'plugin:clamppolicyplugin?version=1.1.0', 'plugin:dmaap?version=1.5.0'] diff --git a/mod/bpgenerator/TestCases/imports/importsWithBlanks.yaml b/mod/bpgenerator/TestCases/imports/importsWithBlanks.yaml deleted file mode 100644 index 242c2a9..0000000 --- a/mod/bpgenerator/TestCases/imports/importsWithBlanks.yaml +++ /dev/null @@ -1,3 +0,0 @@ -imports: ['https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml', 'plugin:k8splugin?version=3.4.1', - '', ' ', ' ', 'plugin:pgaas?version=1.3.0', 'plugin:clamppolicyplugin?version=1.1.0', - 'plugin:dmaap?version=1.5.0'] diff --git a/mod/bpgenerator/TestCases/j.json b/mod/bpgenerator/TestCases/j.json deleted file mode 100644 index 848b102..0000000 --- a/mod/bpgenerator/TestCases/j.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "self": { - "component_type": "docker", - "description": "Hello World mS for subscribing the data from local DMaaP, DR or MR, processing them and publishing them as PM files to local DMaaP DR", - "name": "dcae.test.ms", - "version": "1.0.0" - }, - - "services": { - "calls": [], - "provides": [] - }, - - "streams": { - "publishes": [{ - "config_key": "DCAE-HELLO-WORLD-PUB-DR", - "format": "dataformat_Hello_World_PM", - "type": "data_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-PUB-MR", - "format": "dataformat_Hello_World_PM", - "type": "message_router", - "version": "1.0.0" - } - ], - - "subscribes": [{ - "config_key": "DCAE-HELLO-WORLD-SUB-MR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE_HELLO_WORLD_SUB_MR", - "type": "message_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-SUB-DR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE-HELLO-WORLD-SUB-DR", - "type": "data_router", - "version": "1.0.0" - } - ] - }, - - "parameters": - [ - { - "name": "vcc_hello_name", - "value": "fsdfa", - "description": "the name entered for specific person", - "sourced_at_deployment": true, - "designer_editable": true, - "policy_editable": false, - "type": "string" - }, - - { - "name": "useDtiConfig", - "value": false, - "description": "component depends on configuration from dti.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true - }, - - { - "name": "isSelfServeComponent", - "value": false, - "description": "Is this used as self serve component.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true, - "type": "string" - } - ], - - "auxilary": { - "healthcheck": { - "interval": "60s", - "timeout": "20s", - "endpoint": "/", - "type": "http" - }, - "ports" : [ - "80:0" - ] - }, - - "artifacts": [{ - "type": "docker image", - "uri": "nginx" - }] -}
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/jack.json b/mod/bpgenerator/TestCases/jack.json deleted file mode 100644 index 219b1b5..0000000 --- a/mod/bpgenerator/TestCases/jack.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "self": { - "component_type": "docker", - "description": "Hello World mS for subscribing the data from local DMaaP, DR or MR, processing them and publishing them as PM files to local DMaaP DR", - "name": "dcae.test.ms", - "version": "1.0.0" - }, - - "services": { - "calls": [], - "provides": [] - }, - - "streams": { - "publishes": [{ - "config_key": "DCAE-HELLO-WORLD-PUB-DR", - "format": "dataformat_Hello_World_PM", - "type": "data_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-PUB-MR", - "format": "dataformat_Hello_World_PM", - "type": "message_router", - "version": "1.0.0" - } - ], - - "subscribes": [{ - "config_key": "DCAE-HELLO-WORLD-SUB-MR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE_HELLO_WORLD_SUB_MR", - "type": "message_router", - "version": "1.0.0" - }, - { - "config_key": "DCAE-HELLO-WORLD-SUB-DR", - "format": "dataformat_Hello_World_PM", - "route": "/DCAE-HELLO-WORLD-SUB-DR", - "type": "data_router", - "version": "1.0.0" - } - ] - }, - - "parameters": - [ - { - "name": "vcc_hello_name", - "value": "fsdfa", - "description": "the name entered for specific person", - "sourced_at_deployment": true, - "designer_editable": true, - "policy_editable": false, - "type": "string" - }, - - { - "name": "useDtiConfig", - "value": false, - "description": "component depends on configuration from dti.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true - }, - - { - "name": "isSelfServeComponent", - "value": false, - "description": "Is this used as self serve component.", - "sourced_at_deployment": false, - "designer_editable": false, - "policy_editable": false, - "required" : true, - "type": "string" - } - ], - - "auxilary": { - "healthcheck": { - "interval": "60s", - "timeout": "20s", - "endpoint": "/", - "type": "http" - } - }, - - "artifacts": [{ - "type": "docker image", - "uri": "nginx" - }] -}
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/testComponentSpec.json b/mod/bpgenerator/TestCases/testComponentSpec.json deleted file mode 100644 index d6b617b..0000000 --- a/mod/bpgenerator/TestCases/testComponentSpec.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "self": { - "component_type": "docker", - "description": "Test component spec", - "name": "test.component.spec", - "version": "1.0.1" - }, - - "service": { - "calls": [], - "provides": [] - }, - - "streams": { - "publishes": [{ - "config_key": "TEST-PUB-DR", - "format": "dataformat_Hello_World_PM", - "type": "data_router", - "version": "1.0.0" - }, - { - "config_key": "TEST-PUB-MR", - "format": "dataformat_Hello_World_PM", - "type": "message_router", - "version": "1.0.0" - } - ], - - "subscribes": [{ - "config_key": "TEST-SUB-MR", - "format": "dataformat_Hello_World_PM", - "route": "/TEST_HELLO_WORLD_SUB_MR", - "type": "message_router", - "version": "1.0.0" - }, - { - "config_key": "TEST-SUB-DR", - "format": "dataformat_Hello_World_PM", - "route": "/TEST-HELLO-WORLD-SUB-DR", - "type": "data_router", - "version": "1.0.0" - } - ] - }, - - "parameters": - [ - { - "name": "testParam1", - "description": "test parameter 1", - "value": "test-param-1", - "type": "string", - "sourced_at_deployment": true, - "designer_editable": true, - "policy_editable": true, - "policy_group": "Test_Parameters", - "required": true, - "policy_schema": [ - { - "name": "PolicySchemaTest", - "description": "List of objects for vnf type monitorng", - "type": "String", - "entry_schema": [ - { - "name": "TestEntrySchema", - "description": "entry", - "type": "string", - "value": "None" - } - ] - } - ] - } - ], - - "auxilary": { - "healthcheck": { - "type": "docker", - "interval": "300s", - "timeout": "120s", - "script": "/etc/init.d/nagios status" - }, - - "databases" : { - "TestDB1": "PGaaS", - "TestDB2": "PGaaS" - }, - - "policy": { - "trigger_type": "docker", - "script_path": "/opt/app/manager/bin/reconfigure.sh" - }, - "volumes": [ - { - "container": { - "bind": "/opt/app/manager/config/hostname" - }, - "host": { - "path": "/etc/hostname", - "mode": "ro" - } - } - - ], - "ports": [ - "80:80", - "99:99" - ] - }, - - "artifacts": [{ - "type": "docker image", - "uri": "test.tester" - }] - -}
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/testImport.yaml b/mod/bpgenerator/TestCases/testImport.yaml deleted file mode 100644 index a299baf..0000000 --- a/mod/bpgenerator/TestCases/testImport.yaml +++ /dev/null @@ -1,4 +0,0 @@ -imports: -- test import 1 -- test import 2 -- test import 3
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/testImports.yaml b/mod/bpgenerator/TestCases/testImports.yaml deleted file mode 100644 index 95bd200..0000000 --- a/mod/bpgenerator/TestCases/testImports.yaml +++ /dev/null @@ -1,3 +0,0 @@ -imports: -- http://www.getcloudify.org/spec/cloudify/3.4/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/ves.json b/mod/bpgenerator/TestCases/ves.json deleted file mode 100644 index eb54723..0000000 --- a/mod/bpgenerator/TestCases/ves.json +++ /dev/null @@ -1,384 +0,0 @@ -{ - "self": { - "version": "1.5.0", - "name": "dcae-ves-collector", - "description": "Collector for receiving VES events through restful interface", - "component_type": "docker" - }, - "streams": { - "subscribes": [], - "publishes": [ - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-fault" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-measurement" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-syslog" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-heartbeat" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-other" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-mobileflow" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-statechange" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-thresholdCrossingAlert" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-voicequality" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-sipsignaling" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-fault-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-measurement-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-syslog-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-heartbeat-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-other-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-mobileflow-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-statechange-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-thresholdCrossingAlert-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-voicequality-secondary" - }, - { - "format": "VES_specification", - "version": "5.28.4", - "type": "message router", - "config_key": "ves-sipsignaling-secondary" - }, - { - "format": "VES_specification", - "version": "7.30.0", - "type": "message router", - "config_key": "ves-pnfRegistration" - }, - { - "format": "VES_specification", - "version": "7.30.0", - "type": "message router", - "config_key": "ves-pnfRegistration-secondary" - }, - { - "format": "VES_specification", - "version": "7.30.0", - "type": "message router", - "config_key": "ves-notification" - }, - { - "format": "VES_specification", - "version": "7.30.0", - "type": "message router", - "config_key": "ves-notification-secondary" - } - ] - }, - "services": { - "calls": [], - "provides": [ - { - "route": "/eventListener/v1", - "verb": "POST", - "request": { - "format": "VES_specification", - "version": "4.27.2" - }, - "response": { - "format": "ves.coll.response", - "version": "1.0.0" - } - }, - { - "route": "/eventListener/v2", - "verb": "POST", - "request": { - "format": "VES_specification", - "version": "4.27.2" - }, - "response": { - "format": "ves.coll.response", - "version": "1.0.0" - } - }, - { - "route": "/eventListener/v3", - "verb": "POST", - "request": { - "format": "VES_specification", - "version": "4.27.2" - }, - "response": { - "format": "ves.coll.response", - "version": "1.0.0" - } - }, - { - "route": "/eventListener/v4", - "verb": "POST", - "request": { - "format": "VES_specification", - "version": "4.27.2" - }, - "response": { - "format": "ves.coll.response", - "version": "1.0.0" - } - }, - { - "route": "/eventListener/v5", - "verb": "POST", - "request": { - "format": "VES_specification", - "version": "5.28.4" - }, - "response": { - "format": "ves.coll.response", - "version": "1.0.0" - } - }, - { - "route": "/eventListener/v7", - "verb": "POST", - "request": { - "format": "VES_specification", - "version": "7.30.0" - }, - "response": { - "format": "ves.coll.response", - "version": "1.0.0" - } - } - ] - }, - "parameters": [ - { - "name": "collector.service.port", - "value": 8080, - "description": "standard http port collector will open for listening;", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "collector.service.secure.port", - "value": 8443, - "description": "secure http port collector will open for listening ", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": true - }, - { - "name": "collector.keystore.file.location", - "value": "/opt/app/dcae-certificate/keystore.jks", - "description": "fs location of keystore file in vm", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "collector.keystore.passwordfile", - "value": "/opt/app/dcae-certificate/.password", - "description": "location of keystore password file in vm", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "collector.truststore.file.location", - "value": "/opt/app/dcae-certificate/truststore.jks", - "description": "fs location of truststore file in vm", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "collector.truststore.passwordfile", - "value": "/opt/app/dcae-certificate/.trustpassword", - "description": "location of truststore password file in vm", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "collector.dmaap.streamid", - "value": "fault=ves-fault,ves-fault-secondary|syslog=ves-syslog,ves-syslog-secondary|heartbeat=ves-heartbeat,ves-heartbeat-secondary|measurementsForVfScaling=ves-measurement,ves-measurement-secondary|mobileFlow=ves-mobileflow,ves-mobileflow-secondary|other=ves-other,ves-other-secondary|stateChange=ves-statechange,ves-statechange-secondary|thresholdCrossingAlert=ves-thresholdCrossingAlert,ves-thresholdCrossingAlert-secondary|voiceQuality=ves-voicequality,ves-voicequality-secondary|sipSignaling=ves-sipsignaling,ves-sipsignaling-secondary|notification=ves-notification,ves-notification-secondary|pnfRegistration=ves-pnfRegistration,ves-pnfRegistration-secondary", - "description": "domain-to-streamid mapping used by VESCollector to distributes events based on domain. Both primary and secondary config_key are included for resilency (multiple streamid can be included commma separated). The streamids MUST match to topic config_keys. For single site without resiliency deployment - configkeys with -secondary suffix can be removed", - "sourced_at_deployment": true, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "auth.method", - "value": "noAuth", - "description": "Property to manage application mode, possible configurations: noAuth - default option - no security (http) , certOnly - auth by certificate (https), basicAuth - auth by basic auth username and password (https),certBasicAuth - auth by certificate and basic auth username / password (https),", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "header.authlist", - "value": "sample1,$2a$10$pgjaxDzSuc6XVFEeqvxQ5u90DKJnM/u7TJTcinAlFJVaavXMWf/Zi|userid1,$2a$10$61gNubgJJl9lh3nvQvY9X.x4e5ETWJJ7ao7ZhJEvmfJigov26Z6uq|userid2,$2a$10$G52y/3uhuhWAMy.bx9Se8uzWinmbJa.dlm1LW6bYPdPkkywLDPLiy", - "description": "List of id and base 64 encoded password.For each onboarding VNF - unique userid and password should be assigned and communicated to VNF owner. Password value should be base64 encoded in config here", - "policy_editable": false, - "sourced_at_deployment": true, - "designer_editable": true - }, - { - "name": "collector.schema.checkflag", - "value": 1, - "description": "Schema check validation flag. When enabled, collector will validate input VES events against VES Schema defined on collector.schema.file ", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "collector.schema.file", - "value": "{\"v1\":\"./etc/CommonEventFormat_27.2.json\",\"v2\":\"./etc/CommonEventFormat_27.2.json\",\"v3\":\"./etc/CommonEventFormat_27.2.json\",\"v4\":\"./etc/CommonEventFormat_27.2.json\",\"v5\":\"./etc/CommonEventFormat_28.4.1.json\",\"v7\":\"./etc/CommonEventFormat_30.json\"}", - "description": "VES schema file name per version used for validation", - "designer_editable": true, - "sourced_at_deployment": false, - "policy_editable": false - }, - { - "name": "event.transform.flag", - "value": 1, - "description": "flag to enable tranformation rules defined under eventTransform.json; this is applicable when event tranformation rules preset should be activated for transforming <VES5.4 events to 5.4", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - }, - { - "name": "tomcat.maxthreads", - "value": "200", - "description": "Tomcat control for concurrent request", - "sourced_at_deployment": false, - "policy_editable": false, - "designer_editable": false - } - ], - "auxilary": { - "healthcheck": { - "type": "https", - "interval": "15s", - "timeout": "1s", - "endpoint": "/healthcheck" - }, - "volumes": [ - { - "container": { - "bind": "/opt/app/dcae-certificate" - }, - "host": { - "path": "/opt/app/dcae-certificate" - } - }, - { - "container": { - "bind": "/opt/app/VESCollector/logs" - }, - "host": { - "path": "/opt/logs/DCAE/VESCollector/logs" - } - }, - { - "container": { - "bind": "/opt/app/VESCollector/etc" - }, - "host": { - "path": "/opt/logs/DCAE/VESCollector/etc" - } - } - ], - "ports": [ - "8080:8080", - "8443:8443" - ] - }, - "artifacts": [ - { - "type": "docker image", - "uri": "nexus.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest" - } - ] -}
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/ves/blueprints/vesK8sWithDmaap.yaml b/mod/bpgenerator/TestCases/ves/blueprints/vesK8sWithDmaap.yaml deleted file mode 100644 index 601690e..0000000 --- a/mod/bpgenerator/TestCases/ves/blueprints/vesK8sWithDmaap.yaml +++ /dev/null @@ -1,319 +0,0 @@ -# ============LICENSE_START======================================================= -# org.onap.dcae -# ================================================================================ -# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed 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. -# ============LICENSE_END========================================================= -# -#description: Collector for receiving VES events through restful interface -#blueprint_version: 1.5.0 ---- -tosca_definitions_version: cloudify_dsl_1_3 -description: Collector for receiving VES events through restful interface -imports: -- http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml -inputs: - collector.dmaap.streamid: - type: string - default: "fault=ves-fault,ves-fault-secondary|syslog=ves-syslog,ves-syslog-secondary|heartbeat=ves-heartbeat,ves-heartbeat-secondary|measurementsForVfScaling=ves-measurement,ves-measurement-secondary|mobileFlow=ves-mobileflow,ves-mobileflow-secondary|other=ves-other,ves-other-secondary|stateChange=ves-statechange,ves-statechange-secondary|thresholdCrossingAlert=ves-thresholdCrossingAlert,ves-thresholdCrossingAlert-secondary|voiceQuality=ves-voicequality,ves-voicequality-secondary|sipSignaling=ves-sipsignaling,ves-sipsignaling-secondary|notification=ves-notification,ves-notification-secondary|pnfRegistration=ves-pnfRegistration,ves-pnfRegistration-secondary" - dcae-ves-collector_cpu_limit: - type: string - default: "250m" - dcae-ves-collector_cpu_request: - type: string - default: "250m" - dcae-ves-collector_memory_limit: - type: string - default: "128Mi" - dcae-ves-collector_memory_request: - type: string - default: "128Mi" - envs: - default: {} - external_port_0: - type: string - default: "8080" - external_port_1: - type: string - default: "8443" - header.authlist: - type: string - default: "sample1,$2a$10$pgjaxDzSuc6XVFEeqvxQ5u90DKJnM/u7TJTcinAlFJVaavXMWf/Zi|userid1,$2a$10$61gNubgJJl9lh3nvQvY9X.x4e5ETWJJ7ao7ZhJEvmfJigov26Z6uq|userid2,$2a$10$G52y/3uhuhWAMy.bx9Se8uzWinmbJa.dlm1LW6bYPdPkkywLDPLiy" - location_id: - type: string - default: "" - replicas: - type: integer - description: number of instances - default: 1 - service_component_name_override: - type: string - default: "" - tag_version: - type: string - default: "nexus.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest" - ves-fault_topic_name: - type: string - ves-fault_ves-fault_topic_aaf_password: - type: string - ves-fault_ves-fault_topic_aaf_username: - type: string - ves-fault_ves-fault_topic_client_role: - type: string - ves-fault_ves-fault_topic_location: - type: string - ves-heartbeat-secondary_topic_name: - type: string - ves-heartbeat-secondary_ves-heartbeat-secondary_topic_aaf_password: - type: string - ves-heartbeat-secondary_ves-heartbeat-secondary_topic_aaf_username: - type: string - ves-heartbeat-secondary_ves-heartbeat-secondary_topic_client_role: - type: string - ves-heartbeat-secondary_ves-heartbeat-secondary_topic_location: - type: string - ves-measurement_topic_name: - type: string - ves-measurement_ves-measurement_topic_aaf_password: - type: string - ves-measurement_ves-measurement_topic_aaf_username: - type: string - ves-measurement_ves-measurement_topic_client_role: - type: string - ves-measurement_ves-measurement_topic_location: - type: string - ves-notification_topic_name: - type: string - ves-notification_ves-notification_topic_aaf_password: - type: string - ves-notification_ves-notification_topic_aaf_username: - type: string - ves-notification_ves-notification_topic_client_role: - type: string - ves-notification_ves-notification_topic_location: - type: string - ves-other_topic_name: - type: string - ves-other_ves-other_topic_aaf_password: - type: string - ves-other_ves-other_topic_aaf_username: - type: string - ves-other_ves-other_topic_client_role: - type: string - ves-other_ves-other_topic_location: - type: string - ves-pnfRegistration_topic_name: - type: string - ves-pnfRegistration_ves-pnfRegistration_topic_aaf_password: - type: string - ves-pnfRegistration_ves-pnfRegistration_topic_aaf_username: - type: string - ves-pnfRegistration_ves-pnfRegistration_topic_client_role: - type: string - ves-pnfRegistration_ves-pnfRegistration_topic_location: - type: string -node_templates: - dcae-ves-collector: - type: dcae.nodes.ContainerizedServiceComponentUsingDmaap - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: - - concat: ["8080:", {get_input: external_port_0}] - - concat: ["8443:", {get_input: external_port_1}] - envs: - get_input: envs - properties: - application_config: - service_calls: [] - streams_publishes: - ves-fault: - dmaap_info: <<ves-fault_topic>> - type: message router - pass: - get_input: ves-fault_ves-fault_topic_aaf_password - user: - get_input: ves-fault_ves-fault_topic_aaf_username - ves-heartbeat-secondary: - dmaap_info: <<ves-heartbeat-secondary_topic>> - type: message router - pass: - get_input: ves-heartbeat-secondary_ves-heartbeat-secondary_topic_aaf_password - user: - get_input: ves-heartbeat-secondary_ves-heartbeat-secondary_topic_aaf_username - ves-measurement: - dmaap_info: <<ves-measurement_topic>> - type: message router - pass: - get_input: ves-measurement_ves-measurement_topic_aaf_password - user: - get_input: ves-measurement_ves-measurement_topic_aaf_username - ves-notification: - dmaap_info: <<ves-notification_topic>> - type: message router - pass: - get_input: ves-notification_ves-notification_topic_aaf_password - user: - get_input: ves-notification_ves-notification_topic_aaf_username - ves-other: - dmaap_info: <<ves-other_topic>> - type: message router - pass: - get_input: ves-other_ves-other_topic_aaf_password - user: - get_input: ves-other_ves-other_topic_aaf_username - ves-pnfRegistration: - dmaap_info: <<ves-pnfRegistration_topic>> - type: message router - pass: - get_input: ves-pnfRegistration_ves-pnfRegistration_topic_aaf_password - user: - get_input: ves-pnfRegistration_ves-pnfRegistration_topic_aaf_username - streams_subscribes: {} - auth.method: noAuth - collector.dmaap.streamid: - get_input: collector.dmaap.streamid - collector.keystore.file.location: /opt/app/dcae-certificate/keystore.jks - collector.keystore.passwordfile: /opt/app/dcae-certificate/.password - collector.schema.checkflag: 1 - collector.schema.file: {"v1":"./etc/CommonEventFormat_27.2.json","v2":"./etc/CommonEventFormat_27.2.json","v3":"./etc/CommonEventFormat_27.2.json","v4":"./etc/CommonEventFormat_27.2.json","v5":"./etc/CommonEventFormat_28.4.1.json","v7":"./etc/CommonEventFormat_30.json"} - collector.service.port: 8080 - collector.service.secure.port: 8443 - collector.truststore.file.location: /opt/app/dcae-certificate/truststore.jks - collector.truststore.passwordfile: /opt/app/dcae-certificate/.trustpassword - event.transform.flag: 1 - header.authlist: - get_input: header.authlist - service_component_name_override: - get_input: service_component_name_override - tomcat.maxthreads: 200 - docker_config: - healthcheck: - interval: 15s - timeout: 1s - type: http - endpoint: /healthcheck - volumes: - - container: - bind: /opt/app/dcae-certificate - host: - path: /opt/app/dcae-certificate - - container: - bind: /opt/app/VESCollector/logs - host: - path: /opt/logs/DCAE/VESCollector/logs - - container: - bind: /opt/app/VESCollector/etc - host: - path: /opt/logs/DCAE/VESCollector/etc - image: - get_input: tag_version - location_id: - get_input: location_id - service_component_type: dcae-ves-collector - replicas: - get_input: replicas - streams_publishes: - - name: ves-fault_topic - location: - get_input: ves-fault_ves-fault_topic_location - client_role: - get_input: ves-fault_ves-fault_topic_client_role - type: message router - - name: ves-measurement_topic - location: - get_input: ves-measurement_ves-measurement_topic_location - client_role: - get_input: ves-measurement_ves-measurement_topic_client_role - type: message router - - name: ves-other_topic - location: - get_input: ves-other_ves-other_topic_location - client_role: - get_input: ves-other_ves-other_topic_client_role - type: message router - - name: ves-heartbeat-secondary_topic - location: - get_input: ves-heartbeat-secondary_ves-heartbeat-secondary_topic_location - client_role: - get_input: ves-heartbeat-secondary_ves-heartbeat-secondary_topic_client_role - type: message router - - name: ves-pnfRegistration_topic - location: - get_input: ves-pnfRegistration_ves-pnfRegistration_topic_location - client_role: - get_input: ves-pnfRegistration_ves-pnfRegistration_topic_client_role - type: message router - - name: ves-notification_topic - location: - get_input: ves-notification_ves-notification_topic_location - client_role: - get_input: ves-notification_ves-notification_topic_client_role - type: message router - resource_config: - limits: - cpu: - get_input: dcae-ves-collector_cpu_limit - memory: - get_input: dcae-ves-collector_memory_limit - requests: - cpu: - get_input: dcae-ves-collector_cpu_request - memory: - get_input: dcae-ves-collector_memory_request - relationships: - - type: ccsdk.relationships.publish_events - target: ves-fault_topic - - type: ccsdk.relationships.publish_events - target: ves-measurement_topic - - type: ccsdk.relationships.publish_events - target: ves-other_topic - - type: ccsdk.relationships.publish_events - target: ves-heartbeat-secondary_topic - - type: ccsdk.relationships.publish_events - target: ves-pnfRegistration_topic - - type: ccsdk.relationships.publish_events - target: ves-notification_topic - ves-fault_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: ves-fault_topic_name - ves-heartbeat-secondary_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: ves-heartbeat-secondary_topic_name - ves-measurement_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: ves-measurement_topic_name - ves-notification_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: ves-notification_topic_name - ves-other_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: ves-other_topic_name - ves-pnfRegistration_topic: - type: ccsdk.nodes.Topic - properties: - topic_name: - get_input: ves-pnfRegistration_topic_name
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/ves/blueprints/vesK8sWithoutDmaap.yaml b/mod/bpgenerator/TestCases/ves/blueprints/vesK8sWithoutDmaap.yaml deleted file mode 100644 index 9786fff..0000000 --- a/mod/bpgenerator/TestCases/ves/blueprints/vesK8sWithoutDmaap.yaml +++ /dev/null @@ -1,185 +0,0 @@ -# ============LICENSE_START======================================================= -# org.onap.dcae -# ================================================================================ -# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed 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. -# ============LICENSE_END========================================================= -# -#description: Collector for receiving VES events through restful interface -#blueprint_version: 1.5.0 ---- -tosca_definitions_version: cloudify_dsl_1_3 -imports: -- http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml -- https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml -inputs: - always_pull_image: - type: boolean - description: Set to true if the image should always be pulled - default: true - collector.dmaap.streamid: - type: string - default: "fault=ves-fault,ves-fault-secondary|syslog=ves-syslog,ves-syslog-secondary|heartbeat=ves-heartbeat,ves-heartbeat-secondary|measurementsForVfScaling=ves-measurement,ves-measurement-secondary|mobileFlow=ves-mobileflow,ves-mobileflow-secondary|other=ves-other,ves-other-secondary|stateChange=ves-statechange,ves-statechange-secondary|thresholdCrossingAlert=ves-thresholdCrossingAlert,ves-thresholdCrossingAlert-secondary|voiceQuality=ves-voicequality,ves-voicequality-secondary|sipSignaling=ves-sipsignaling,ves-sipsignaling-secondary|notification=ves-notification,ves-notification-secondary|pnfRegistration=ves-pnfRegistration,ves-pnfRegistration-secondary" - dcae-ves-collector_cpu_limit: - type: string - default: "250m" - dcae-ves-collector_cpu_request: - type: string - default: "250m" - dcae-ves-collector_memory_limit: - type: string - default: "128Mi" - dcae-ves-collector_memory_request: - type: string - default: "128Mi" - envs: - default: {} - external_port_0: - type: string - default: "8080" - external_port_1: - type: string - default: "8443" - header.authlist: - type: string - default: "sample1,$2a$10$pgjaxDzSuc6XVFEeqvxQ5u90DKJnM/u7TJTcinAlFJVaavXMWf/Zi|userid1,$2a$10$61gNubgJJl9lh3nvQvY9X.x4e5ETWJJ7ao7ZhJEvmfJigov26Z6uq|userid2,$2a$10$G52y/3uhuhWAMy.bx9Se8uzWinmbJa.dlm1LW6bYPdPkkywLDPLiy" - image: - type: string - default: "nexus.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest" - location_id: - type: string - default: "" - replicas: - type: integer - description: number of instances - default: 1 - service_component_name_override: - type: string - default: "" - ves_fault_publish_url: - type: string - ves_heartbeat_secondary_publish_url: - type: string - ves_measurement_publish_url: - type: string - ves_notification_publish_url: - type: string - ves_other_publish_url: - type: string - ves_pnfRegistration_publish_url: - type: string -node_templates: - dcae-ves-collector: - type: dcae.nodes.ContainerizedServiceComponent - interfaces: - cloudify.interfaces.lifecycle: - start: - inputs: - ports: - - concat: ["8080:", {get_input: external_port_0}] - - concat: ["8443:", {get_input: external_port_1}] - envs: - get_input: envs - properties: - application_config: - service_calls: [] - streams_publishes: - ves-fault: - dmaap_info: - topic_url: - get_input: ves_fault_publish_url - type: message router - ves-heartbeat-secondary: - dmaap_info: - topic_url: - get_input: ves_heartbeat_secondary_publish_url - type: message router - ves-measurement: - dmaap_info: - topic_url: - get_input: ves_measurement_publish_url - type: message router - ves-notification: - dmaap_info: - topic_url: - get_input: ves_notification_publish_url - type: message router - ves-other: - dmaap_info: - topic_url: - get_input: ves_other_publish_url - type: message router - ves-pnfRegistration: - dmaap_info: - topic_url: - get_input: ves_pnfRegistration_publish_url - type: message router - streams_subscribes: {} - auth.method: noAuth - collector.dmaap.streamid: - get_input: collector.dmaap.streamid - collector.keystore.file.location: /opt/app/dcae-certificate/keystore.jks - collector.keystore.passwordfile: /opt/app/dcae-certificate/.password - collector.schema.checkflag: 1 - collector.schema.file: {"v1":"./etc/CommonEventFormat_27.2.json","v2":"./etc/CommonEventFormat_27.2.json","v3":"./etc/CommonEventFormat_27.2.json","v4":"./etc/CommonEventFormat_27.2.json","v5":"./etc/CommonEventFormat_28.4.1.json","v7":"./etc/CommonEventFormat_30.json"} - collector.service.port: 8080 - collector.service.secure.port: 8443 - collector.truststore.file.location: /opt/app/dcae-certificate/truststore.jks - collector.truststore.passwordfile: /opt/app/dcae-certificate/.trustpassword - event.transform.flag: 1 - header.authlist: - get_input: header.authlist - service_component_name_override: - get_input: service_component_name_override - tomcat.maxthreads: 200 - docker_config: - healthcheck: - interval: 15s - timeout: 1s - type: http - endpoint: /healthcheck - volumes: - - container: - bind: /opt/app/dcae-certificate - host: - path: /opt/app/dcae-certificate - - container: - bind: /opt/app/VESCollector/logs - host: - path: /opt/logs/DCAE/VESCollector/logs - - container: - bind: /opt/app/VESCollector/etc - host: - path: /opt/logs/DCAE/VESCollector/etc - image: - get_input: image - location_id: - get_input: location_id - service_component_type: dcae-ves-collector - replicas: - get_input: replicas - resource_config: - limits: - cpu: - get_input: dcae-ves-collector_cpu_limit - memory: - get_input: dcae-ves-collector_memory_limit - requests: - cpu: - get_input: dcae-ves-collector_cpu_request - memory: - get_input: dcae-ves-collector_memory_request - always_pull_image: - get_input: always_pull_image - relationships: []
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/ves/inputFiles/ves_nodmaap.json b/mod/bpgenerator/TestCases/ves/inputFiles/ves_nodmaap.json deleted file mode 100644 index 720ce5f..0000000 --- a/mod/bpgenerator/TestCases/ves/inputFiles/ves_nodmaap.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "ves_other_publish_url":"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_OTHER_OUTPUT", - "ves_heartbeat_publish_url":"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT", - "ves_fault_publish_url":"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_FAULT_OUTPUT", - "ves_measurement_publish_url":"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT", - "ves_notification_publish_url":"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT", - "ves_pnfRegistration_publish_url":"http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_PNFREG_OUTPUT", - "external_port_0":"30235", - "external_port_1": "30417", - "image": "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1" -}
\ No newline at end of file diff --git a/mod/bpgenerator/common/pom.xml b/mod/bpgenerator/common/pom.xml new file mode 100644 index 0000000..a947e20 --- /dev/null +++ b/mod/bpgenerator/common/pom.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ /* + ~ * ============LICENSE_START======================================================= + ~ * org.onap.dcae + ~ * ================================================================================ + ~ * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + ~ * ================================================================================ + ~ * Licensed 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. + ~ * ============LICENSE_END========================================================= + ~ */ + ~ + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.onap.dcaegen2.platform</groupId> + <artifactId>blueprint-generator-common</artifactId> + <version>2.0.0</version> + <packaging>jar</packaging> + + <name>Common</name> + <description>This module is used by DCAE and ONAP Applications to generate Blueprints</description> + + <parent> + <groupId>org.onap.dcaegen2.platform</groupId> + <artifactId>blueprint-generator</artifactId> + <version>1.7.0-SNAPSHOT</version> + </parent> + +</project>
\ No newline at end of file diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/config/ObjectMapperConfig.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/config/ObjectMapperConfig.java new file mode 100644 index 0000000..fc546af --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/config/ObjectMapperConfig.java @@ -0,0 +1,57 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.config; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; +import org.springframework.beans.factory.config.ConfigurableBeanFactory; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Scope; + +/* + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Config: Object Mapper + */ + +@Configuration +public class ObjectMapperConfig { + + @Bean(name="objectMapper") + @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) + public ObjectMapper objectMapper(){ + return new ObjectMapper(); + } + + @Bean(name="yamlObjectMapper") + @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) + public ObjectMapper yamlObjectMapper(){ + return new ObjectMapper(new YAMLFactory().configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true)); + } + +}
\ No newline at end of file diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/constants/Constants.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/constants/Constants.java new file mode 100644 index 0000000..69a71e5 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/constants/Constants.java @@ -0,0 +1,100 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.constants; + +/* + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Constants: Used in ONAP and DCAE Blueprints + */ + +public class Constants { + + public static final String _TOPIC = "_topic"; + public static final String _FEED = "_feed"; + public static final String DATAROUTER_VALUE = "data router"; + public static final String DATA_ROUTER = "data_router"; + public static final String MESSAGEROUTER_VALUE = "message router"; + public static final String MESSAGE_ROUTER = "message_router"; + public static final String TOSCA_DEF_VERSION = "cloudify_dsl_1_3"; + public static final String SERVICE_COMPONENT_NAME_OVERRIDE = "service_component_name_override"; + public static final String EMPTY = "''"; + public static final String INTEGER_TYPE = "integer"; + public static final String BOOLEAN_TYPE = "boolean"; + public static final String STRING_TYPE = "string"; + public static final String EMPTY_VALUE = ""; + public static final String DCAE_NODES_CONTAINERIZED_SERVICE_COMPONENT_USING_DMAAP = "dcae.nodes.ContainerizedServiceComponentUsingDmaap"; + public static final String MEMORY_LIMIT_128Mi = "128Mi"; + public static final String CPU_LIMIT_250m = "250m"; + public static final String CPU_LIMIT = "cpu_limit"; + public static final String MEMORY_LIMIT = "memory_limit"; + public static final String CPU_REQUEST = "cpu_request"; + public static final String MEMORY_REQUEST = "memory_request"; + + public static final String CLOUDIFY_INTERFACES_LEFECYCLE = "cloudify.interfaces.lifecycle"; + public static final String DCAE = "dcae"; + public static final String DCAE_NODES_CONTAINERIZED_SERVICE_COMPONENT = "dcae.nodes.ContainerizedServiceComponent"; + public static final String ONAP_NAME_DCAE = "DCAE"; + public static final String POLICIES_POLICYNAME_DCAECONFIG = "DCAE.Config_"; + + public static final String DB_RELATIONSHIP_TYPE = "cloudify.relationships.depends_on"; + public static final String NAME_POSTFIX = "_database_name"; + public static final String PGAAS_NODE_NAME_POSTFIX = "_pgaasdb"; + public static final String PGAAS_NODE_TYPE = "dcae.nodes.pgaas.database"; + public static final String POLICY_NODE_TYPE = "clamp.nodes.policy"; + public static final String POLICY_RELATIONSHIP_TYPE = "cloudify.relationships.depends_on"; + public static final String WRITER_FQDN_POSTFIX = "_database_writerfqdn"; + public static final boolean USE_EXISTING = true; + public static final String ONAP_INPUT_CPU_LIMIT = "dcae-ves-collector_cpu_limit"; + public static final String ONAP_NODETEMPLATES = "dcae-ves-collector"; + public static final String ONAP_NODETEMPLATES_TYPE = "dcae.nodes.ContainerizedServiceComponent"; + public static final String ONAP_DEFAULT250m = "\"250m\""; + public static final String ONAP_SERVICE_COMPONENTNAME_OVERRIDE_DEFAULT = "\"\""; + public static final String DMAAP_NODETEMPLATES_TYPE = "dcae.nodes.ContainerizedServiceComponentUsingDmaap"; + public static final String USE_EXTERNAL_TLS_FIELD = "use_external_tls"; + public static final String DEFAULT_CA = "RA"; + public static final Object DEFAULT_CERT_TYPE = "P12"; + public static final String INPUT_PREFIX = "external_cert_"; + public static final String EXTERNAL_CERT_DIRECTORY_FIELD = "external_cert_directory"; + public static final String CA_NAME_FIELD = "ca_name"; + public static final String CERT_TYPE_FIELD = "cert_type"; + public static final String EXTERNAL_CERTIFICATE_PARAMETERS_FIELD = "external_certificate_parameters"; + public static final String CERT_DIRECTORY_FIELD = "cert_directory"; + public static final String COMMON_NAME_FIELD = "common_name"; + public static final String SANS_FIELD = "sans"; + public static final String DEFAULT_COMMON_NAME = "sample.onap.org"; + public static final String DEFAULT_SANS = "sample.onap.org:component.sample.onap.org"; + public static final String FEED = "dcaegen2.nodes.Feed"; + public static final String TOPIC = "dcaegen2.nodes.Topic"; + public static final String PUBLISH_EVENTS = "dcaegen2.relationships.publish_events"; + public static final String PUBLISH_FILES = "dcaegen2.relationships.publish_files"; + public static final String SUBSCRIBE_TO_EVENTS = "dcaegen2.relationships.subscribe_to_events"; + public static final String SUBSCRIBE_TO_FILES = "dcaegen2.relationships.subscribe_to_files"; + public static final String TOSCA_DATATYPES_ROOT = "tosca.datatypes.Root"; + public static final String TOSCA_NODES_ROOT = "tosca.nodes.Root"; + public static final String TOSCA_SIMPLE_YAML = "tosca_simple_yaml_1_0_0"; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/BlueprintException.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/BlueprintException.java new file mode 100644 index 0000000..f6ed5c7 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/BlueprintException.java @@ -0,0 +1,43 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.exception; + +/* + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Exception: For Blueprint + */ + +public class BlueprintException extends RuntimeException{ + + public BlueprintException(String errorMessage) { + super(errorMessage); + } + + public BlueprintException(String errorMessage, Throwable err) { + super(errorMessage, err); + } +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/ComponentSpecException.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/ComponentSpecException.java new file mode 100644 index 0000000..ff0270e --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/ComponentSpecException.java @@ -0,0 +1,43 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.exception; + +/* + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Exception: For ComponentSpec + */ + +public class ComponentSpecException extends RuntimeException{ + + public ComponentSpecException(String errorMessage) { + super(errorMessage); + } + + public ComponentSpecException(String errorMessage, Throwable err) { + super(errorMessage, err); + } +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/DatabasesNotFoundException.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/DatabasesNotFoundException.java new file mode 100644 index 0000000..423da79 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/DatabasesNotFoundException.java @@ -0,0 +1,38 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.exception; + +/* + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Exception: For Databases Not Found + */ + +public class DatabasesNotFoundException extends RuntimeException { + + public DatabasesNotFoundException(String message) { super(message);} + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/FixesException.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/FixesException.java new file mode 100644 index 0000000..aa81ede --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/exception/FixesException.java @@ -0,0 +1,43 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.exception; + +/* + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Exception: For Fixes + */ + +public class FixesException extends RuntimeException{ + + public FixesException(String errorMessage) { + super(errorMessage); + } + + public FixesException(String errorMessage, Throwable err) { + super(errorMessage, err); + } +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/base/Blueprint.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/base/Blueprint.java new file mode 100644 index 0000000..a72a00d --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/base/Blueprint.java @@ -0,0 +1,55 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.base; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Base Model: For Blueprint + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Blueprint { + + private String tosca_definitions_version; + + private String description; + + private List<String> imports; + + private Map<String, LinkedHashMap<String, Object>> inputs; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/base/Node.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/base/Node.java new file mode 100644 index 0000000..c3df820 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/base/Node.java @@ -0,0 +1,46 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.base; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Base Model: For Node + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Node { + + private String type; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Appconfig.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Appconfig.java new file mode 100644 index 0000000..3a18b70 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Appconfig.java @@ -0,0 +1,64 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import org.onap.blueprintgenerator.model.componentspec.common.Calls; +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For App Config + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Appconfig { + + private Calls[] services_calls; + + private Map<String, Dmaap> streams_publishes; + + private Map<String, Dmaap> streams_subscribes; + + private Map<String, Object> params; + + @JsonAnyGetter //The Map is persisted as flattened properties of the target POJO. + public Map<String, Object> getParams() { + return params; + } + + //Used in ONAP + private Calls[] service_calls; + +} + diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Concat.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Concat.java new file mode 100644 index 0000000..d3b3c01 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Concat.java @@ -0,0 +1,48 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Concat + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Concat { + + private List<Object> concat; + +} + diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/DataRouter.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/DataRouter.java new file mode 100644 index 0000000..49e029f --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/DataRouter.java @@ -0,0 +1,47 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + + +import org.onap.blueprintgenerator.constants.Constants; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Data Router + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class DataRouter extends Dmaap { + + private String type = Constants.DATA_ROUTER; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Dmaap.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Dmaap.java new file mode 100644 index 0000000..de3b31e --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Dmaap.java @@ -0,0 +1,53 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Dmaap + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Dmaap { + + private Object dmaap_info; + + //Below properties are used in ONAP + private String type; + + private GetInput pass; + + private GetInput user; + +}
\ No newline at end of file diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/GetInput.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/GetInput.java new file mode 100644 index 0000000..cc87014 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/GetInput.java @@ -0,0 +1,54 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Get Input + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@AllArgsConstructor +@NoArgsConstructor +public class GetInput { + + //private Object get_input; + + @JsonProperty("get_input") + private Object bpInputName; + +}
\ No newline at end of file diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/GetProperty.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/GetProperty.java new file mode 100644 index 0000000..0514d20 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/GetProperty.java @@ -0,0 +1,47 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Get Property + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class GetProperty { + + private List<String> get_property; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Imports.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Imports.java new file mode 100644 index 0000000..eacf20e --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Imports.java @@ -0,0 +1,45 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Imports + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class Imports { + + private List<String> imports; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Input.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Input.java new file mode 100644 index 0000000..781ce2e --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/Input.java @@ -0,0 +1,72 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Input + */ + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Input { + + private String componentSpecPath; + + private String bluePrintName; + + private String outputPath; + + private String policyPath; + + private String bpType; + + private int numPolicies; + + private int numPolicy; + + private String comment; + + private boolean useExisting; + + private List<String> imports; + + private boolean useDti; + + //Used in ONAP + private String serviceNameOverride; + + private String importPath; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/MessageRouter.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/MessageRouter.java new file mode 100644 index 0000000..7d96785 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/common/MessageRouter.java @@ -0,0 +1,50 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import org.onap.blueprintgenerator.constants.Constants; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Common Model: For Message Router + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class MessageRouter extends Dmaap { + + private String type = Constants.MESSAGE_ROUTER; + + private Object aaf_password; + + private Object aaf_username; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/base/Auxilary.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/base/Auxilary.java new file mode 100644 index 0000000..9c37163 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/base/Auxilary.java @@ -0,0 +1,74 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.base; + + +import org.onap.blueprintgenerator.model.componentspec.common.HealthCheck; +import org.onap.blueprintgenerator.model.componentspec.common.Policy; +import org.onap.blueprintgenerator.model.componentspec.common.Reconfigs; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Auxilary + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Auxilary { + + private HealthCheck healthcheck; + + private HealthCheck livehealthcheck; + + private Policy policy; + + private Reconfigs reconfigs; + + private List<LinkedHashMap<String, String>> env; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Map<String, String> databases; + +/* @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Affinity affinity;*/ + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Object hpa_config; + + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/base/ComponentSpec.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/base/ComponentSpec.java new file mode 100644 index 0000000..e3583e7 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/base/ComponentSpec.java @@ -0,0 +1,55 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.base; + +import org.onap.blueprintgenerator.model.componentspec.common.Artifacts; +import org.onap.blueprintgenerator.model.componentspec.common.Parameters; +import org.onap.blueprintgenerator.model.componentspec.common.Self; +import org.onap.blueprintgenerator.model.componentspec.common.Streams; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For ComponentSpec + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ComponentSpec { + + private Self self; + + private Streams streams; + + private Parameters[] parameters; + + private Artifacts[] artifacts; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Artifacts.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Artifacts.java new file mode 100644 index 0000000..0ae1c1a --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Artifacts.java @@ -0,0 +1,49 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Artifacts + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Artifacts { + + private String type; + + private String uri; +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Calls.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Calls.java new file mode 100644 index 0000000..752040d --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Calls.java @@ -0,0 +1,50 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Calls + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Calls { + + private String config_key; + + private RequestResponse request; + + private RequestResponse response; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Constraints.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Constraints.java new file mode 100644 index 0000000..cb248b9 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Constraints.java @@ -0,0 +1,60 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Constraints + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Constraints { + + private Object equal; + + private int greater_than; + + private int greater_or_equal; + + private int less_than; + + private int less_or_equal; + + private Object[] valid_values; + + private int length; + + private int min_length; + + private int max_length; +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Container.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Container.java new file mode 100644 index 0000000..3157338 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Container.java @@ -0,0 +1,46 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Container + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@EqualsAndHashCode +public class Container { + + private String bind; + + private String mode; +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/EntrySchema.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/EntrySchema.java new file mode 100644 index 0000000..d0355ea --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/EntrySchema.java @@ -0,0 +1,56 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Entry Schema + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class EntrySchema { + + private String name; + + private String description; + + private String type; + + private String value; + + private EntrySchema[] entry_schema; + + private boolean required; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/HealthCheck.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/HealthCheck.java new file mode 100644 index 0000000..01c1497 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/HealthCheck.java @@ -0,0 +1,58 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For HealthCheck + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class HealthCheck { + + private String interval; + + private String timeout; + + private String script; + + private String type; + + private String endpoint; + + private String initialDelaySeconds; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Host.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Host.java new file mode 100644 index 0000000..6a9d812 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Host.java @@ -0,0 +1,47 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Host + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@EqualsAndHashCode +public class Host { + + private String path; + + private String mode; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Parameters.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Parameters.java new file mode 100644 index 0000000..9c1931c --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Parameters.java @@ -0,0 +1,69 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Parameters + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Parameters { + + private String name; + + private Object value; + + private String description; + + private boolean sourced_at_deployment; + + private boolean designer_editable; + + private boolean policy_editable; + + private boolean required; + + private String type; + + private String policy_group; + + private PolicySchema[] policy_schema; + + private EntrySchema[] entry_schema; + + private Constraints[] constraints; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Policy.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Policy.java new file mode 100644 index 0000000..ea419f3 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Policy.java @@ -0,0 +1,47 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Policy + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@EqualsAndHashCode +public class Policy { + + private String trigger_type; + + private String script_path; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/PolicySchema.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/PolicySchema.java new file mode 100644 index 0000000..2d17086 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/PolicySchema.java @@ -0,0 +1,57 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Policy Schema + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class PolicySchema { + + private String name; + + private String description; + + private String type; + + private String value; + + private EntrySchema[] entry_schema; + + private boolean required; + + private Constraints[] constraints; + + } diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Provides.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Provides.java new file mode 100644 index 0000000..5301cbe --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Provides.java @@ -0,0 +1,52 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Provides + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Provides { + + private String route; + + private RequestResponse request; + + private RequestResponse response; + + //Used in ONAP + private String verb; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Publishes.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Publishes.java new file mode 100644 index 0000000..cd8230e --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Publishes.java @@ -0,0 +1,56 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Publishes + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Publishes { + + private String config_key; + + private String format; + + private String type; + + private String version; + + //Used in ONAP + private String route; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Reconfigs.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Reconfigs.java new file mode 100644 index 0000000..96b0fb3 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Reconfigs.java @@ -0,0 +1,54 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Reconfigs + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Reconfigs { + + private String dti; + + private String app_reconfig; + + private String policy; + + private String streams; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/RequestResponse.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/RequestResponse.java new file mode 100644 index 0000000..0376de1 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/RequestResponse.java @@ -0,0 +1,48 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Request Response + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class RequestResponse { + + private String format; + + private String version; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Self.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Self.java new file mode 100644 index 0000000..b657b16 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Self.java @@ -0,0 +1,53 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Self + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Self { + + private String component_type; + + private String description; + + private String name; + + private String version; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Streams.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Streams.java new file mode 100644 index 0000000..3791e32 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Streams.java @@ -0,0 +1,50 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Streams + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Streams { + + private Publishes[] publishes; + + private Subscribes[] subscribes; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Subscribes.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Subscribes.java new file mode 100644 index 0000000..668a517 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Subscribes.java @@ -0,0 +1,56 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Subscribes + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Subscribes { + + private String config_key; + + private String format; + + private String route; + + private String type; + + private String version; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Volumes.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Volumes.java new file mode 100644 index 0000000..6f12b47 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/componentspec/common/Volumes.java @@ -0,0 +1,54 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec.common; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAP and DCAE Blueprint Applications + * Component Spec Model: For Volumes + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@EqualsAndHashCode +public class Volumes { + + private Container container; + + private Host host; + + private String type; + + private String name; + +}
\ No newline at end of file diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/Policies.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/Policies.java new file mode 100644 index 0000000..35d210c --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/Policies.java @@ -0,0 +1,52 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + +import org.onap.blueprintgenerator.constants.Constants; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policies + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class Policies { + + private String configAttributes; + + private String configName; + + private String onapName = Constants.ONAP_NAME_DCAE; + + private String policyName = Constants.POLICIES_POLICYNAME_DCAECONFIG; + + private boolean unique = false; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PoliciesNode.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PoliciesNode.java new file mode 100644 index 0000000..7b951cc --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PoliciesNode.java @@ -0,0 +1,44 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + +import org.onap.blueprintgenerator.model.base.Node; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policies Node + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class PoliciesNode extends Node { + + private PoliciesProperties properties; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PoliciesProperties.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PoliciesProperties.java new file mode 100644 index 0000000..11844bf --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PoliciesProperties.java @@ -0,0 +1,43 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policies Properties + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class PoliciesProperties { + + private PolicyFilter policy_filter; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/Policy.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/Policy.java new file mode 100644 index 0000000..b5f098c --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/Policy.java @@ -0,0 +1,44 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policy + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class Policy { + + private String policy_id; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyFilter.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyFilter.java new file mode 100644 index 0000000..e49e6c3 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyFilter.java @@ -0,0 +1,52 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + +import org.onap.blueprintgenerator.constants.Constants; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policy Filters + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class PolicyFilter { + + private String configAttributes = Constants.EMPTY; + + private String configName = Constants.EMPTY; + + private String onapName = Constants.ONAP_NAME_DCAE; + + private Object policyName; + + private boolean unique = false; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyInput.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyInput.java new file mode 100644 index 0000000..ca13cd7 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyInput.java @@ -0,0 +1,45 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policy Input + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class PolicyInput { + + private Policies[] policies; + + private Policy[] policy; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyNode.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyNode.java new file mode 100644 index 0000000..f5ebf05 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyNode.java @@ -0,0 +1,44 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + +import org.onap.blueprintgenerator.model.base.Node; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policy Node + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class PolicyNode extends Node { + + private PolicyProperties properties; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyProperties.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyProperties.java new file mode 100644 index 0000000..8ec4a32 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/policy/PolicyProperties.java @@ -0,0 +1,44 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.policy; + +import org.onap.blueprintgenerator.model.common.GetInput; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Model: To Get Policy Properties + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class PolicyProperties { + + private GetInput policy_id; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/translate/GetProperty.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/translate/GetProperty.java new file mode 100644 index 0000000..47994c3 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/model/translate/GetProperty.java @@ -0,0 +1,45 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.translate; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Translate Model: To Get Property + */ + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +public class GetProperty { + + private List<String> get_property; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/BlueprintHelperService.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/BlueprintHelperService.java new file mode 100644 index 0000000..1f6b4f8 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/BlueprintHelperService.java @@ -0,0 +1,118 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.base; + + +import org.onap.blueprintgenerator.constants.Constants; +import org.springframework.stereotype.Service; + +import java.util.LinkedHashMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Service: For Common Functions used across + */ + +@Service +public class BlueprintHelperService { + + + public LinkedHashMap<String, Object> createInputValue(String type, String description, Object defaultValue) { + LinkedHashMap<String, Object> inputMap = new LinkedHashMap<>(); + inputMap.put("type", type); + inputMap.put("description", description); + inputMap.put("default", defaultValue); + return inputMap; + } + + public LinkedHashMap<String, Object> createInputValue(String type, String description) { + LinkedHashMap<String, Object> inputMap = new LinkedHashMap<>(); + inputMap.put("type", type); + inputMap.put("description", description); + return inputMap; + } + + public LinkedHashMap<String, Object> createInputValue(String type, Object defaultValue) { + LinkedHashMap<String, Object> inputMap = new LinkedHashMap<>(); + inputMap.put("type", type); + inputMap.put("default", defaultValue); + return inputMap; + } + + public LinkedHashMap<String, Object> createIntegerInput(String description, Object defaultValue){ + return createInputValue(Constants.INTEGER_TYPE, description, defaultValue); + } + + public LinkedHashMap<String, Object> createIntegerInput(String description){ + return createInputValue(Constants.INTEGER_TYPE, description); + } + + public LinkedHashMap<String, Object> createIntegerInput(Object defaultValue){ + return createInputValue(Constants.INTEGER_TYPE, defaultValue); + } + + public LinkedHashMap<String, Object> createBooleanInput(String description, Object defaultValue){ + return createInputValue(Constants.BOOLEAN_TYPE, description, defaultValue); + } + + public LinkedHashMap<String, Object> createBooleanInput(String description){ + return createInputValue(Constants.BOOLEAN_TYPE, description); + } + + public LinkedHashMap<String, Object> createBooleanInput(Object defaultValue){ + return createInputValue(Constants.BOOLEAN_TYPE, defaultValue); + } + + public LinkedHashMap<String, Object> createStringInput(String description, Object defaultValue){ + return createInputValue(Constants.STRING_TYPE, description, defaultValue); + } + +/* public LinkedHashMap<String, Object> createStringInput(String description){ + return createInputValue(Constants.STRING_TYPE, description); + }*/ + + public LinkedHashMap<String, Object> createStringInput(Object defaultValue){ + return createInputValue(Constants.STRING_TYPE, defaultValue); + } + + public String joinUnderscore(String firstValue, String secondValue){ + return firstValue + "_" + secondValue; + } + + public boolean isDataRouterType(String type) { + return type.equals(Constants.DATA_ROUTER) || type.equals(Constants.DATAROUTER_VALUE); + } + + public boolean isMessageRouterType(String type) { + return type.equals(Constants.MESSAGE_ROUTER) || type.equals(Constants.MESSAGEROUTER_VALUE); + } + + public String getNamePrefix(String name) { + return name.isEmpty() ? "" : name + "_"; + } + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/BlueprintService.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/BlueprintService.java new file mode 100644 index 0000000..83c43cf --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/BlueprintService.java @@ -0,0 +1,157 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.base; + +import org.onap.blueprintgenerator.model.base.Blueprint; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.componentspec.base.ComponentSpec; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + + +import java.io.File; +import java.io.IOException; +import java.io.FileWriter; +import java.io.BufferedWriter; +import java.io.PrintWriter; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.regex.Pattern; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Service: For Adding Quotes and Converting Blueprint to Yaml/String + */ + +@Service +public abstract class BlueprintService { + + @Autowired + protected FixesService fixesService; + + @Qualifier("objectMapper") + @Autowired + protected ObjectMapper objectMapper; + + @Qualifier("yamlObjectMapper") + @Autowired + protected ObjectMapper yamlObjectMapper; + + public void blueprintToYaml(ComponentSpec cs, Blueprint blueprint, Input input) { + String bluePrintName = input.getBluePrintName(); + String outputPath = input.getOutputPath(); + String comment = "# " + input.getComment() + '\n'; + + try { + File outputFile; + String name = StringUtils.isEmpty(bluePrintName) ? cs.getSelf().getName() : bluePrintName; + if(name.contains(".")) { + name = name.replaceAll(Pattern.quote("."), "_"); + } + if(name.contains(" ")) { + name = name.replaceAll(" ", ""); + } + String file = name + ".yaml"; + outputFile = new File(outputPath, file); + outputFile.getParentFile().mkdirs(); + try { + outputFile.createNewFile(); + } catch (IOException e) { + throw new RuntimeException(e); + } + + String version = "#blueprint_version: " + cs.getSelf().getVersion() + '\n'; + String description = "#description: " + cs.getSelf().getDescription() + '\n'; + + BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile, false)); + writer.write(description); + writer.write(version); + + if(input.getBpType().equals("dti") || input.getBpType().equals("m") || input.getBpType().equals("k")) + writer.write(comment); + + writer.close(); + + PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outputFile, true))); + yamlObjectMapper.writeValue(out, blueprint); + out.close(); + + if(input.getBpType().equals("dti") || input.getBpType().equals("m") || input.getBpType().equals("k")) + fixesService.fixDcaeSingleQuotes(outputFile); + else + fixesService.fixOnapSingleQuotes(outputFile); + + //new Yaml().load(new FileInputStream(outputFile)); + + System.out.println("Blueprint is created with valid YAML Format"); + } catch (Exception ex) { + throw new RuntimeException("Unable to generate YAML file from Blueprint or the generated YAML is not valid", ex); + } + } + + // Used for DCAE + public Map<String, LinkedHashMap<String, Object>> addQuotes(Map<String, LinkedHashMap<String, Object>> inputs) { + + inputs.forEach((key,value) -> { + if(value.get("type") != null){ + if (value.get("type").equals("string") && value.get("default") != null && !key.contains("policies")){ + value.replace("default", "'" + value.get("default").toString() + "'"); + } else if (value.get("type").equals("map") || value.get("type").equals("list")) { + // Commented the Code as we need to read the object as is for Map and List. If the List object is to be converted to string uncomment the below code. + /* if(inputs.get(s).get("type").equals("list")) { + String temp = inputs.get(s).get("default").toString(); + inputs.get(s).replace("default", temp); + }*/ + inputs.get(key).remove("type"); + } + } + }); + + return inputs; + } + + public String blueprintToString(ComponentSpec componentSpec, Blueprint blueprint, Input input) { + String ret = ""; + try { + ret = yamlObjectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(blueprint); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + if(input.getBpType().equals("dti") || input.getBpType().equals("m") || input.getBpType().equals("k")){ + ret = "# " + componentSpec.getSelf().getDescription() + "\n" + "# " + componentSpec.getSelf().getVersion() + "\n" + "# " + input.getComment() + "\n" + ret; + ret = fixesService.fixStringQuotes(ret); + }else + ret = fixesService.applyFixes(ret); + return ret; + } + + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/FixesService.java b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/FixesService.java new file mode 100644 index 0000000..d848cac --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/blueprintgenerator/service/base/FixesService.java @@ -0,0 +1,170 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.base; + +import org.onap.blueprintgenerator.exception.FixesException; +import org.springframework.stereotype.Service; + + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.PrintWriter; +import java.io.FileReader; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Service: For Blueprint Quotes Fixes + */ + +@Service +public class FixesService { + + public void fixDcaeSingleQuotes(File file) { + List<String> lines = new ArrayList<>(); + try { + FileReader fr = new FileReader(file); + BufferedReader br = new BufferedReader(fr); + for (String line = br.readLine(); line != null; line = br.readLine()){ + if(line.contains("'")) { + line = line.replaceAll("'\\{", "{"); + line = line.replaceAll("}'", "}"); + line = line.replaceAll("'\\[", "["); + line = line.replaceAll("]'", "]"); + line = line.replaceAll("'''''", "'"); + line = line.replaceAll("'''", "'"); + line = line.replaceAll("'''", ""); + line = line.replaceAll("''\\{", "'{"); + line = line.replaceAll("}''", "}'"); + line = line.replaceAll("''\\[", "'["); + line = line.replaceAll("]''", "]'"); + line = line.replaceAll("\"''", "'"); + line = line.replaceAll("''\"", "'"); + } + if(line.contains("get_input") || line.contains("get_secret") || line.contains("envs")) + line = line.replaceAll("'", ""); + + lines.add(line); + } + + fr.close(); + br.close(); + + FileWriter fw = new FileWriter(file); + PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file, true))); + for(String s: lines) { + out.println(); + out.write(s); + out.flush(); + } + out.close(); + fw.close(); + } catch (Exception e) { + throw new FixesException("Unable to Fix Single Quotes in Final DCAE Blueprint", e); + } + } + + public String fixStringQuotes(String string) { + String sLines[] = string.split("\n"); + String ret = ""; + for(String line: sLines) { + if(line.contains("get_input") || line.contains("get_secret") || ((line.contains("concat") || line.contains("default: ") || line.contains("description") || line.contains("dmaap") || line.contains(".\"'")) && line.contains("'"))) + line = line.replaceAll("'", ""); + + if(line.contains("'")) { + line = line.replaceAll("'\\{", "{"); + line = line.replaceAll("}'", "}"); + line = line.replaceAll("'\\[", "["); + line = line.replaceAll("]'", "]"); + line = line.replaceAll("'''''", "'"); + line = line.replaceAll("'''", "'"); + line = line.replaceAll("'''", ""); + line = line.replaceAll("''\\{", "'{"); + line = line.replaceAll("}''", "}'"); + line = line.replaceAll("''\\[", "'["); + line = line.replaceAll("]''", "]'"); + line = line.replaceAll("\"''", "'"); + line = line.replaceAll("''\"", "'"); + } + ret = ret + "\n" + line; + } + return ret; + } + + public void fixOnapSingleQuotes(File file) { + List<String> lines = new ArrayList<>(); + try { + FileReader fr = new FileReader(file); + BufferedReader br = new BufferedReader(fr); + for (String line = br.readLine(); line != null; line = br.readLine()){ + if(line.contains("'")) { + line = line.replace("'", ""); + } + if(line.contains("\"\"") && (line.contains("m") || line.contains("M"))) { + line = line.replaceAll("\"\"", "\""); + } + lines.add(line); + + } + fr.close(); + br.close(); + FileWriter fw = new FileWriter(file); + PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file, true))); + for(String s: lines) { + out.println(); + out.write(s); + out.flush(); + } + + out.close(); + fw.close(); + + } catch (Exception e) { + throw new FixesException("Unable to Fix Single Quotes in final ONAP Blueprint", e); + } + } + + private String ensureNoSingleQuotes(String line) { + if ((line.contains("concat") || line.contains("default: ") || line.contains("description") || line.contains("dmaap") || line.contains(".\"'")) && line.contains("'")) + return line.replace("'", ""); + else + return line; + } + + public String applyFixes(String bp) { + List<String> lines = new ArrayList<>(); + String[] linesPre = bp.split("\n"); + for (String line : linesPre) { + lines.add(ensureNoSingleQuotes(line)); + } + return String.join("\n", lines); + } + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/policycreate/exception/PolicyCreateException.java b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/exception/PolicyCreateException.java new file mode 100644 index 0000000..e848437 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/exception/PolicyCreateException.java @@ -0,0 +1,43 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.policycreate.exception; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Exception: For Policy Create + */ + +public class PolicyCreateException extends RuntimeException{ + + public PolicyCreateException(String errorMessage) { + super(errorMessage); + } + + public PolicyCreateException(String errorMessage, Throwable err) { + super(errorMessage, err); + } +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyModel.java b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyModel.java new file mode 100644 index 0000000..3d8c1a7 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyModel.java @@ -0,0 +1,49 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.policycreate.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Create Model: For Policy Model + */ + +@Data +@JsonInclude(value=Include.NON_NULL) +public class PolicyModel { + + private String tosca_definition_version; + private Map<String, PolicyModelNode> node_types; + private Map<String, PolicyModelNode> data_types; + +} + diff --git a/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyModelNode.java b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyModelNode.java new file mode 100644 index 0000000..eac29b6 --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyModelNode.java @@ -0,0 +1,47 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.policycreate.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Create Model: For Policy Model Node + */ + +@Data +@JsonInclude(value=Include.NON_NULL) +public class PolicyModelNode { + + private String derived_from; + private Map<String, PolicyProperties> properties; + +} diff --git a/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyProperties.java b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyProperties.java new file mode 100644 index 0000000..f12e76d --- /dev/null +++ b/mod/bpgenerator/common/src/main/java/org/onap/policycreate/model/PolicyProperties.java @@ -0,0 +1,45 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.policycreate.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by both ONAp and DCAE Blueprint Applications + * Policy Create Model: For Policy Properties + */ + +@Data +@JsonInclude(value=Include.NON_NULL) +public class PolicyProperties { + + private String type; + private Object entry_schema; + +}
\ No newline at end of file diff --git a/mod/bpgenerator/onap/pom.xml b/mod/bpgenerator/onap/pom.xml new file mode 100644 index 0000000..799a683 --- /dev/null +++ b/mod/bpgenerator/onap/pom.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ /* + ~ * ============LICENSE_START======================================================= + ~ * org.onap.dcae + ~ * ================================================================================ + ~ * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + ~ * ================================================================================ + ~ * Licensed 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. + ~ * ============LICENSE_END========================================================= + ~ */ + ~ + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.onap.dcaegen2.platform</groupId> + <artifactId>blueprint-generator-onap</artifactId> + <version>1.7.0</version> + <packaging>jar</packaging> + + <name>Onap</name> + <description>This Application is used to generate ONAP Blueprint YAML Files for given Component Specs</description> + + <parent> + <groupId>org.onap.dcaegen2.platform</groupId> + <artifactId>blueprint-generator</artifactId> + <version>1.7.0-SNAPSHOT</version> + </parent> + + <dependencies> + <dependency> + <groupId>org.onap.dcaegen2.platform</groupId> + <artifactId>blueprint-generator-common</artifactId> + <version>2.0.0</version> + <scope>compile</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>2.2.5.RELEASE</version> + <executions> + <execution> + <goals> + <goal>repackage</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + <finalName>onap-blueprint-generator-${project.version}</finalName> + </build> + +</project>
\ No newline at end of file diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/BlueprintGeneratorMainApplication.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/BlueprintGeneratorMainApplication.java new file mode 100644 index 0000000..3b9dd49 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/BlueprintGeneratorMainApplication.java @@ -0,0 +1,110 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator; + + +import org.onap.blueprintgenerator.model.base.Blueprint; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.model.componentspec.base.ComponentSpec; +import org.onap.blueprintgenerator.service.OnapBlueprintService; +import org.onap.blueprintgenerator.service.common.CommonUtils; +import org.onap.blueprintgenerator.service.common.ComponentSpecService; +import org.onap.blueprintgenerator.service.dmaap.DmaapBlueprintService; +import org.onap.policycreate.service.PolicyModelService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +import static java.lang.System.exit; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP - Blueprint Generator Main Application to create Policy Models or Blueprints + */ + +@ComponentScan({"org.onap.blueprintgenerator","org.onap.policycreate"}) +@SpringBootApplication +public class BlueprintGeneratorMainApplication implements CommandLineRunner { + + @Autowired + private ComponentSpecService componentSpecService; + + @Autowired + private PolicyModelService policyModelService; + + @Autowired + private CommonUtils commonUtils; + + @Autowired + private PolicyModelService onapPolicyModelNodeService; + + @Autowired + private ComponentSpecService onapComponentSpecService; + + @Autowired + private CommonUtils onapCommonUtils; + + @Autowired + private OnapBlueprintService onapBlueprintService; + + @Autowired + private DmaapBlueprintService dmaapBlueprintService; + + public static void main(String[] args) { + SpringApplication.run(BlueprintGeneratorMainApplication.class, args); + } + + @Override + public void run(String... args) { + if (args.length >=2 && args[0].equals("app") && args[1].equals("ONAP")) { + onapCommonUtils.printInstructions(); + if(args.length >=4 && args[2].equals("-type") && args[3].equals("policycreate")){ + Input input = onapCommonUtils.parseInputs(args); + ComponentSpec componentSpec = componentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + onapPolicyModelNodeService.createPolicyModels(componentSpec.getParameters(), input.getOutputPath()); + } + else { + Input input = onapCommonUtils.parseInputs(args); + OnapComponentSpec onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + if (input.getBpType().equals("o")) { + Blueprint blueprint = onapBlueprintService.createBlueprint(onapComponentSpec, input); + onapBlueprintService.blueprintToYaml(onapComponentSpec, blueprint, input); + System.out.println(onapBlueprintService.blueprintToString(onapComponentSpec, blueprint, input)); + } else if (input.getBpType().equals("d")) { + Blueprint blueprint = dmaapBlueprintService.createBlueprint(onapComponentSpec, input); + dmaapBlueprintService.blueprintToYaml(onapComponentSpec, blueprint, input); + System.out.println(dmaapBlueprintService.blueprintToString(onapComponentSpec, blueprint, input)); + } + } + } + + exit(0); + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ExternalCertificateParameters.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ExternalCertificateParameters.java new file mode 100644 index 0000000..d7c76a9 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ExternalCertificateParameters.java @@ -0,0 +1,47 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import org.onap.blueprintgenerator.constants.Constants; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: External Certificate Parameters + */ + + +@Data +public class ExternalCertificateParameters { + + @JsonProperty(Constants.COMMON_NAME_FIELD) + private GetInput commonName; + + @JsonProperty(Constants.SANS_FIELD) + private GetInput sans; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ExternalTlsInfo.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ExternalTlsInfo.java new file mode 100644 index 0000000..197104d --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ExternalTlsInfo.java @@ -0,0 +1,60 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import org.onap.blueprintgenerator.constants.Constants; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: External TLS Info + */ + + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class ExternalTlsInfo { + + @JsonProperty(Constants.EXTERNAL_CERT_DIRECTORY_FIELD) + private String externalCertDirectory; + + @JsonProperty(Constants.USE_EXTERNAL_TLS_FIELD) + private GetInput useExternalTls; + + @JsonProperty(Constants.CA_NAME_FIELD) + private GetInput caName; + + @JsonProperty(Constants.CERT_TYPE_FIELD) + private GetInput certType; + + @JsonProperty(Constants.EXTERNAL_CERTIFICATE_PARAMETERS_FIELD) + private ExternalCertificateParameters externalCertificateParameters; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/GetAttribute.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/GetAttribute.java new file mode 100644 index 0000000..2d5bca7 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/GetAttribute.java @@ -0,0 +1,44 @@ + +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Get Attribute + */ + + +@Data +public class GetAttribute { + + @JsonProperty("get_attribute") + private Object attribute; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Info.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Info.java new file mode 100644 index 0000000..3721d55 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Info.java @@ -0,0 +1,54 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Info + */ + + +@Data +@JsonInclude(value= Include.NON_NULL) +public class Info { + + private GetInput topic_url; + + private GetInput username; + + private GetInput password; + + private GetInput location; + + private GetInput delivery_url; + + private GetInput subscriber_id; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Interfaces.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Interfaces.java new file mode 100644 index 0000000..04ef7e7 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Interfaces.java @@ -0,0 +1,42 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + + +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Interfaces + */ + + +@Data +public class Interfaces { + + private Start start; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Node.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Node.java new file mode 100644 index 0000000..ea28d62 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Node.java @@ -0,0 +1,51 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Node derived from Common Module Node Model used by both DCAE and ONAP + */ + + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Node extends org.onap.blueprintgenerator.model.base.Node { + + private Map<String, Interfaces> interfaces; + + private Properties properties; + + private List<Map<String, String>> relationships; +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/OnapBlueprint.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/OnapBlueprint.java new file mode 100644 index 0000000..4dd7b0f --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/OnapBlueprint.java @@ -0,0 +1,48 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import org.onap.blueprintgenerator.model.base.Blueprint; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Blueprint derived from Common Module Blueprint Model used by both DCAE and ONAP + */ + + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class OnapBlueprint extends Blueprint { + + private Map<String, Node> node_templates; + +}
\ No newline at end of file diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PgaasNode.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PgaasNode.java new file mode 100644 index 0000000..af6fb54 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PgaasNode.java @@ -0,0 +1,46 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Pgaas Node + */ + + +@Data +@NoArgsConstructor +public class PgaasNode extends Node { + + @JsonProperty("properties") + private PgaasNodeProperties pgaasNodeProperties; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PgaasNodeProperties.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PgaasNodeProperties.java new file mode 100644 index 0000000..37ddb73 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PgaasNodeProperties.java @@ -0,0 +1,49 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Pgaas Node Properties + */ + + + +@Data +public class PgaasNodeProperties { + + @JsonProperty("writerfqdn") + private GetInput writerfqdn; + + @JsonProperty("name") + private GetInput name; + + @JsonProperty("use_existing") + private boolean useExisting; +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyModel.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyModel.java new file mode 100644 index 0000000..08b9096 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyModel.java @@ -0,0 +1,48 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Policy Model + */ + + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PolicyModel { + + private String tosca_definition_version; + private Map<String, PolicyModelNode> node_types; + private Map<String, PolicyModelNode> data_types; + + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyModelNode.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyModelNode.java new file mode 100644 index 0000000..c418b8e --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyModelNode.java @@ -0,0 +1,47 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Policy Model Node + */ + + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PolicyModelNode { + + private String derived_from; + + private Map<String, PolicyProperties> properties; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyNode.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyNode.java new file mode 100644 index 0000000..cc08814 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyNode.java @@ -0,0 +1,46 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Policy Node derived from Common Module Node Model used by both DCAE and ONAP + */ + + +@Data +@NoArgsConstructor +public class PolicyNode extends Node { + + @JsonProperty("properties") + private PolicyNodeProperties policyNodeProperties; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyNodeProperties.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyNodeProperties.java new file mode 100644 index 0000000..3f472c8 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyNodeProperties.java @@ -0,0 +1,48 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Policy Node Properties + */ + + +@Data +@NoArgsConstructor +public class PolicyNodeProperties { + + @JsonProperty("policy_id") + private GetInput policyId; + + @JsonProperty("policy_model_id") + private String policyModelId; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyProperties.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyProperties.java new file mode 100644 index 0000000..5a63b00 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/PolicyProperties.java @@ -0,0 +1,45 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Policy Properties + */ + + +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +public class PolicyProperties { + + private String type; + + private Object entry_schema; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Properties.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Properties.java new file mode 100644 index 0000000..11fc06e --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Properties.java @@ -0,0 +1,89 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import org.onap.blueprintgenerator.model.componentspec.OnapAuxilary; +import org.onap.blueprintgenerator.model.dmaap.Streams; +import org.onap.blueprintgenerator.model.dmaap.TlsInfo; +import org.onap.blueprintgenerator.service.common.ExternalTlsInfoFactoryService; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Properties + */ + + +@Data +@JsonInclude(value = Include.NON_NULL) +public class Properties { + + private Appconfig application_config; + + private OnapAuxilary docker_config; + + private Object image; + + private GetInput location_id; + + private String service_component_type; + + private Map<String, Object> log_info; + + private String dns_name; + + private Object replicas; + + private String name; + + private GetInput topic_name; + + private GetInput feed_name; + + private List<Streams> streams_publishes; + + private List<Streams> streams_subscribes; + + private TlsInfo tls_info; + + private ResourceConfig resource_config; + + private GetInput always_pull_image; + + private Boolean useExisting; + + @JsonIgnore + private ExternalTlsInfoFactoryService externalCertFactory; + + private ExternalTlsInfo external_cert; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ResourceConfig.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ResourceConfig.java new file mode 100644 index 0000000..8b41fd2 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/ResourceConfig.java @@ -0,0 +1,45 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Resource Config + */ + + +@Data +public class ResourceConfig { + + private Map<String, GetInput> limits; + + private Map<String, GetInput> requests; + +}
\ No newline at end of file diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Services.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Services.java new file mode 100644 index 0000000..7aa1566 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Services.java @@ -0,0 +1,50 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import org.onap.blueprintgenerator.model.componentspec.common.Calls; +import org.onap.blueprintgenerator.model.componentspec.common.Provides; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Services + */ + + +@Data +@JsonInclude(value=Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Services { + + private Calls[] calls; + + private Provides[] provides; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Start.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Start.java new file mode 100644 index 0000000..3740668 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/Start.java @@ -0,0 +1,49 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Start + */ + + +@Data +@JsonInclude(value= JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Start { + + private StartInputs inputs; + + private Map<String, Object> envs; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/StartInputs.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/StartInputs.java new file mode 100644 index 0000000..458852e --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/common/StartInputs.java @@ -0,0 +1,49 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.common; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Common Model used by both ONAP and DMAAP: Start Inputs under Start + */ + + +@Data +@JsonInclude(value= JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class StartInputs { + + private Object envs; + + private List<String> ports; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/OnapAuxilary.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/OnapAuxilary.java new file mode 100644 index 0000000..0923195 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/OnapAuxilary.java @@ -0,0 +1,60 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec; + +import org.onap.blueprintgenerator.model.componentspec.base.Auxilary; +import org.onap.blueprintgenerator.model.componentspec.common.Volumes; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Component Spec Model for ONAP Auxillary derived from Common Module Auxillary used by both DCAE and ONAP + */ + + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class OnapAuxilary extends Auxilary { + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private List<Object> ports; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Map<String, Object> log_info; + + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) + private Map<String, Object> tls_info; + + private Volumes[] volumes; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/OnapComponentSpec.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/OnapComponentSpec.java new file mode 100644 index 0000000..5a64366 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/OnapComponentSpec.java @@ -0,0 +1,52 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec; + +import org.onap.blueprintgenerator.model.componentspec.base.ComponentSpec; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Component Spec Model for ONAP Component Spec derived from Common Module Component Spec used by both DCAE and ONAP + */ + + +@Data +@JsonInclude(value = JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class OnapComponentSpec extends ComponentSpec { + + private Services services; + + private OnapAuxilary auxilary; + + @JsonProperty("policy_info") + private PolicyInfo policyInfo; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/PolicyInfo.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/PolicyInfo.java new file mode 100644 index 0000000..3ec5fe3 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/PolicyInfo.java @@ -0,0 +1,45 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Component Spec Model for Policy Info + */ + + +@Data +public class PolicyInfo { + + @JsonProperty("policy") + private List<TypePolicy> typePolicyList; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/Services.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/Services.java new file mode 100644 index 0000000..b7d32a4 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/Services.java @@ -0,0 +1,51 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec; + + +import org.onap.blueprintgenerator.model.componentspec.common.Calls; +import org.onap.blueprintgenerator.model.componentspec.common.Provides; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Component Spec Model for Services + */ + + +@Data +@JsonInclude(value= Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class Services { + + private Calls[] calls; + + private Provides[] provides; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/TypePolicy.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/TypePolicy.java new file mode 100644 index 0000000..6ba7daf --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/componentspec/TypePolicy.java @@ -0,0 +1,43 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.componentspec; + +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Component Spec Model for Type Policy + */ + + +@Data +public class TypePolicy { + + private String node_label; + private String policy_id; + private String policy_model_id; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/dmaap/Streams.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/dmaap/Streams.java new file mode 100644 index 0000000..14d0c51 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/dmaap/Streams.java @@ -0,0 +1,66 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.dmaap; + +import org.onap.blueprintgenerator.model.common.GetInput; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import lombok.Data; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * DMAAP Model for Streams + */ + + +@Data +@JsonInclude(value= Include.NON_NULL) +public class Streams { + + private String name; + + private GetInput location; + + private GetInput client_role; + + private String type; + + private GetInput username; + + private GetInput password; + + //private GetInput delivery_url; + + private GetInput privileged; + + private GetInput decompress; + + private String route; + + private String scheme; + + +}
\ No newline at end of file diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/dmaap/TlsInfo.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/dmaap/TlsInfo.java new file mode 100644 index 0000000..9290bf9 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/model/dmaap/TlsInfo.java @@ -0,0 +1,49 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.model.dmaap; + +import org.onap.blueprintgenerator.model.common.GetInput; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * DMAAP Model for TLS Info + */ + + +@Data +@NoArgsConstructor +public class TlsInfo { + + @JsonProperty("cert_directory") + private String certDirectory; + + @JsonProperty("use_tls") + private GetInput useTls; + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/InfoService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/InfoService.java new file mode 100644 index 0000000..fed3707 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/InfoService.java @@ -0,0 +1,116 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service; + +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.common.Info; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Service to create Message Router and Data Router Information + */ + +@Service +public class InfoService { + + @Autowired + private BlueprintHelperService blueprintHelperService; + + // Method to create info for Message Router + public Map<String,Object> createMessageRouterInfo(Map<String, LinkedHashMap<String, Object>> inputs, String config, char type) { + + Map<String,Object> response = new HashMap<>(); + Info info = new Info(); + + LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); + stringType.put("type", "string"); + + config = config.replaceAll("-", "_"); + if(type == 'p') { + config = config + "_publish_url"; + } + else if(type == 's') { + config = config+ "_subscribe_url"; + } + + GetInput topic = new GetInput(); + topic.setBpInputName(config); + info.setTopic_url(topic); + + inputs.put(config, stringType); + + response.put("info", info); + response.put("inputs", inputs); + return response; + } + + // Method to create info for Data Router + public Map<String,Object> createDataRouterInfo(Map<String, LinkedHashMap<String, Object>> inputs, String config) { + + Map<String,Object> response = new HashMap<>(); + Info info = new Info(); + + LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); + stringType.put("type", "string"); + + String userNameInputName = blueprintHelperService.joinUnderscore(config, "username"); + GetInput username = new GetInput(userNameInputName); + info.setUsername(username); + inputs.put(userNameInputName, stringType); + + String userpasswordInputName = blueprintHelperService.joinUnderscore(config, "password"); + GetInput password = new GetInput(userpasswordInputName); + info.setPassword(password); + inputs.put(userpasswordInputName, stringType); + + String userlocationInputName = blueprintHelperService.joinUnderscore(config, "location"); + GetInput location = new GetInput(userlocationInputName); + info.setLocation(location); + inputs.put(userlocationInputName, stringType); + + String userdeliveryUrlInputName = blueprintHelperService.joinUnderscore(config, "delivery_url"); + GetInput deliveryUrl = new GetInput(userdeliveryUrlInputName); + info.setDelivery_url(deliveryUrl); + inputs.put(userdeliveryUrlInputName, stringType); + + String usersubscriberIDInputName = blueprintHelperService.joinUnderscore(config, "subscriber_id"); + GetInput subscriberID = new GetInput(usersubscriberIDInputName); + info.setSubscriber_id(subscriberID); + inputs.put(usersubscriberIDInputName, stringType); + + response.put("info", info); + response.put("inputs", inputs); + return response; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/OnapBlueprintService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/OnapBlueprintService.java new file mode 100644 index 0000000..f25c18c --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/OnapBlueprintService.java @@ -0,0 +1,111 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service; + + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.exception.BlueprintException; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.OnapBlueprint; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.service.base.BlueprintService; +import org.onap.blueprintgenerator.service.common.ImportsService; +import org.onap.blueprintgenerator.service.common.NodeService; +import org.onap.blueprintgenerator.service.common.PgaasNodeService; +import org.onap.blueprintgenerator.service.common.PolicyNodeService; +import org.onap.blueprintgenerator.service.common.QuotationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Service to create ONAP Blueprint + */ + +@Service +public class OnapBlueprintService extends BlueprintService { + + @Autowired + private NodeService nodeService; + + @Autowired + private PolicyNodeService policyNodeService; + + @Autowired + private PgaasNodeService pgaasNodeService; + + @Autowired + private QuotationService quotationService; + + @Autowired + protected ImportsService importsService; + + // Method to generate Onap Blueprint + public OnapBlueprint createBlueprint(OnapComponentSpec onapComponentSpec, Input input) { + try { + OnapBlueprint blueprint = new OnapBlueprint(); + blueprint.setTosca_definitions_version(Constants.TOSCA_DEF_VERSION); + + //if (!"".equals(input.getImportPath())) + if (!StringUtils.isEmpty(input.getImportPath())) + blueprint.setImports(importsService.createImportsFromFile(input.getImportPath())); + else + blueprint.setImports(importsService.createImports(input.getBpType())); + + Map<String, Node> nodeTemplate = new TreeMap<>(); + String nodeName = onapComponentSpec.getSelf().getName(); + Map<String, LinkedHashMap<String, Object>> inputs = new TreeMap<>(); + + Map<String, Object> onapNodeResponse = nodeService.createOnapNode(inputs, onapComponentSpec, input.getServiceNameOverride()); + inputs = (Map<String, LinkedHashMap<String, Object>>) onapNodeResponse.get("inputs"); + nodeTemplate.put(nodeName, (Node) onapNodeResponse.get("onapNode")); + blueprint.setNode_templates(nodeTemplate); + + if (onapComponentSpec.getPolicyInfo() != null) + policyNodeService.addPolicyNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + + if (onapComponentSpec.getAuxilary() != null && onapComponentSpec.getAuxilary().getDatabases() != null) + pgaasNodeService.addPgaasNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + + blueprint.setInputs(inputs); + + return quotationService.setQuotations(blueprint); + } catch (Exception ex) { + throw new BlueprintException("Unable to create ONAP Blueprint Object from given input parameters", ex); + } + } + + +} + + + diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java new file mode 100644 index 0000000..c6d744c --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/AppConfigService.java @@ -0,0 +1,166 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.Appconfig; +import org.onap.blueprintgenerator.model.common.Dmaap; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.model.componentspec.common.Calls; +import org.onap.blueprintgenerator.model.componentspec.common.Parameters; +import org.onap.blueprintgenerator.model.componentspec.common.Publishes; +import org.onap.blueprintgenerator.model.componentspec.common.Subscribes; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to create App Config + */ + + +@Service("onapAppConfigService") +public class AppConfigService { + + @Autowired + private DmaapService dmaapService; + + @Autowired + private BlueprintHelperService blueprintHelperService; + + public Map<String,Object> createAppconfig(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec, String override, boolean isDmaap) { + + Map<String,Object> response = new HashMap<>(); + Appconfig appconfig = new Appconfig(); + + Calls[] call = new Calls[0]; + appconfig.setService_calls(call); + + Map<String, Dmaap> streamPublishes = new TreeMap<>(); + if(onapComponentSpec.getStreams() != null) { + if (onapComponentSpec.getStreams().getPublishes() != null) { + for (Publishes publishes : onapComponentSpec.getStreams().getPublishes()) { + if (blueprintHelperService.isDataRouterType(publishes.getType())) { + String config = publishes.getConfig_key(); + String name = config + Constants._FEED; + Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapDataRouter(inputs, config, name, isDmaap); + inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs"); + Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap"); + dmaap.setType(publishes.getType()); + streamPublishes.put(config, dmaap); + } else if (blueprintHelperService.isMessageRouterType(publishes.getType())) { + String config = publishes.getConfig_key(); + String name = config + Constants._TOPIC; + Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapMessageRouter(inputs, config, 'p', name, name, isDmaap); + inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs"); + Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap"); + dmaap.setType(publishes.getType()); + streamPublishes.put(config, dmaap); + } + } + } + } + + Map<String, Dmaap> streamSubscribes = new TreeMap<>(); + + if(onapComponentSpec.getStreams() != null) { + if (onapComponentSpec.getStreams().getSubscribes() != null) { + for (Subscribes subscribes : onapComponentSpec.getStreams().getSubscribes()) { + if (blueprintHelperService.isDataRouterType(subscribes.getType())) { + String config = subscribes.getConfig_key(); + String name = config + Constants._FEED; + Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapDataRouter(inputs, config, name, isDmaap); + inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs"); + Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap"); + dmaap.setType(subscribes.getType()); + streamSubscribes.put(config, dmaap); + } else if (blueprintHelperService.isMessageRouterType(subscribes.getType())) { + String config = subscribes.getConfig_key(); + String name = config + Constants._TOPIC; + Map<String, Object> dmaapDataRouterResponse = dmaapService.createDmaapMessageRouter(inputs, config, 's', name, name, isDmaap); + inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapDataRouterResponse.get("inputs"); + Dmaap dmaap = (Dmaap) dmaapDataRouterResponse.get("dmaap"); + dmaap.setType(subscribes.getType()); + streamSubscribes.put(config, dmaap); + } + } + } + } + + appconfig.setStreams_publishes(streamPublishes); + appconfig.setStreams_subscribes(streamSubscribes); + + Map<String, Object> parameters = new TreeMap<>(); + for(Parameters p: onapComponentSpec.getParameters()) { + String pName = p.getName(); + if(p.isSourced_at_deployment()) { + GetInput paramInput = new GetInput(); + paramInput.setBpInputName(pName); + parameters.put(pName, paramInput); + if(!"".equals(p.getValue())) { + LinkedHashMap<String, Object> pInputs = blueprintHelperService.createStringInput( p.getValue()); + inputs.put(pName, pInputs); + } else { + LinkedHashMap<String, Object> pInputs = new LinkedHashMap<>(); + pInputs.put("type", "string"); + inputs.put(pName, pInputs); + } + } else { + if("string".equals(p.getType())) { + String val =(String) p.getValue(); + val = '"' + val + '"'; + parameters.put(pName, val); + } + else { + parameters.put(pName, p.getValue()); + // Updated code to resolve the issue of missing \ for collector.schema.file + //parameters.put(pName, pName.equals("collector.schema.file") ? ((String)p.getValue()).replace("\"", "\\\"") : p.getValue()); + } + } + } + if(override != null) { + GetInput ov = new GetInput(); + ov.setBpInputName(Constants.SERVICE_COMPONENT_NAME_OVERRIDE); + parameters.put(Constants.SERVICE_COMPONENT_NAME_OVERRIDE, ov); + LinkedHashMap<String, Object> over = blueprintHelperService.createStringInput( override); + inputs.put(Constants.SERVICE_COMPONENT_NAME_OVERRIDE, over); + } + appconfig.setParams(parameters); + + response.put("appconfig", appconfig); + response.put("inputs", inputs); + return response; + + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java new file mode 100644 index 0000000..97ed47f --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/CommonUtils.java @@ -0,0 +1,152 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + + + +import org.apache.commons.cli.CommandLineParser; +import org.apache.commons.cli.HelpFormatter; +import org.apache.commons.cli.ParseException; +import org.apache.commons.cli.DefaultParser; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.CommandLine; +import org.onap.blueprintgenerator.model.common.Input; + +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import static java.lang.System.exit; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to Print Instructions and Parse Inputs + */ + + +@Service("onapCommonUtilsService") +public class CommonUtils { + + public void printInstructions() { + System.out.println("OPTIONS:"); + System.out.println("-i OR --component-spec: The path of the ONAP Blueprint INPUT JSON SPEC FILE (Required)"); + System.out.println("-p OR --blueprint-path: The path of the ONAP Blueprint OUTPUT where it will be saved (Required)"); + System.out.println("-n OR --blueprint-name: The NAME of the ONAP Blueprint OUTPUT that will be created (Optional)"); + System.out.println("-t OR --imports: The path of the ONAP Blueprint IMPORT FILE (Optional)"); + System.out.println("-o OR --service-name-override: The Value used to OVERRIDE the SERVICE NAME of the ONAP Blueprint (Optional)"); + System.out.println("-d OR --dmaap-plugin: The option to create a ONAP Blueprint with DMAAP Plugin (Optional)"); + System.out.println("Syntax to run from command line: \n For Blueprint : java -jar target/<JAR Filename>.jar app ONAP -i componentspec -p OutputBlueprintPath -n Blueprintname -d \n For PolicyCreate: java -jar target/<JAR Filename>.jar app ONAP -type policycreate -i componentspec -p OutputPolicyPath"); + } + + public Input parseInputs(String[] args) { + String[] modArgs = new String[args.length]; + for(int i=0; i<args.length; i++){ + if(args[i].contains("--component-spec")) + modArgs[i] = "-_component_spec"; + else if(args[i].contains("--blueprint-path")) + modArgs[i] = "-_blueprint_path"; + else if(args[i].contains("--blueprint-name")) + modArgs[i] = "-_blueprint_name"; + else if(args[i].contains("--imports")) + modArgs[i] = "-_imports"; + else if(args[i].contains("--service-name-override")) + modArgs[i] = "-_service_name_override"; + else if(args[i].contains("--dmaap-plugin")) + modArgs[i] = "-_dmaap_plugin"; + else + modArgs[i] = args[i]; + } + String commands = " "; + for (String s : modArgs) { + + commands = commands + " " + s; + } + + //checks if the required inputs are present or not + if (!(commands.contains(" -i ")|| commands.contains(" -_component_spec ")) + && !(commands.contains(" -p ") || commands.contains(" -_blueprint_path ") ) ) { + System.out.println("\n Please enter the ONAP Blueprint required inputs for: \n -i (The path of the ONAP Blueprint INPUT JSON SPEC FILE), \n -p (The path of the ONAP Blueprint OUTPUT where it will be saved)"); + exit(-1); + } + + + CommandLineParser parser = new DefaultParser(); + HelpFormatter formatter = new HelpFormatter(); + + Options options = new Options(); + + options.addOption("i", "Spec", true, "ComponentSpec Input File of the ONAP Blueprint"); + options.addOption("_component_spec", "Spec", true, "ComponentSpec Input File of the ONAP Blueprint"); + options.addOption("p", "Path", true, "Path of the ONAP Blueprint OUTPUT"); + options.addOption("_blueprint_path", "Path", true, "Path of the ONAP Blueprint OUTPUT"); + options.addOption("n", "name", true, "NAME of the ONAP Blueprint OUTPUT"); + options.addOption("_blueprint_name", "name", true, "NAME of the ONAP Blueprint OUTPUT"); + options.addOption("t", "Import File", true, "Import file for the OUTPUT Blueprint Imports"); + options.addOption("_imports", "Import File", true, "Import file for the OUTPUT Blueprint Imports"); + options.addOption("o", "Service name Override", true, "Value used to override the OUTPUT Blueprint service name"); + options.addOption("_service_name_override", "Service name Override", true, "Value used to override the OUTPUT Blueprint service name"); + options.addOption("d", "Dmaap Plugin", false, "Flag used to indicate ONAP Blueprint OUTPUT uses the DMaaP plugin"); + options.addOption("_dmaap_plugin", "Dmaap Plugin", false, "Flag used to indicate ONAP Blueprint OUTPUT uses the DMaaP plugin"); + + Input input = new Input(); + try { + CommandLine commandLine = parser.parse(options, modArgs); + input.setComponentSpecPath(commandLine.getOptionValue("i") == null ? commandLine.getOptionValue("_component_spec") : commandLine.getOptionValue("i")); + input.setOutputPath(commandLine.getOptionValue("p") == null ? commandLine.getOptionValue("_blueprint_path") : commandLine.getOptionValue("p")); + input.setBluePrintName(commandLine.getOptionValue("n") == null ? commandLine.getOptionValue("_blueprint_name") : commandLine.getOptionValue("n")); + input.setImportPath(commandLine.getOptionValue("t") == null ? commandLine.getOptionValue("_imports") : commandLine.getOptionValue("t")); + input.setBpType((commands.contains(" -d ") || commands.contains(" -_dmaap_plugin ") ) ? "d" : "o"); + input.setServiceNameOverride(commandLine.getOptionValue("o") == null ? commandLine.getOptionValue("_service_name_override") == null ? "" : commandLine.getOptionValue("_service_name_override") : commandLine.getOptionValue("o")); + } catch (ParseException ex) { + ex.printStackTrace(); + System.out.println(ex.getMessage()); + formatter.printHelp("Required/Valid Inputs to create ONAP Blueprint are not provided", options); + exit(-1); + } + if (StringUtils.isEmpty(input.getComponentSpecPath())) { + System.out.println("The path of the ONAP Blueprint INPUT JSON SPEC FILE is not specified"); + exit(-1); + } + if (StringUtils.isEmpty(input.getOutputPath())) { + System.out.println("The path of the ONAP Blueprint OUTPUT where it will be saved is not specified"); + exit(-1); + } + if (commands.contains(" -n ") || commands.contains(" -_blueprint_name ")) { + if (StringUtils.isEmpty(input.getBluePrintName())) { + System.out.println("The NAME of the ONAP Blueprint OUTPUT that will be created is not specified"); + exit(-1); + } + } + if (commands.contains(" -t ")|| commands.contains(" -_imports ")) { + if (StringUtils.isEmpty(input.getImportPath())) { + System.out.println("The path of the ONAP Blueprint Imports File is not specified"); + exit(-1); + } + } + + return input; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ComponentSpecService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ComponentSpecService.java new file mode 100644 index 0000000..e8d648d --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ComponentSpecService.java @@ -0,0 +1,66 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.exception.ComponentSpecException; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; + +import java.io.File; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to create Component Spec from File + */ + + +@Service("onapComponentSpecService") +public class ComponentSpecService { + + @Qualifier("objectMapper") + @Autowired + private ObjectMapper componentMapper; + + @Qualifier("yamlObjectMapper") + @Autowired + private ObjectMapper yamlComponentMapper; + + public OnapComponentSpec createComponentSpecFromFile(String componentSpecPath) { + OnapComponentSpec componentSpec; + try { + if(!componentSpecPath.endsWith(".json")) + componentMapper = yamlComponentMapper; + componentSpec = componentMapper.readValue(new File(componentSpecPath), OnapComponentSpec.class); + } catch (Exception ex) { + throw new ComponentSpecException("Unable to create ONAP Component Spec from the input file: "+ componentSpecPath, ex); + } + return componentSpec; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/DmaapService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/DmaapService.java new file mode 100644 index 0000000..d4b2c42 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/DmaapService.java @@ -0,0 +1,103 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.model.common.Dmaap; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.service.InfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add DMAAP Message and Data Routers + */ + + +@Service +public class DmaapService { + + @Autowired + private InfoService infoService; + + // Method is used to create the Dmaap Message Router + public Map<String,Object> createDmaapMessageRouter(Map<String, LinkedHashMap<String, Object>> inputs,String config, char type, String counter, String num, boolean isDmaap) { + + Map<String,Object> response = new HashMap<>(); + Dmaap dmaap = new Dmaap(); + + LinkedHashMap<String, Object> stringType = new LinkedHashMap(); + stringType.put("type", "string"); + + if(!isDmaap){ + Map<String, Object> infoResponse = infoService.createMessageRouterInfo(inputs, config, type); + inputs = (Map<String, LinkedHashMap<String, Object>>) infoResponse.get("inputs"); + dmaap.setDmaap_info(infoResponse.get("info")); + } + else{ + String infoType = "<<" + counter + ">>"; + dmaap.setDmaap_info(infoType); + + GetInput u = new GetInput(); + u.setBpInputName(config + "_" + num +"_aaf_username"); + dmaap.setUser(u); + inputs.put(config + "_" + num +"_aaf_username", stringType); + + GetInput p = new GetInput(); + p.setBpInputName(config + "_" + num +"_aaf_password"); + dmaap.setPass(p); + inputs.put(config + "_" + num +"_aaf_password", stringType); + } + response.put("dmaap", dmaap); + response.put("inputs", inputs); + return response; + } + + // Method is used to create the Dmaap Data Router + public Map<String,Object> createDmaapDataRouter(Map<String, LinkedHashMap<String, Object>> inputs, String config, String counter, boolean isDmaap) { + + Map<String,Object> response = new HashMap<>(); + Dmaap dmaap = new Dmaap(); + + if(!isDmaap){ + Map<String, Object> infoResponse = infoService.createDataRouterInfo(inputs, config); + inputs = (Map<String, LinkedHashMap<String, Object>>) infoResponse.get("inputs"); + dmaap.setDmaap_info(infoResponse.get("info")); + } + else { + String infoType = "<<" + counter + ">>"; + dmaap.setDmaap_info(infoType); + } + response.put("dmaap", dmaap); + response.put("inputs", inputs); + return response; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalCertificateDataFactoryService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalCertificateDataFactoryService.java new file mode 100644 index 0000000..ab48ada --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalCertificateDataFactoryService.java @@ -0,0 +1,50 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 Nokia. All rights reserved. + * * Copyright (c) 2020 AT&T. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.springframework.stereotype.Service; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add External Certificate Data Factory + */ + + +@Service +public abstract class ExternalCertificateDataFactoryService { + + // Method to concatenate Constant with field + protected static GetInput createPrefixedGetInput(String fieldName) { + return new GetInput(addPrefix(fieldName)); + } + + // Method to concatenate the Constant INPUT_PREFIX to the input field + protected static String addPrefix(String fieldName) { return Constants.INPUT_PREFIX + fieldName; } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalCertificateParametersFactoryService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalCertificateParametersFactoryService.java new file mode 100644 index 0000000..b739e4b --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalCertificateParametersFactoryService.java @@ -0,0 +1,71 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.ExternalCertificateParameters; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add External Certificate Parameters + */ + + +@Service +public class ExternalCertificateParametersFactoryService extends ExternalCertificateDataFactoryService { + + @Autowired + private BlueprintHelperService blueprintHelperService; + + // method to create external certificate parameters + public ExternalCertificateParameters create() { + ExternalCertificateParameters externalCertificateParameters = new ExternalCertificateParameters(); + externalCertificateParameters.setCommonName(createPrefixedGetInput(Constants.COMMON_NAME_FIELD)); + externalCertificateParameters.setSans(createPrefixedGetInput(Constants.SANS_FIELD)); + return externalCertificateParameters; + } + + // method to create input list for external certificate parameters factory + public Map<String, LinkedHashMap<String, Object>> createInputList() { + Map<String, LinkedHashMap<String, Object>> retInputs = new LinkedHashMap<>(); + + LinkedHashMap<String, Object> commonNameInputMap = blueprintHelperService.createStringInput("Common name which should be present in certificate.",Constants.DEFAULT_COMMON_NAME); + retInputs.put(addPrefix(Constants.COMMON_NAME_FIELD), commonNameInputMap); + + LinkedHashMap<String, Object> sansInputMap = blueprintHelperService.createStringInput("\"List of Subject Alternative Names (SANs) which should be present in certificate. " + + "Delimiter - : Should contain a common_name value and other FQDNs under which the given " +"component is accessible.\"",Constants.DEFAULT_SANS); + retInputs.put(addPrefix(Constants.SANS_FIELD), sansInputMap); + + return retInputs; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalTlsInfoFactoryService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalTlsInfoFactoryService.java new file mode 100644 index 0000000..10364ab --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ExternalTlsInfoFactoryService.java @@ -0,0 +1,87 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.ExternalTlsInfo; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add External TLS Info + */ + + +@Service +public class ExternalTlsInfoFactoryService extends ExternalCertificateDataFactoryService { + + @Autowired + private ExternalCertificateParametersFactoryService externalCertificateParametersFactoryService; + + @Autowired + private BlueprintHelperService blueprintHelperService; + + //Method to create External TLS Info from Component Spec + public ExternalTlsInfo createFromComponentSpec(OnapComponentSpec cs) { + ExternalTlsInfo externalTlsInfoBp = new ExternalTlsInfo(); + Map<String, Object> tlsInfoCs = cs.getAuxilary().getTls_info(); + + externalTlsInfoBp.setExternalCertDirectory((String) tlsInfoCs.get(Constants.CERT_DIRECTORY_FIELD)); + externalTlsInfoBp.setUseExternalTls(createPrefixedGetInput(Constants.USE_EXTERNAL_TLS_FIELD)); + externalTlsInfoBp.setCaName(createPrefixedGetInput(Constants.CA_NAME_FIELD)); + externalTlsInfoBp.setCertType(createPrefixedGetInput(Constants.CERT_TYPE_FIELD)); + externalTlsInfoBp.setExternalCertificateParameters(externalCertificateParametersFactoryService.create()); + + return externalTlsInfoBp; + } + + //Method to create Input List for External TLS Info from Component Spec + public Map<String, LinkedHashMap<String, Object>> createInputListFromComponentSpec(OnapComponentSpec cs) { + + Map<String, LinkedHashMap<String, Object>> retInputs = new HashMap<>(); + + Map<String, Object> externalTlsInfoCs = cs.getAuxilary().getTls_info(); + LinkedHashMap<String, Object> useTlsFlagInput = blueprintHelperService.createBooleanInput("Flag to indicate external tls enable/disable.",externalTlsInfoCs.get(Constants.USE_EXTERNAL_TLS_FIELD)); + retInputs.put(addPrefix(Constants.USE_EXTERNAL_TLS_FIELD), useTlsFlagInput); + + LinkedHashMap<String, Object> caNameInputMap = blueprintHelperService.createStringInput("Name of Certificate Authority configured on CertService side.",Constants.DEFAULT_CA); + retInputs.put(addPrefix(Constants.CA_NAME_FIELD), caNameInputMap); + + LinkedHashMap<String, Object> certTypeInputMap = blueprintHelperService.createStringInput("Format of provided certificates",Constants.DEFAULT_CERT_TYPE); + retInputs.put(addPrefix(Constants.CERT_TYPE_FIELD), certTypeInputMap); + + retInputs.putAll(externalCertificateParametersFactoryService.createInputList()); + return retInputs; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ImportsService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ImportsService.java new file mode 100644 index 0000000..cb9c03c --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ImportsService.java @@ -0,0 +1,98 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.onap.blueprintgenerator.model.common.Imports; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: DCAE/ONAP - Blueprint Generator + * Common Module: Used by ONAP Blueprint Application + * Service: For Imports + */ + +@Service +public class ImportsService { + + @Value("${imports.onap.types}") + private String importsOnapTypes; + + @Value("${imports.onap.K8s.plugintypes}") + private String importsOnapK8sPlugintypes; + + @Value("${imports.onap.K8s.dcaepolicyplugin}") + private String importsOnapK8sDcaepolicyplugin; + + @Value("${imports.dmaap.dmaapplugin}") + private String importsDmaapDmaapplugin; + + @Value("${import.Postgres}") + private String importPostgres; + + @Value("${import.Clamp}") + private String importClamp; + + + @Qualifier("yamlObjectMapper") + @Autowired + protected ObjectMapper yamlObjectMapper; + + public List<String> createImports(String bpType) { + List<String> imports = new ArrayList<>(); + if (bpType.equals("o")) { + imports.add(importsOnapTypes); + imports.add(importsOnapK8sPlugintypes); + imports.add(importsOnapK8sDcaepolicyplugin); + imports.add(importPostgres); + imports.add(importClamp); + } + else { + imports.add(importsOnapTypes); + imports.add(importsOnapK8sPlugintypes); + imports.add(importsDmaapDmaapplugin); + imports.add(importPostgres); + imports.add(importClamp); + } + return imports; + } + + public List<String> createImportsFromFile(String path) throws IOException { + File importPath = new File(path); + Imports imports = yamlObjectMapper.readValue(importPath, Imports.class); + imports.getImports().removeIf(String::isBlank); + return imports.getImports(); + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/InterfacesService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/InterfacesService.java new file mode 100644 index 0000000..bfd14a4 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/InterfacesService.java @@ -0,0 +1,67 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.model.common.Interfaces; +import org.onap.blueprintgenerator.model.common.Start; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add Interfaces + */ + + +@Service +public class InterfacesService { + + @Autowired + private StartService startService; + + // Method to create Interface to include Start and Start inputs sections in BP + public Map<String,Object> createInterface(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec){ + + Map<String,Object> response = new HashMap<>(); + Interfaces interfaces = new Interfaces(); + + Map<String, Object> startResponse = startService.createStart(inputs, onapComponentSpec); + inputs = (Map<String, LinkedHashMap<String, Object>>) startResponse.get("inputs"); + + interfaces.setStart((Start) startResponse.get("start")); + + response.put("interfaces", interfaces); + response.put("inputs", inputs); + return response; + } + +} + diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/NodeService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/NodeService.java new file mode 100644 index 0000000..b8da0d7 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/NodeService.java @@ -0,0 +1,222 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.common.Interfaces; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.Properties; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.model.componentspec.common.Publishes; +import org.onap.blueprintgenerator.model.componentspec.common.Subscribes; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.TreeMap; +import java.util.List; + + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add ONAP/DMAAP/Feed/Topic Nodes + */ + + +@Service +public class NodeService { + + @Autowired + private InterfacesService interfacesService; + + @Autowired + private PolicyNodeService policyNodeService; + + @Autowired + private PgaasNodeService pgaasNodeService; + + @Autowired + private PropertiesService propertiesService; + + @Autowired + private BlueprintHelperService blueprintHelperService; + + // method to create Onap Node to include interface + public Map<String,Object> createOnapNode(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec, String override) { + + Map<String,Object> response = new HashMap<>(); + Node onapNode = new Node(); + + Map<String, Object> onapResponse = interfacesService.createInterface(inputs, onapComponentSpec); + inputs = (Map<String, LinkedHashMap<String, Object>>) onapResponse.get("inputs"); + + Map<String, Interfaces> interfaces = new TreeMap<>(); + interfaces.put(Constants.CLOUDIFY_INTERFACES_LEFECYCLE, (Interfaces) onapResponse.get("interfaces")); + onapNode.setInterfaces(interfaces); + + onapNode.setType(Constants.DCAE_NODES_CONTAINERIZED_SERVICE_COMPONENT); + + List<Map<String, String>> relationships = new ArrayList(); + + if(onapComponentSpec.getPolicyInfo() != null){ + List<Map<String, String>> policyRelationshipsList = policyNodeService.getPolicyRelationships(onapComponentSpec); + relationships.addAll(policyRelationshipsList); + } + + if(onapComponentSpec.getAuxilary().getDatabases() != null){ + List<Map<String, String>> pgaasRelationshipsList = pgaasNodeService.getPgaasNodeRelationships(onapComponentSpec); + relationships.addAll(pgaasRelationshipsList); + } + + onapNode.setRelationships(relationships); + + Map<String, Object> propertiesResponse = propertiesService.createOnapProperties(inputs, onapComponentSpec, override); + inputs = (Map<String, LinkedHashMap<String, Object>>) propertiesResponse.get("inputs"); + onapNode.setProperties((org.onap.blueprintgenerator.model.common.Properties)propertiesResponse.get("properties")); + + response.put("onapNode", onapNode); + response.put("inputs", inputs); + return response; + } + + // method to create Dmaap Node to include interface + public Map<String,Object> createDmaapNode(OnapComponentSpec onapComponentSpec, Map<String, LinkedHashMap<String, Object>> inputs, String override) { + + Map<String,Object> response = new HashMap<>(); + Node dmaapNode = new Node(); + + dmaapNode.setType(Constants.DCAE_NODES_CONTAINERIZED_SERVICE_COMPONENT_USING_DMAAP); + + Map<String, Object> dmaapResponse = interfacesService.createInterface(inputs, onapComponentSpec); + inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapResponse.get("inputs"); + + Map<String, Interfaces> interfaces = new TreeMap<>(); + interfaces.put(Constants.CLOUDIFY_INTERFACES_LEFECYCLE, (Interfaces) dmaapResponse.get("interfaces")); + dmaapNode.setInterfaces(interfaces); + + List<Map<String, String>> relationships = new ArrayList(); + + if(onapComponentSpec.getStreams().getPublishes() != null) { + for(Publishes publishes: onapComponentSpec.getStreams().getPublishes()) { + Map<String, String> pubRelations = new LinkedHashMap(); + if(blueprintHelperService.isMessageRouterType(publishes.getType())){ + pubRelations.put("type", Constants.PUBLISH_EVENTS); + pubRelations.put("target", publishes.getConfig_key() + Constants._TOPIC); + } else if(blueprintHelperService.isDataRouterType(publishes.getType())){ + pubRelations.put("type", Constants.PUBLISH_FILES); + pubRelations.put("target", publishes.getConfig_key() + Constants._FEED); + } + relationships.add(pubRelations); + } + } + + if(onapComponentSpec.getStreams().getSubscribes() != null) { + for(Subscribes subscribes: onapComponentSpec.getStreams().getSubscribes()) { + Map<String, String> subRelations = new LinkedHashMap(); + if(blueprintHelperService.isMessageRouterType(subscribes.getType())){ + subRelations.put("type", Constants.SUBSCRIBE_TO_EVENTS); + subRelations.put("target", subscribes.getConfig_key() + Constants._TOPIC); + } else if(blueprintHelperService.isDataRouterType(subscribes.getType())){ + subRelations.put("type", Constants.SUBSCRIBE_TO_FILES); + subRelations.put("target", subscribes.getConfig_key() + Constants._FEED); + } + relationships.add(subRelations); + } + } + + if(onapComponentSpec.getPolicyInfo() != null){ + List<Map<String, String>> policyRelationshipsList = policyNodeService.getPolicyRelationships(onapComponentSpec); + relationships.addAll(policyRelationshipsList); + } + + if(onapComponentSpec.getAuxilary().getDatabases() != null){ + List<Map<String, String>> pgaasRelationshipsList = pgaasNodeService.getPgaasNodeRelationships(onapComponentSpec); + relationships.addAll(pgaasRelationshipsList); + } + + dmaapNode.setRelationships(relationships); + + Map<String, Object> propertiesResponse = propertiesService.createDmaapProperties(inputs, onapComponentSpec, override); + inputs = (Map<String, LinkedHashMap<String, Object>>) propertiesResponse.get("inputs"); + dmaapNode.setProperties((org.onap.blueprintgenerator.model.common.Properties)propertiesResponse.get("properties")); + + response.put("dmaapNode", dmaapNode); + response.put("inputs", inputs); + return response; + } + + // method to create Feed Node for Streams + public Map<String,Object> createFeedNode(Map<String, LinkedHashMap<String, Object>> inputs, String name){ + Map<String,Object> response = new HashMap<>(); + Node feedNode = new Node(); + + LinkedHashMap<String, Object> stringType = new LinkedHashMap(); + stringType.put("type", "string"); + + feedNode.setType(Constants.FEED); + + org.onap.blueprintgenerator.model.common.Properties props = new org.onap.blueprintgenerator.model.common.Properties(); + GetInput topicInput = new GetInput(); + topicInput.setBpInputName(name + "_name"); + props.setFeed_name(topicInput); + props.setUseExisting(true); + inputs.put(name + "_name", stringType); + feedNode.setProperties(props); + + response.put("feedNode", feedNode); + response.put("inputs", inputs); + return response; + } + + // method to create Topic Node for Streams + public Map<String,Object> createTopicNode(Map<String, LinkedHashMap<String, Object>> inputs, String name){ + Map<String,Object> response = new HashMap<>(); + Node topicNode = new Node(); + + LinkedHashMap<String, Object> stringType = new LinkedHashMap(); + stringType.put("type", "string"); + + topicNode.setType(Constants.TOPIC); + + org.onap.blueprintgenerator.model.common.Properties props = new Properties(); + GetInput topicInput = new GetInput(); + topicInput.setBpInputName(name + "_name"); + props.setTopic_name(topicInput); + inputs.put(name + "_name", stringType); + topicNode.setProperties(props); + + response.put("topicNode", topicNode); + response.put("inputs", inputs); + return response; + } + + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PgaasNodeService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PgaasNodeService.java new file mode 100644 index 0000000..ff45701 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PgaasNodeService.java @@ -0,0 +1,138 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.exception.DatabasesNotFoundException; + + +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.PgaasNode; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.common.PgaasNodeProperties; +import org.onap.blueprintgenerator.model.common.GetAttribute; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.ArrayList; +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add Pgaas Node + */ + + +@Service +public class PgaasNodeService { + + @Autowired + private BlueprintHelperService blueprintHelperService; + + // method to create Pgaas Nodes and Inputs for Databases + public void addPgaasNodesAndInputs(OnapComponentSpec onapComponentSpec, Map<String, Node> nodeTemplate, Map<String, LinkedHashMap<String, Object>> inputs) { + Map<String, String> databases = onapComponentSpec.getAuxilary().getDatabases(); + for(Map.Entry<String, String> database : databases.entrySet()){ + addPgaasNode(database, nodeTemplate); + addPgaasInputs(database, inputs); + } + } + + private void addPgaasInputs(Map.Entry<String, String> database, Map<String, LinkedHashMap<String, Object>> inputs) { + inputs.put(database.getKey() + Constants.NAME_POSTFIX, blueprintHelperService.createStringInput( "db name", "")); + inputs.put(database.getKey() + Constants.WRITER_FQDN_POSTFIX, blueprintHelperService.createStringInput( "db writerfqdn", "")); + } + + private void addPgaasNode(Map.Entry<String, String> database, Map<String, Node> nodeTemplate) { + PgaasNode pgaasNode = new PgaasNode(); + String dbName = database.getKey(); + pgaasNode.setType(Constants.PGAAS_NODE_TYPE); + pgaasNode.setPgaasNodeProperties(buildPgaasNodeProperties(dbName)); + nodeTemplate.put(dbName + Constants.PGAAS_NODE_NAME_POSTFIX , pgaasNode); + } + + private PgaasNodeProperties buildPgaasNodeProperties(String dbName) { + PgaasNodeProperties pgaasNodeProperties = new PgaasNodeProperties(); + + GetInput nameValue = new GetInput(); + nameValue.setBpInputName(dbName + Constants.NAME_POSTFIX); + pgaasNodeProperties.setName(nameValue); + + GetInput writerfqdnValue = new GetInput(); + writerfqdnValue.setBpInputName(dbName + Constants.WRITER_FQDN_POSTFIX); + pgaasNodeProperties.setWriterfqdn(writerfqdnValue); + + pgaasNodeProperties.setUseExisting(Constants.USE_EXISTING); + + return pgaasNodeProperties; + } + + // method to create Pgaas Node Relationships for Databases + public List<Map<String, String>> getPgaasNodeRelationships(OnapComponentSpec onapComponentSpec) { + List<Map<String, String>> relationships = new ArrayList<>(); + for(Map.Entry<String, String> database : onapComponentSpec.getAuxilary().getDatabases().entrySet()){ + Map<String, String> relationship = new LinkedHashMap<>(); + relationship.put("type", Constants.DB_RELATIONSHIP_TYPE); + relationship.put("target", database.getKey() + Constants.PGAAS_NODE_NAME_POSTFIX); + relationships.add(relationship); + } + return relationships; + } + + // method to create Env Variables for Databases + public Map<String, Object> getEnvVariables(Map<String, String> databases) { + Map<String, Object> envVariables = new LinkedHashMap<>(); + for(Map.Entry<String, String> database : databases.entrySet()){ + String name = database.getKey().toUpperCase(); + envVariables.put("<<", "*envs"); + + GetInput nameValue = new GetInput(); + nameValue.setBpInputName(name.toLowerCase() + Constants.NAME_POSTFIX); + envVariables.put(name + "_DB_NAME", nameValue); + + GetAttribute adminHostValue = buildGetAttributeValue(name.toLowerCase(), "admin", "host"); + envVariables.put( name.toUpperCase() + "_DB_ADMIN_HOST", adminHostValue); + + GetAttribute adminUserValue = buildGetAttributeValue(name.toLowerCase(), "admin", "user"); + envVariables.put( name.toUpperCase() + "_DB_ADMIN_USER", adminUserValue); + + GetAttribute adminPasswordValue = buildGetAttributeValue(name.toLowerCase(), "admin", "password"); + envVariables.put( name.toUpperCase() + "_DB_ADMIN_PASS", adminPasswordValue); + } + return envVariables; + } + + private GetAttribute buildGetAttributeValue(String dbName, String owner, String type) { + GetAttribute attribute = new GetAttribute(); + attribute.setAttribute(Arrays.asList(dbName + Constants.PGAAS_NODE_NAME_POSTFIX, owner, type)); + return attribute; + } +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PolicyNodeService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PolicyNodeService.java new file mode 100644 index 0000000..7f6c63d --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PolicyNodeService.java @@ -0,0 +1,99 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.PolicyNode; +import org.onap.blueprintgenerator.model.common.PolicyNodeProperties; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.model.componentspec.TypePolicy; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add Policy Node + */ + + +@Service("onapPolicyNodeService") +public class PolicyNodeService { + + @Autowired + private BlueprintHelperService blueprintHelperService; + + // Method to add Policy Nodes and Inputs + public void addPolicyNodesAndInputs(OnapComponentSpec onapComponentSpec, Map<String, Node> nodeTemplate, Map<String, LinkedHashMap<String, Object>> inputs) { + List<TypePolicy> policyList = onapComponentSpec.getPolicyInfo().getTypePolicyList(); + for(TypePolicy policy: policyList){ + addPolicyNodesToNodeTemplate(policy, nodeTemplate); + addPolicyInputs(policy, inputs); + } + } + + private void addPolicyInputs(TypePolicy policy, Map<String, LinkedHashMap<String, Object>> inputs) { + String defaultValue = policy.getPolicy_id(); + defaultValue = defaultValue != null ? defaultValue : ""; + inputs.put(policy.getNode_label() + "_policy_id", blueprintHelperService.createStringInput("policy_id", defaultValue)); + } + + private void addPolicyNodesToNodeTemplate(TypePolicy policy, Map<String, Node> nodeTemplate) { + PolicyNode policyNode = new PolicyNode(); + policyNode.setType(Constants.POLICY_NODE_TYPE); + policyNode.setPolicyNodeProperties(getPolicyNodeProperties(policy)); + nodeTemplate.put(policy.getNode_label(), policyNode); + } + + private PolicyNodeProperties getPolicyNodeProperties(TypePolicy policy) { + PolicyNodeProperties policyNodeProperties = new PolicyNodeProperties(); + GetInput policyIdGetInput = new GetInput(); + policyIdGetInput.setBpInputName(policy.getNode_label() + "_policy_id"); + policyNodeProperties.setPolicyId(policyIdGetInput); + policyNodeProperties.setPolicyModelId(policy.getPolicy_model_id()); + return policyNodeProperties; + } + + // Method to add Policy Relationships + public List<Map<String, String>> getPolicyRelationships(OnapComponentSpec onapComponentSpec) { + List<Map<String, String>> relationships = new ArrayList<>(); + List<TypePolicy> policyList = onapComponentSpec.getPolicyInfo().getTypePolicyList(); + for(TypePolicy policy: policyList){ + Map<String, String> relationship = new LinkedHashMap<>(); + relationship.put("type", Constants.POLICY_RELATIONSHIP_TYPE); + relationship.put("target", policy.getNode_label()); + relationships.add(relationship); + } + return relationships; + } +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PropertiesService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PropertiesService.java new file mode 100644 index 0000000..e858d88 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/PropertiesService.java @@ -0,0 +1,259 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.Appconfig; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.common.ResourceConfig; +import org.onap.blueprintgenerator.model.componentspec.OnapAuxilary; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.model.componentspec.common.Publishes; +import org.onap.blueprintgenerator.model.componentspec.common.Subscribes; +import org.onap.blueprintgenerator.model.dmaap.Streams; +import org.onap.blueprintgenerator.model.dmaap.TlsInfo; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.onap.blueprintgenerator.service.dmaap.StreamsService; +import org.onap.blueprintgenerator.model.common.Properties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.HashMap; +import java.util.ArrayList; +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to create Properties Node + */ + + + +@Service("onapPropertiesService") +public class PropertiesService { + + @Autowired + private AppConfigService appConfigService; + + @Autowired + private ResourceConfigService resourceConfigService; + + @Autowired + private StreamsService streamsService; + + @Autowired + private ExternalTlsInfoFactoryService externalTlsInfoFactoryService; + + @Autowired + private BlueprintHelperService blueprintHelperService; + + // Method to create ONAP properties + public Map<String,Object> createOnapProperties(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec, String override) { + Map<String,Object> response = new HashMap<>(); + org.onap.blueprintgenerator.model.common.Properties properties = new org.onap.blueprintgenerator.model.common.Properties(); + + GetInput image = new GetInput(); + image.setBpInputName("image"); + properties.setImage(image); + + LinkedHashMap<String, Object> img = new LinkedHashMap<>(); + inputs.put("image", blueprintHelperService.createStringInput(onapComponentSpec.getArtifacts()[0].getUri())); + + + GetInput location = new GetInput(); + location.setBpInputName("location_id"); + properties.setLocation_id(location); + + LinkedHashMap<String, Object> locMap = new LinkedHashMap(); + inputs.put("location_id", blueprintHelperService.createStringInput(Constants.EMPTY_VALUE)); + + properties.setLog_info(onapComponentSpec.getAuxilary().getLog_info()); + + GetInput replica = new GetInput(); + replica.setBpInputName("replicas"); + properties.setReplicas(replica); + + LinkedHashMap<String, Object> replicas = blueprintHelperService.createIntegerInput("number of instances", 1); + inputs.put("replicas", replicas); + + OnapAuxilary onapAuxilary = onapComponentSpec.getAuxilary(); + + properties.setDocker_config(onapAuxilary); + + Map<String, Object> appConfigResponse = appConfigService.createAppconfig(inputs, onapComponentSpec, override, false); + inputs = (Map<String, LinkedHashMap<String, Object>>) appConfigResponse.get("inputs"); + properties.setApplication_config((Appconfig) appConfigResponse.get("appconfig")); + + GetInput always_pull_image = new GetInput(); + always_pull_image.setBpInputName("always_pull_image"); + + properties.setAlways_pull_image(always_pull_image); + + LinkedHashMap<String, Object> inputAlwaysPullImage = blueprintHelperService.createBooleanInput("Set to true if the image should always be pulled",true); + inputs.put("always_pull_image", inputAlwaysPullImage); + + String sType = onapComponentSpec.getSelf().getName(); + sType = sType.replace('.', '-'); + properties.setService_component_type(sType); + + Map<String, Object> tls_info = onapComponentSpec.getAuxilary().getTls_info(); + if(tls_info != null) { + addTlsInfo(onapComponentSpec, inputs, properties); + if (tls_info.get(Constants.USE_EXTERNAL_TLS_FIELD) != null) { + inputs.putAll(addExternalTlsInfo(onapComponentSpec,properties)); + } + } + + Map<String, Object> resourceConfigResponse = resourceConfigService.createResourceConfig(inputs, onapComponentSpec.getSelf().getName()); + inputs = (Map<String, LinkedHashMap<String, Object>>) resourceConfigResponse.get("inputs"); + properties.setResource_config((ResourceConfig) resourceConfigResponse.get("resourceConfig")); + + response.put("properties", properties); + response.put("inputs", inputs); + return response; + } + + // Method to create Dmaap properties + public Map<String,Object> createDmaapProperties(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec, String override) { + Map<String,Object> response = new HashMap<>(); + org.onap.blueprintgenerator.model.common.Properties properties = new org.onap.blueprintgenerator.model.common.Properties(); + + GetInput image = new GetInput(); + image.setBpInputName("tag_version"); + properties.setImage(image); + + LinkedHashMap<String, Object> img = new LinkedHashMap<>(); + inputs.put("tag_version", blueprintHelperService.createStringInput(onapComponentSpec.getArtifacts()[0].getUri())); + + GetInput location = new GetInput(); + location.setBpInputName("location_id"); + properties.setLocation_id(location); + + LinkedHashMap<String, Object> locMap = new LinkedHashMap(); + inputs.put("location_id", blueprintHelperService.createStringInput(Constants.EMPTY_VALUE)); + + properties.setLog_info(onapComponentSpec.getAuxilary().getLog_info()); + + String sType = onapComponentSpec.getSelf().getName(); + sType = sType.replace('.', '-'); + properties.setService_component_type(sType); + + Map<String, Object> tls_info = onapComponentSpec.getAuxilary().getTls_info(); + if(tls_info != null) { + addTlsInfo(onapComponentSpec, inputs, properties); + if (tls_info.get(Constants.USE_EXTERNAL_TLS_FIELD) != null) { + inputs.putAll(addExternalTlsInfo(onapComponentSpec,properties)); + } + } + + GetInput replica = new GetInput(); + replica.setBpInputName("replicas"); + properties.setReplicas(replica); + + LinkedHashMap<String, Object> rep = blueprintHelperService.createIntegerInput( "number of instances", 1); + inputs.put("replicas", rep); + + OnapAuxilary onapAuxilary = onapComponentSpec.getAuxilary(); + + properties.setDocker_config(onapAuxilary); + + Map<String, Object> appConfigResponse = appConfigService.createAppconfig(inputs, onapComponentSpec, override, true); + inputs = (Map<String, LinkedHashMap<String, Object>>) appConfigResponse.get("inputs"); + properties.setApplication_config((Appconfig) appConfigResponse.get("appconfig")); + + + List<Streams> pubStreams = new ArrayList(); + if(onapComponentSpec.getStreams() != null) { + if (onapComponentSpec.getStreams().getPublishes() != null) { + for (Publishes publishes : onapComponentSpec.getStreams().getPublishes()) { + if (blueprintHelperService.isMessageRouterType(publishes.getType())) { + String topic = publishes.getConfig_key() + Constants._TOPIC; + Map<String, Object> streamsMessageRouterResponse = streamsService.createStreams(inputs, topic, publishes.getType(), publishes.getConfig_key(), publishes.getRoute(), 'p'); + inputs = (Map<String, LinkedHashMap<String, Object>>) streamsMessageRouterResponse.get("inputs"); + pubStreams.add((Streams) streamsMessageRouterResponse.get("streams")); + } else if (blueprintHelperService.isDataRouterType(publishes.getType())) { + String feed = publishes.getConfig_key() + Constants._FEED; + Map<String, Object> streamsDataRouterResponse = streamsService.createStreams(inputs, feed, publishes.getType(), publishes.getConfig_key(), publishes.getRoute(), 'p'); + inputs = (Map<String, LinkedHashMap<String, Object>>) streamsDataRouterResponse.get("inputs"); + pubStreams.add((Streams) streamsDataRouterResponse.get("streams")); + } + } + } + } + + ArrayList<Streams> subStreams = new ArrayList(); + if(onapComponentSpec.getStreams() != null) { + if (onapComponentSpec.getStreams().getSubscribes() != null) { + for (Subscribes subscribes : onapComponentSpec.getStreams().getSubscribes()) { + if (blueprintHelperService.isMessageRouterType(subscribes.getType())) { + String topic = subscribes.getConfig_key() + Constants._TOPIC; + Map<String, Object> streamsMessageRouterResponse = streamsService.createStreams(inputs, topic, subscribes.getType(), subscribes.getConfig_key(), subscribes.getRoute(), 's'); + inputs = (Map<String, LinkedHashMap<String, Object>>) streamsMessageRouterResponse.get("inputs"); + subStreams.add((Streams) streamsMessageRouterResponse.get("streams")); + } else if (blueprintHelperService.isDataRouterType(subscribes.getType())) { + String feed = subscribes.getConfig_key() + Constants._FEED; + Map<String, Object> streamsDataRouterResponse = streamsService.createStreams(inputs, feed, subscribes.getType(), subscribes.getConfig_key(), subscribes.getRoute(), 's'); + inputs = (Map<String, LinkedHashMap<String, Object>>) streamsDataRouterResponse.get("inputs"); + subStreams.add((Streams) streamsDataRouterResponse.get("streams")); + } + } + } + } + + if(!pubStreams.isEmpty()) + properties.setStreams_publishes(pubStreams); + + if(!subStreams.isEmpty()) + properties.setStreams_subscribes(subStreams); + + Map<String, Object> resourceConfigResponse = resourceConfigService.createResourceConfig(inputs, onapComponentSpec.getSelf().getName()); + inputs = (Map<String, LinkedHashMap<String, Object>>) resourceConfigResponse.get("inputs"); + properties.setResource_config((ResourceConfig) resourceConfigResponse.get("resourceConfig")); + + response.put("properties", properties); + response.put("inputs", inputs); + return response; + } + + private void addTlsInfo(OnapComponentSpec onapComponentSpec, Map<String, LinkedHashMap<String, Object>> inputs, Properties properties) { + TlsInfo tlsInfo = new TlsInfo(); + tlsInfo.setCertDirectory((String) onapComponentSpec.getAuxilary().getTls_info().get("cert_directory")); + GetInput useTLSFlag = new GetInput(); + useTLSFlag.setBpInputName("use_tls"); + tlsInfo.setUseTls(useTLSFlag); + properties.setTls_info(tlsInfo); + LinkedHashMap<String, Object> useTlsFlagInput = blueprintHelperService.createBooleanInput("flag to indicate tls enable/disable",onapComponentSpec.getAuxilary().getTls_info().get("use_tls")); + inputs.put("use_tls", useTlsFlagInput); + } + + private Map<String, LinkedHashMap<String, Object>> addExternalTlsInfo(OnapComponentSpec onapComponentSpec, Properties properties) { + properties.setExternal_cert(externalTlsInfoFactoryService.createFromComponentSpec(onapComponentSpec)); + return externalTlsInfoFactoryService.createInputListFromComponentSpec(onapComponentSpec); + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/QuotationService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/QuotationService.java new file mode 100644 index 0000000..c79ec56 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/QuotationService.java @@ -0,0 +1,59 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.model.common.OnapBlueprint; +import org.springframework.stereotype.Service; + +import java.util.LinkedHashMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to set Quotations of generated Blueprint + */ + + +@Service +public class QuotationService { + + // Method to add Quotes for String Types + public OnapBlueprint setQuotations(OnapBlueprint bp) { + for(String s: bp.getInputs().keySet()) { + LinkedHashMap<String, Object> temp = bp.getInputs().get(s); + if(temp.get("type") == "string") { + String def = (String) temp.get("default"); + if(def != null){ + def = def.replaceAll("\"$", "").replaceAll("^\"", ""); + } + def = '"' + def + '"'; + temp.replace("default", def); + bp.getInputs().replace(s, temp); + } + } + return bp; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ResourceConfigService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ResourceConfigService.java new file mode 100644 index 0000000..7b03372 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/ResourceConfigService.java @@ -0,0 +1,98 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.common.ResourceConfig; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add ResourceConfig + */ + + +@Service("onapResourceConfigService") +public class ResourceConfigService { + + @Autowired + private BlueprintHelperService blueprintHelperService; + + //Method to create Resouce Config for properties + public Map<String,Object> createResourceConfig(Map<String, LinkedHashMap<String, Object>> inputs, String name){ + Map<String,Object> response = new HashMap<>(); + ResourceConfig resourceConfig = new ResourceConfig(); + + LinkedHashMap<String, Object> memoryLimit = blueprintHelperService.createStringInput(Constants.MEMORY_LIMIT_128Mi); + + LinkedHashMap<String, Object> cpuLimit = blueprintHelperService.createStringInput( Constants.CPU_LIMIT_250m); + + name = blueprintHelperService.getNamePrefix(name); + + Map<String, GetInput> lim = new TreeMap<>(); + + GetInput cpu = new GetInput(); + cpu.setBpInputName(name + Constants.CPU_LIMIT); + lim.put("cpu", cpu); + + GetInput memL = new GetInput(); + memL.setBpInputName(name + Constants.MEMORY_LIMIT); + lim.put("memory", memL); + + inputs.put(name + Constants.CPU_LIMIT, cpuLimit); + inputs.put(name + Constants.MEMORY_LIMIT, memoryLimit); + + resourceConfig.setLimits(lim); + + Map<String, GetInput> req = new TreeMap<>(); + + GetInput cpuR = new GetInput(); + cpuR.setBpInputName(name + Constants.CPU_REQUEST); + req.put("cpu", cpuR); + + GetInput memR = new GetInput(); + memR.setBpInputName(name + Constants.MEMORY_REQUEST); + req.put("memory", memR); + + inputs.put(name + Constants.CPU_REQUEST, cpuLimit); + inputs.put(name + Constants.MEMORY_REQUEST, memoryLimit); + + resourceConfig.setRequests(req); + + response.put("resourceConfig", resourceConfig); + response.put("inputs", inputs); + return response; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StartInputsService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StartInputsService.java new file mode 100644 index 0000000..20c3656 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StartInputsService.java @@ -0,0 +1,97 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.common.StartInputs; +import org.onap.blueprintgenerator.model.componentspec.OnapAuxilary; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add Start Inputs Node under Start + */ + + +@Service +public class StartInputsService { + + @Autowired + private PgaasNodeService pgaasNodeService; + + //Method to create Start Inputs for Start in Interfaces + public Map<String, Object> createStartInputs(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec){ + + Map<String,Object> response = new HashMap<>(); + StartInputs startInputs = new StartInputs(); + + int count = 0; + List<String> portList = new ArrayList(); + OnapAuxilary aux = onapComponentSpec.getAuxilary(); + + if (aux.getPorts() != null) { + for(Object p : aux.getPorts()) { + String[] ports = p.toString().split(":"); + portList.add(String.format("concat: [\"%s:\", {get_input: external_port_%d}]" , ports[0], count)); + + LinkedHashMap<String, Object> portType = new LinkedHashMap(); + portType.put("type", "string"); + portType.put("default", ports[1]); + inputs.put("external_port_" + count, portType); + count++; + } + } + + startInputs.setPorts(portList); + + LinkedHashMap<String, Object> envMap = new LinkedHashMap(); + if(onapComponentSpec.getAuxilary().getDatabases() != null){ + Map<String, Object> envVars = pgaasNodeService.getEnvVariables(onapComponentSpec.getAuxilary().getDatabases()); + startInputs.setEnvs(envVars); + envMap.put("default", "&envs {}"); + } + else { + GetInput env = new GetInput(); + env.setBpInputName("envs"); + startInputs.setEnvs(env); + envMap.put("default", "{}"); + } + inputs.put("envs", envMap); + + response.put("startInputs", startInputs); + response.put("inputs", inputs); + return response; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StartService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StartService.java new file mode 100644 index 0000000..3fbfdb1 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/common/StartService.java @@ -0,0 +1,65 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.common; + + +import org.onap.blueprintgenerator.model.common.Start; +import org.onap.blueprintgenerator.model.common.StartInputs; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Common ONAP Service used by ONAP and DMAAP Blueprint to add Start Node + */ + + +@Service +public class StartService { + + @Autowired + private StartInputsService startInputsService; + + // Method to create Start for Interfaces + public Map<String,Object> createStart(Map<String, LinkedHashMap<String, Object>> inputs, OnapComponentSpec onapComponentSpec) { + Map<String,Object> response = new HashMap<>(); + Start start = new Start(); + + Map<String, Object> startInputsResponse = startInputsService.createStartInputs(inputs, onapComponentSpec); + inputs = (Map<String, LinkedHashMap<String, Object>>) startInputsResponse.get("inputs"); + start.setInputs((StartInputs) startInputsResponse.get("startInputs")); + + response.put("start", start); + response.put("inputs", inputs); + return response; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintService.java new file mode 100644 index 0000000..002bd6c --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/DmaapBlueprintService.java @@ -0,0 +1,144 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.dmaap; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.exception.BlueprintException; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.OnapBlueprint; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.model.componentspec.common.Publishes; +import org.onap.blueprintgenerator.model.componentspec.common.Subscribes; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.onap.blueprintgenerator.service.base.BlueprintService; +import org.onap.blueprintgenerator.service.common.ImportsService; +import org.onap.blueprintgenerator.service.common.NodeService; +import org.onap.blueprintgenerator.service.common.PgaasNodeService; +import org.onap.blueprintgenerator.service.common.PolicyNodeService; +import org.onap.blueprintgenerator.service.common.QuotationService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Service to create DMAAP Blueprint + */ + +@Service +public class DmaapBlueprintService extends BlueprintService { + + @Autowired + protected ImportsService importsService; + + @Autowired + private NodeService nodeService; + + @Autowired + private PolicyNodeService policyNodeService; + + @Autowired + private PgaasNodeService pgaasNodeService; + + @Autowired + private QuotationService quotationService; + + @Autowired + private BlueprintHelperService blueprintHelperService; + + // method to generate Dmaap Blueprint + public OnapBlueprint createBlueprint(OnapComponentSpec onapComponentSpec, Input input) { + try { + OnapBlueprint blueprint = new OnapBlueprint(); + blueprint.setTosca_definitions_version(Constants.TOSCA_DEF_VERSION); + blueprint.setDescription(onapComponentSpec.getSelf().getDescription()); + + Map<String, LinkedHashMap<String, Object>> inputs = new TreeMap<>(); + + //if (!"".equals(input.getImportPath())) + if (!StringUtils.isEmpty(input.getImportPath()) ) + blueprint.setImports(importsService.createImportsFromFile(input.getImportPath())); + else + blueprint.setImports(importsService.createImports(input.getBpType())); + + Map<String, Node> nodeTemplate = new TreeMap(); + + Map<String, Object> dmaapNodeResponse = nodeService.createDmaapNode(onapComponentSpec, inputs, input.getServiceNameOverride()); + inputs = (Map<String, LinkedHashMap<String, Object>>) dmaapNodeResponse.get("inputs"); + nodeTemplate.put(onapComponentSpec.getSelf().getName(), (Node) dmaapNodeResponse.get("dmaapNode")); + + if (onapComponentSpec.getStreams() != null) { + if (onapComponentSpec.getStreams().getPublishes() != null) { + for (Publishes publishes : onapComponentSpec.getStreams().getPublishes()) { + if (blueprintHelperService.isMessageRouterType(publishes.getType())) { + String topic = publishes.getConfig_key() + Constants._TOPIC; + Map<String, Object> topicNodeResponse = nodeService.createTopicNode(inputs, topic); + inputs = (Map<String, LinkedHashMap<String, Object>>) topicNodeResponse.get("inputs"); + nodeTemplate.put(topic, (Node) topicNodeResponse.get("topicNode")); + } else if (blueprintHelperService.isDataRouterType(publishes.getType())) { + String feed = publishes.getConfig_key() + Constants._FEED; + Map<String, Object> feedNodeResponse = nodeService.createFeedNode(inputs, feed); + inputs = (Map<String, LinkedHashMap<String, Object>>) feedNodeResponse.get("inputs"); + nodeTemplate.put(feed, (Node) feedNodeResponse.get("feedNode")); + } + } + } + if (onapComponentSpec.getStreams().getSubscribes() != null) { + for (Subscribes s : onapComponentSpec.getStreams().getSubscribes()) { + if (blueprintHelperService.isMessageRouterType(s.getType())) { + String topic = s.getConfig_key() + Constants._TOPIC; + Map<String, Object> topicNodeResponse = nodeService.createTopicNode(inputs, topic); + inputs = (Map<String, LinkedHashMap<String, Object>>) topicNodeResponse.get("inputs"); + nodeTemplate.put(topic, (Node) topicNodeResponse.get("topicNode")); + } else if (blueprintHelperService.isDataRouterType(s.getType())) { + String feed = s.getConfig_key() + Constants._FEED; + Map<String, Object> feedNodeResponse = nodeService.createFeedNode(inputs, feed); + inputs = (Map<String, LinkedHashMap<String, Object>>) feedNodeResponse.get("inputs"); + nodeTemplate.put(feed, (Node) feedNodeResponse.get("feedNode")); + } + } + } + } + + if (onapComponentSpec.getPolicyInfo() != null) + policyNodeService.addPolicyNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + + if (onapComponentSpec.getAuxilary() != null && onapComponentSpec.getAuxilary().getDatabases() != null) + pgaasNodeService.addPgaasNodesAndInputs(onapComponentSpec, nodeTemplate, inputs); + + blueprint.setNode_templates(nodeTemplate); + blueprint.setInputs(inputs); + return quotationService.setQuotations(blueprint); + } catch (Exception ex) { + throw new BlueprintException("Unable to create ONAP DMAAP Blueprint Object from given input parameters", ex); + } + } +}
\ No newline at end of file diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/StreamsService.java b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/StreamsService.java new file mode 100644 index 0000000..16687fc --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/blueprintgenerator/service/dmaap/StreamsService.java @@ -0,0 +1,104 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.service.dmaap; + +import org.onap.blueprintgenerator.model.common.GetInput; +import org.onap.blueprintgenerator.model.dmaap.Streams; +import org.onap.blueprintgenerator.service.base.BlueprintHelperService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Service to create Streams + */ + + +@Service +public class StreamsService { + + @Autowired + private BlueprintHelperService blueprintHelperService; + + //Methos to create streams for Dmaap Blueprint + public Map<String, Object> createStreams(Map<String, LinkedHashMap<String, Object>> inputs, String name, String type, String key, String route, char o){ + Map<String,Object> response = new HashMap<>(); + Streams streams = new Streams(); + + LinkedHashMap<String, Object> stringType = new LinkedHashMap(); + stringType.put("type", "string"); + + streams.setName(name); + streams.setType(type); + + GetInput location = new GetInput(); + location.setBpInputName(key + "_" + name + "_location"); + inputs.put(key + "_" + name + "_location", stringType); + streams.setLocation(location); + + if(blueprintHelperService.isDataRouterType(type)) { + if('s' == o) { + GetInput username = new GetInput(); + username.setBpInputName(key + "_" + name + "_username"); + streams.setUsername(username); + inputs.put(key + "_" + name + "_username", stringType); + + GetInput password = new GetInput(); + password.setBpInputName(key + "_" + name + "_password"); + streams.setPassword(password); + inputs.put(key + "_" + name + "_password", stringType); + + GetInput priviliged = new GetInput(); + priviliged.setBpInputName(key + "_" + name + "_priviliged"); + streams.setPrivileged(priviliged); + inputs.put(key + "_" + name + "_priviliged", stringType); + + GetInput decompress = new GetInput(); + decompress.setBpInputName(key + "_" + name + "_decompress"); + streams.setDecompress(decompress); + inputs.put(key + "_" + name + "_decompress", stringType); + + streams.setRoute(route); + streams.setScheme("https"); + } + + + } else { + GetInput client = new GetInput(); + client.setBpInputName(key + "_" + name + "_client_role"); + streams.setClient_role(client); + inputs.put(key + "_" + name + "_client_role", stringType); + } + response.put("streams", streams); + response.put("inputs", inputs); + return response; + } + +} diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/policycreate/service/PolicyModelNodeService.java b/mod/bpgenerator/onap/src/main/java/org/onap/policycreate/service/PolicyModelNodeService.java new file mode 100644 index 0000000..05dbcae --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/policycreate/service/PolicyModelNodeService.java @@ -0,0 +1,150 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.policycreate.service; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.componentspec.common.EntrySchema; +import org.onap.blueprintgenerator.model.componentspec.common.Parameters; +import org.onap.blueprintgenerator.model.componentspec.common.PolicySchema; +import org.onap.policycreate.model.PolicyModelNode; +import org.onap.policycreate.model.PolicyProperties; +import org.springframework.stereotype.Service; + +import java.util.Map; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.TreeMap; +import java.util.List; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * To create Node Type, Data Type and Translate Entry Schema for Policy Model Node + */ + + +@Service("onapPolicyModelNodeService") +public class PolicyModelNodeService { + + // Method to create Nodes for Policy + public Map<String,Object> creatNodeType(String policyName, Parameters[] params) { + String hasEntrySchema = ""; + Map<String,Object> response = new HashMap<>(); + PolicyModelNode policyModelNode = new PolicyModelNode(); + + Map<String, PolicyProperties> props = new TreeMap<>(); + for(Parameters p: params) { + if(p.getPolicy_group() != null && p.getPolicy_group().equals(policyName)) { + String name = p.getName(); + String type = p.getType(); + PolicyProperties polProps = new PolicyProperties(); + if(p.getPolicy_schema() != null) { + polProps.setType("map"); + ArrayList<String> entrySchema = new ArrayList<String>(); + entrySchema.add("type: onap.datatypes." + name); + polProps.setEntry_schema(entrySchema); + hasEntrySchema = name; + props.put(name, polProps); + } + else { + polProps.setType(type); + props.put(name, polProps); + } + } + } + policyModelNode.setDerived_from(Constants.TOSCA_DATATYPES_ROOT); + policyModelNode.setProperties(props); + response.put("hasEntrySchema", hasEntrySchema); + response.put("policyModelNode", policyModelNode); + return response; + } + + // Method to create Data Types for Policy + public Map<String, PolicyModelNode> createDataTypes(String param, Parameters[] parameters){ + Map<String, PolicyModelNode> dataType = new TreeMap<>(); + PolicyModelNode node = new PolicyModelNode(); + node.setDerived_from(Constants.TOSCA_DATATYPES_ROOT); + + Map<String, PolicyProperties> properties = new TreeMap<>(); + Parameters par = new Parameters(); + for(Parameters p: parameters) { + if(param.equals(p.getName())) { + par = p; + break; + } + } + + for(PolicySchema pol: par.getPolicy_schema()) { + if(pol.getEntry_schema() != null) { + PolicyProperties prop =new PolicyProperties(); + prop.setType("map"); + ArrayList<String> schema = new ArrayList<String>(); + schema.add("type: onap.datatypes." + pol.getName()); + prop.setEntry_schema(schema); + properties.put(pol.getName(), prop); + dataType = translateEntrySchema(dataType, pol.getEntry_schema(), pol.getName()); + } + else { + PolicyProperties prop = new PolicyProperties(); + prop.setType(pol.getType()); + properties.put(pol.getName(), prop); + } + } + + node.setProperties(properties); + dataType.put("onap.datatypes." + param, node); + return dataType; + } + + private Map<String, PolicyModelNode> translateEntrySchema(Map<String, PolicyModelNode> dataType, EntrySchema[] entry, String name){ + Map<String, PolicyModelNode> data = dataType; + PolicyModelNode node = new PolicyModelNode(); + node.setDerived_from(Constants.TOSCA_NODES_ROOT); + Map<String, PolicyProperties> properties = new TreeMap<>(); + + for(EntrySchema e: entry) { + if(e.getEntry_schema() != null) { + PolicyProperties prop = new PolicyProperties(); + prop.setType("list"); + List<String> schema = new ArrayList<>(); + schema.add("type: onap.datatypes." + e.getName()); + prop.setEntry_schema(schema); + properties.put(e.getName(), prop); + data = translateEntrySchema(data, e.getEntry_schema(), e.getName()); + node.setProperties(properties); + } else { + PolicyProperties prop = new PolicyProperties(); + prop.setType(e.getType()); + properties.put(e.getName(), prop); + node.setProperties(properties); + } + } + + dataType.put("onap.datatypes." + name, node); + return data; + } + +} + diff --git a/mod/bpgenerator/onap/src/main/java/org/onap/policycreate/service/PolicyModelService.java b/mod/bpgenerator/onap/src/main/java/org/onap/policycreate/service/PolicyModelService.java new file mode 100644 index 0000000..bbc6259 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/java/org/onap/policycreate/service/PolicyModelService.java @@ -0,0 +1,105 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.policycreate.service; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.componentspec.common.Parameters; +import org.onap.policycreate.exception.PolicyCreateException; +import org.onap.policycreate.model.PolicyModel; +import org.onap.policycreate.model.PolicyModelNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.stereotype.Service; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Service for Policy Model to create Policy Models, Policy Group Names and Convert Policy to Yaml + */ + + +@Service("onapPolicyModelService") +public class PolicyModelService { + + @Qualifier("yamlObjectMapper") + @Autowired + protected ObjectMapper yamlObjectMapper; + + @Autowired + private PolicyModelNodeService policyModelNodeService; + + // Method to create Policy Models + public void createPolicyModels(Parameters[] params, String filePath) { + try { + List<String> policyGroups = getPolicyGroupNames(params); + for (String s : policyGroups) { + PolicyModel model = new PolicyModel(); + model.setTosca_definition_version(Constants.TOSCA_SIMPLE_YAML); + + Map<String, Object> response = policyModelNodeService.creatNodeType(s, params); + String nodeTypeName = "onap.policy." + s; + Map<String, PolicyModelNode> nodeType = new TreeMap<>(); + nodeType.put(nodeTypeName, (PolicyModelNode) response.get("policyModelNode")); + model.setNode_types(nodeType); + + if (!"".equals(response.get("hasEntrySchema"))) + model.setData_types(policyModelNodeService.createDataTypes((String) response.get("hasEntrySchema"), params)); + policyModelToYaml(filePath, model, s); + } + } catch (Exception ex) { + throw new PolicyCreateException("Unable to create Policies from given input parameters", ex); + } + } + + private List<String> getPolicyGroupNames(Parameters[] params) { + List<String> names = new ArrayList<>(); + for (Parameters p : params) { + if (p.isPolicy_editable()) { + if (names.isEmpty()) { + names.add(p.getPolicy_group()); + } else if (!names.contains(p.getPolicy_group())) { + names.add(p.getPolicy_group()); + } + } + } + return names; + } + + private void policyModelToYaml(String path, PolicyModel model, String name) throws IOException { + File outputFile = new File(path, name + ".yml"); + outputFile.getParentFile().mkdirs(); + yamlObjectMapper.writeValue(outputFile, model); + } + +} + diff --git a/mod/bpgenerator/onap/src/main/resources/application.properties b/mod/bpgenerator/onap/src/main/resources/application.properties new file mode 100644 index 0000000..3b70df6 --- /dev/null +++ b/mod/bpgenerator/onap/src/main/resources/application.properties @@ -0,0 +1,36 @@ +# +# /* +# * ============LICENSE_START======================================================= +# * org.onap.dcae +# * ================================================================================ +# * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. +# * ================================================================================ +# * Licensed 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. +# * ============LICENSE_END========================================================= +# */ +# +# + +spring.main.banner-mode=off +spring.output.ansi.enabled=ALWAYS + +imports.onap.types=https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml +imports.onap.K8s.plugintypes=plugin:k8splugin?version=3.4.2 +imports.onap.K8s.dcaepolicyplugin=plugin:dcaepolicyplugin?version=2.4.0 + +imports.dmaap.dmaapplugin=plugin:dmaap?version=1.5.0 + +import.Postgres=plugin:pgaas?version=1.3.0 +import.Clamp=plugin:clamppolicyplugin?version=1.1.0 + + diff --git a/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintGeneratorTestSuite.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintGeneratorTestSuite.java new file mode 100644 index 0000000..b19a823 --- /dev/null +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintGeneratorTestSuite.java @@ -0,0 +1,40 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.test; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Test Suite for Test Cases + */ + + +@RunWith(Suite.class) +@Suite.SuiteClasses({ OnapComponentSpecTest.class, OnapBlueprintServiceTest.class,ExternalCertificateParametersFactoryServiceTest.class/*, BlueprintJarComparatorTest.class*/}) +public class BlueprintGeneratorTestSuite { +} diff --git a/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintGeneratorTests.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintGeneratorTests.java new file mode 100644 index 0000000..ea324da --- /dev/null +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintGeneratorTests.java @@ -0,0 +1,109 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.test; + +import org.onap.blueprintgenerator.BlueprintGeneratorMainApplication; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; +import org.onap.blueprintgenerator.service.OnapBlueprintService; +import org.onap.blueprintgenerator.service.common.ComponentSpecService; +import org.onap.blueprintgenerator.service.dmaap.DmaapBlueprintService; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Ignore; +import org.junit.runner.RunWith; +import org.onap.policycreate.service.PolicyModelService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Test Cases + */ + + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(classes = BlueprintGeneratorMainApplication.class, initializers = ConfigFileApplicationContextInitializer.class) +@TestPropertySource( + properties = { + "ves=ves.json", + "testImports=testImports.yaml", + "useTlsTrueAndUseExternalTlsTrueTest=testComponentSpec_withTlsTrueAndExternalTlsTrue.json", + "useTlsFalseAndUseExternalTlsFalseTest=testComponentSpec_withTlsFalseAndExternalTlsFalse.json", + "useTlsTrueAndNoExternalTlsFlagTest=testComponentSpec_withTlsTrueAndNoExternalTls.json", + "noTlsInfo=testComponentSpec_withoutTlsInfo.json" + } +) +@Ignore +public class BlueprintGeneratorTests { + + @Qualifier("objectMapper") + @Autowired + protected ObjectMapper objectMapper; + + @Qualifier("yamlObjectMapper") + @Autowired + protected ObjectMapper yamlObjectMapper; + + @Value("${ves}") + protected String ves; + + @Value("${testImports}") + protected String testImports; + + @Value("${useTlsTrueAndUseExternalTlsTrueTest}") + protected String useTlsTrueAndUseExternalTlsTrueTest; + + @Value("${useTlsFalseAndUseExternalTlsFalseTest}") + protected String useTlsFalseAndUseExternalTlsFalseTest; + + @Value("${useTlsTrueAndNoExternalTlsFlagTest}") + protected String useTlsTrueAndNoExternalTlsFlagTest; + + @Value("${noTlsInfo}") + protected String noTlsInfo; + + @Autowired + protected ComponentSpecService onapComponentSpecService; + + @Autowired + protected DmaapBlueprintService dmaapBlueprintService; + + @Autowired + protected OnapBlueprintService onapBlueprintService; + + @Autowired + protected PolicyModelService policyModelService; + + @Autowired + protected OnapTestUtils onapTestUtils; + + protected OnapComponentSpec onapComponentSpec = null; + +} diff --git a/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintJarComparatorTest.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintJarComparatorTest.java new file mode 100644 index 0000000..d10d3ff --- /dev/null +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/BlueprintJarComparatorTest.java @@ -0,0 +1,115 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + + +package org.onap.blueprintgenerator.test; + +import org.apache.commons.io.FileUtils; +import org.junit.Assert; +import org.junit.FixMethodOrder; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.jupiter.api.Order; +import org.junit.runners.MethodSorters; +import org.onap.blueprintgenerator.test.BlueprintGeneratorTests; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Paths; + + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Bueprint Jar Comparision with Previos version to make sure Bps are not broken with new changes + */ + + +@Ignore +@FixMethodOrder(MethodSorters.NAME_ASCENDING) +public class BlueprintJarComparatorTest extends BlueprintGeneratorTests { + + private String previousJarVersion = "0.1"; + private String latestJarVersion = "1.0"; + private String previousVersion = "0_1"; + private String latestVersion = "1_0"; + private String latestJarPath = Paths.get("target").toAbsolutePath().toString() + "\\"; + private String previousJarPath = Paths.get("src", "test", "resources", "archives").toAbsolutePath().toString() + "\\"; + private String inputPath = Paths.get("src", "test", "resources", "componentspecs").toAbsolutePath().toString() + "\\"; + private String inputPolicyPath = Paths.get("src", "test", "resources", "policyjson").toAbsolutePath().toString() + "\\"; + private String outputPath = Paths.get("src", "test", "resources", "outputfiles").toAbsolutePath().toString() + "\\"; + private String previousJar = "onap-blueprint-generator-" + previousJarVersion + ".jar"; + private String latestJar = "onap-blueprint-generator-" + latestJarVersion + ".jar"; + + @Test + @Order(value=1) + public void filesCleanup() throws IOException { + FileUtils.deleteDirectory(new File(outputPath)); + } + + @Test + public void jarTestVeswithDmaapK8s() throws IOException, InterruptedException { + String inputFileName = ves; + String outputFileName = "dcae-ves-collector-dmaap-"; + String inputImportsFileName = testImports; + + String previousJarCommand = "java -jar " + previousJarPath + previousJar + " app ONAP -i " + inputPath + inputFileName + " -p " + outputPath + + " -n " + outputFileName + previousVersion + " -t " + inputPath + inputImportsFileName + " -d"; + Runtime.getRuntime().exec(previousJarCommand); + + String latestJarCommand = "java -jar " + latestJarPath + latestJar + " app ONAP -i " + inputPath + inputFileName + " -p " + outputPath + + " -n " + outputFileName + latestVersion + " -t " + inputPath + inputImportsFileName + " -d"; + Runtime.getRuntime().exec(latestJarCommand); + + Thread.sleep(8000); + + Assert.assertEquals("The BluePrint files (" + outputFileName + ") for " + inputFileName + " with -m option don't match!", + FileUtils.readFileToString(new File(outputPath + outputFileName + previousVersion + ".yaml"), "utf-8"), + FileUtils.readFileToString(new File(outputPath + outputFileName + latestVersion + ".yaml"), "utf-8")); + } + + @Test + public void jarTestVeswithoutDmaapK8s() throws IOException, InterruptedException { + String inputFileName = ves; + String outputFileName = "dcae-ves-collector-"; + String inputImportsFileName = testImports; + + String previousJarCommand = "java -jar " + previousJarPath + previousJar + " app ONAP -i " + inputPath + inputFileName + " -p " + outputPath + + " -n " + outputFileName + previousVersion + " -t " + inputPath + inputImportsFileName ; + Runtime.getRuntime().exec(previousJarCommand); + + String latestJarCommand = "java -jar " + latestJarPath + latestJar + " app ONAP -i " + inputPath + inputFileName + " -p " + outputPath + + " -n " + outputFileName + latestVersion + " -t " + inputPath + inputImportsFileName ; + Runtime.getRuntime().exec(latestJarCommand); + + Thread.sleep(8000); + + Assert.assertEquals("The BluePrint files (" + outputFileName + ") for " + inputFileName + " with -m option dont match!", + FileUtils.readFileToString(new File(outputPath + outputFileName + previousVersion + ".yaml"), "utf-8"), + FileUtils.readFileToString(new File(outputPath + outputFileName + latestVersion + ".yaml"), "utf-8")); + } + + +} + diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalCertificateParametersFactoryTest.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/ExternalCertificateParametersFactoryServiceTest.java index 1cdb58b..021bc49 100644 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalCertificateParametersFactoryTest.java +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/ExternalCertificateParametersFactoryServiceTest.java @@ -2,6 +2,7 @@ org.onap.dcae ================================================================================ Copyright (c) 2020 Nokia Intellectual Property. All rights reserved. + Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. ================================================================================ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -17,46 +18,44 @@ ============LICENSE_END========================================================= */ -package org.onap.blueprintgenerator.models.blueprint.tls; +package org.onap.blueprintgenerator.test; +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.ExternalCertificateParameters; +import org.onap.blueprintgenerator.service.common.ExternalCertificateParametersFactoryService; import org.junit.Test; -import org.onap.blueprintgenerator.models.blueprint.tls.impl.ExternalCertificateParameters; +import org.springframework.beans.factory.annotation.Autowired; + import java.util.LinkedHashMap; import java.util.Map; import static org.junit.Assert.assertEquals; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.COMMON_NAME_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_COMMON_NAME; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_SANS; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.INPUT_PREFIX; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.SANS_FIELD; +import static org.onap.blueprintgenerator.constants.Constants.COMMON_NAME_FIELD; +import static org.onap.blueprintgenerator.constants.Constants.SANS_FIELD; -public class ExternalCertificateParametersFactoryTest { +public class ExternalCertificateParametersFactoryServiceTest extends BlueprintGeneratorTests{ - private static final String PREFIXED_COMMON_NAME_FIELD = INPUT_PREFIX + COMMON_NAME_FIELD; - private static final String PREFIXED_SANS_FIELD = INPUT_PREFIX + SANS_FIELD; + private static final String PREFIXED_COMMON_NAME_FIELD = Constants.INPUT_PREFIX + COMMON_NAME_FIELD; + private static final String PREFIXED_SANS_FIELD = Constants.INPUT_PREFIX + SANS_FIELD; private static final String DEFAULT = "default"; + @Autowired + private ExternalCertificateParametersFactoryService externalCertificateParametersFactoryService; + @Test public void shouldCreateExternalCertificatePropertiesObject() { - // given - ExternalCertificateParametersFactory cut = new ExternalCertificateParametersFactory(); - // when - ExternalCertificateParameters result = cut.create(); - // then + + ExternalCertificateParameters result = externalCertificateParametersFactoryService.create(); assertEquals(result.getCommonName().getBpInputName(), PREFIXED_COMMON_NAME_FIELD); assertEquals(result.getSans().getBpInputName(), PREFIXED_SANS_FIELD); } @Test public void shouldCreateCorrectInputListWithDefaultValuesTakenFromComponentSpec() { - // given - ExternalCertificateParametersFactory cut = new ExternalCertificateParametersFactory(); - // when - Map<String, LinkedHashMap<String, Object>> result = cut.createInputList(); - // then - assertEquals(DEFAULT_COMMON_NAME, result.get(PREFIXED_COMMON_NAME_FIELD).get(DEFAULT)); - assertEquals(DEFAULT_SANS, result.get(PREFIXED_SANS_FIELD).get(DEFAULT)); + + Map<String, LinkedHashMap<String, Object>> result = externalCertificateParametersFactoryService.createInputList(); + assertEquals(Constants.DEFAULT_COMMON_NAME, result.get(PREFIXED_COMMON_NAME_FIELD).get(DEFAULT)); + assertEquals(Constants.DEFAULT_SANS, result.get(PREFIXED_SANS_FIELD).get(DEFAULT)); } } diff --git a/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapBlueprintServiceTest.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapBlueprintServiceTest.java new file mode 100644 index 0000000..351f94e --- /dev/null +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapBlueprintServiceTest.java @@ -0,0 +1,257 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.test; + +import org.mockito.ArgumentCaptor; +import org.mockito.Mockito; +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.OnapBlueprint; +import org.onap.blueprintgenerator.model.common.Properties; +import org.junit.Test; +import org.junit.jupiter.api.DisplayName; +import picocli.CommandLine; + +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.Paths; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertArrayEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP Blueprint Test Cases for ONAP and DMAAP + */ + + +public class OnapBlueprintServiceTest extends BlueprintGeneratorTests { + + private String outputfilesPath = Paths.get("src", "test", "resources", "outputfiles").toAbsolutePath().toString(); + + @DisplayName("Testing K8s Blueprint for Service Name Override Component Spec Input File") + @Test + public void testServiceNameOverrideK8sBlueprint() throws IOException { + Input input = onapTestUtils.getInput(Paths.get("src", "test", "resources", "componentspecs" , ves).toFile().getAbsolutePath(), outputfilesPath, "testServiceNameOverrideK8sBlueprint", "", "o", ""); + onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + assertNotNull("K8s Blueprint for Service Name Override Component Spec is NULL", onapComponentSpec); + + OnapBlueprint onapBlueprint = onapBlueprintService.createBlueprint(onapComponentSpec, input); + onapBlueprintService.blueprintToYaml(onapComponentSpec, onapBlueprint, input); + System.out.println(onapBlueprintService.blueprintToString(onapComponentSpec, onapBlueprint, input)); + + onapTestUtils.verifyToscaDefVersion("Service Name Override K8s",onapBlueprint, Constants.TOSCA_DEF_VERSION); + onapTestUtils.verifyBpImports("Service Name Override K8s",onapBlueprint,false); + + Map<String, LinkedHashMap<String, Object>> k8sBpInputs = onapBlueprint.getInputs(); + assertNotNull("Service Name Override K8s Blueprint Inputs Section is NULL", k8sBpInputs); + assertTrue("Service Name Override K8s Blueprint Inputs Section is Empty", k8sBpInputs.size() > 0); + + assertEquals("Service Name Override K8s Blueprint:Inputs " + Constants.ONAP_INPUT_CPU_LIMIT + " Default is not matching", k8sBpInputs.get(Constants.ONAP_INPUT_CPU_LIMIT).get("default"), Constants.ONAP_DEFAULT250m); + assertEquals("Service Name Override K8s Blueprint:Inputs " + Constants.SERVICE_COMPONENT_NAME_OVERRIDE + " Default is not matching", k8sBpInputs.get(Constants.SERVICE_COMPONENT_NAME_OVERRIDE).get("default"), Constants.ONAP_SERVICE_COMPONENTNAME_OVERRIDE_DEFAULT); + + Map<String, Node> k8sBpNodeTemplates = onapBlueprint.getNode_templates(); + assertNotNull("Service Name Override K8s Blueprint Node Templates Section is NULL in the K8s DMAAP Blueprint", k8sBpNodeTemplates); + assertTrue("Service Name Override K8s Blueprint Node Templates Section Size is Empty", k8sBpNodeTemplates.size() > 0); + + assertEquals("Service Name Override K8s Blueprint:NodeTemplates:Type is not Matching", k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES).getType(), Constants.ONAP_NODETEMPLATES_TYPE); + + Properties k8sBpNodeTemplateProperties = ((Node) k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES)).getProperties(); + assertNotNull("Service Name Override K8s Blueprint Node Templates:Properties Section is NULL", k8sBpNodeTemplateProperties); + + + Map<String, LinkedHashMap<String, Object>> bpInputs = onapBlueprint.getInputs(); + onapTestUtils.verifyArtifacts("Service Name Override K8s",onapComponentSpec,bpInputs,"o"); + + onapTestUtils.verifyStreamsPublishes("Service Name Override K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyStreamsSubscribes("Service Name Override K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyAuxilary("Service Name Override K8s",onapComponentSpec); + onapTestUtils.verifyHealthCheck("Service Name Override K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyServicesCalls("Service Name Override K8s",onapComponentSpec); + onapTestUtils.verifyServicesProvides("Service Name Override K8s",onapComponentSpec); + onapTestUtils.verifyDockerConfig("Service Name Override K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyParameters("Service Name Override K8s",onapComponentSpec,k8sBpNodeTemplates); + onapTestUtils.verifyVolumes("Service Name Override K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + } + + @DisplayName("Testing K8s Blueprint for Service Name Override Component Spec Input File with Import File") + @Test + public void testServiceNameOverrideImportFileK8sBlueprint() throws IOException { + Input input = onapTestUtils.getInput(Paths.get("src", "test", "resources", "componentspecs", ves).toFile().getAbsolutePath(), "", "", Paths.get("src", "test", "resources", "componentspecs" , testImports).toFile().getAbsolutePath(), "o", ""); + onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + assertNotNull("K8s Blueprint for Service Name Override with Import File Component Spec is NULL", onapComponentSpec); + + OnapBlueprint onapBlueprint = onapBlueprintService.createBlueprint(onapComponentSpec, input); + + onapTestUtils.verifyToscaDefVersion("Service Name Override with Import File K8s",onapBlueprint, Constants.TOSCA_DEF_VERSION); + onapTestUtils.verifyBpImportsFromFile("Service Name Override with Import File K8s",onapBlueprint,input.getImportPath()); + + + Map<String, LinkedHashMap<String, Object>> k8sBpInputs = onapBlueprint.getInputs(); + assertNotNull("Service Name Override with Import File K8s Blueprint Inputs Section is NULL", k8sBpInputs); + assertTrue("Service Name Override with Import File K8s Blueprint Inputs Section is Empty", k8sBpInputs.size() > 0); + + assertEquals("Service Name Override with Import File K8s Blueprint:Inputs " + Constants.ONAP_INPUT_CPU_LIMIT + " Default is not matching", k8sBpInputs.get(Constants.ONAP_INPUT_CPU_LIMIT).get("default"), Constants.ONAP_DEFAULT250m); + assertEquals("Service Name Override with Import File K8s Blueprint:Inputs " + Constants.SERVICE_COMPONENT_NAME_OVERRIDE + " Default is not matching", k8sBpInputs.get(Constants.SERVICE_COMPONENT_NAME_OVERRIDE).get("default"), Constants.ONAP_SERVICE_COMPONENTNAME_OVERRIDE_DEFAULT); + + Map<String, Node> k8sBpNodeTemplates = onapBlueprint.getNode_templates(); + assertNotNull("Service Name Override with Import File K8s Blueprint Node Templates Section is NULL in the K8s DMAAP Blueprint", k8sBpNodeTemplates); + assertTrue("Service Name Override with Import File K8s Blueprint Node Templates Section Size is Empty", k8sBpNodeTemplates.size() > 0); + + assertEquals("Service Name Override with Import File K8s Blueprint:NodeTemplates:Type is not Matching", k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES).getType(), Constants.ONAP_NODETEMPLATES_TYPE); + + Properties k8sBpNodeTemplateProperties = ((Node) k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES)).getProperties(); + assertNotNull("Service Name Override with Import File K8s Blueprint Node Templates:Properties Section is NULL", k8sBpNodeTemplateProperties); + + + Map<String, LinkedHashMap<String, Object>> bpInputs = onapBlueprint.getInputs(); + onapTestUtils.verifyArtifacts("Service Name Override with Import File K8s",onapComponentSpec,bpInputs,"o"); + + onapTestUtils.verifyStreamsPublishes("Service Name Override with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyStreamsSubscribes("Service Name Override with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyAuxilary("Service Name Override with Import File K8s",onapComponentSpec); + onapTestUtils.verifyHealthCheck("Service Name Override with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyServicesCalls("Service Name Override with Import File K8s",onapComponentSpec); + onapTestUtils.verifyServicesProvides("Service Name Override with Import File K8s",onapComponentSpec); + onapTestUtils.verifyDockerConfig("Service Name Override with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyParameters("Service Name Override with Import File K8s",onapComponentSpec,k8sBpNodeTemplates); + onapTestUtils.verifyVolumes("Service Name Override with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + } + + @DisplayName("Testing K8s Blueprint with DB") + @Test + public void testDMAAPK8sBlueprintWithDB() { + Input input = onapTestUtils.getInput(Paths.get("src", "test", "resources", "componentspecs", ves).toFile().getAbsolutePath(), outputfilesPath, "testDMAAPK8sBlueprintWithDB", "", "d", ""); + onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + assertNotNull("K8s Blueprint for DMAAP Component Spec is NULL", onapComponentSpec); + + OnapBlueprint onapBlueprint = dmaapBlueprintService.createBlueprint(onapComponentSpec, input); + onapBlueprintService.blueprintToYaml(onapComponentSpec, onapBlueprint, input); + } + + @DisplayName("Testing K8s Blueprint for DMAAP Component Spec Input File") + @Test + public void testDMAAPK8sBlueprint() { + Input input = onapTestUtils.getInput(Paths.get("src", "test", "resources", "componentspecs" , ves).toFile().getAbsolutePath(), outputfilesPath, "testDMAAPK8sBlueprint", "", "d", ""); + onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + assertNotNull("K8s Blueprint for DMAAP Component Spec is NULL", onapComponentSpec); + + OnapBlueprint onapBlueprint = dmaapBlueprintService.createBlueprint(onapComponentSpec, input); + onapBlueprintService.blueprintToYaml(onapComponentSpec, onapBlueprint, input); + System.out.println(onapBlueprintService.blueprintToString(onapComponentSpec, onapBlueprint, input)); + + policyModelService.createPolicyModels(onapComponentSpec.getParameters(), "models"); + + onapTestUtils.verifyToscaDefVersion("DMAAP K8s",onapBlueprint, Constants.TOSCA_DEF_VERSION); + //onapTestUtils.verifyBpImports("DMAAP K8s",onapBlueprint,false); + + Map<String, LinkedHashMap<String, Object>> k8sBpInputs = onapBlueprint.getInputs(); + assertNotNull("DMAAP K8s Blueprint Inputs Section is NULL", k8sBpInputs); + assertTrue("DMAAP K8s Blueprint Inputs Section is Empty", k8sBpInputs.size() > 0); + + //assertEquals("DMAAP K8s Blueprint:Inputs " + Constants.ALWAYS_PULL_IMAGE + " Type is not matching", k8sBpInputs.get(Constants.ALWAYS_PULL_IMAGE).get("type"), "boolean"); + //assertEquals("DMAAP K8s Blueprint:Inputs Always Pull Image Default is not matching", k8sBpInputs.get(Constants.ALWAYS_PULL_IMAGE).get("default"), Constants.ALWAYS_PULL_IMAGE_DEFAULT); + assertEquals("DMAAP K8s Blueprint:Inputs " + Constants.ONAP_INPUT_CPU_LIMIT + " Default is not matching", k8sBpInputs.get(Constants.ONAP_INPUT_CPU_LIMIT).get("default"), Constants.ONAP_DEFAULT250m); + assertEquals("DMAAP K8s Blueprint:Inputs " + Constants.SERVICE_COMPONENT_NAME_OVERRIDE + " Default is not matching", k8sBpInputs.get(Constants.SERVICE_COMPONENT_NAME_OVERRIDE).get("default"), Constants.ONAP_SERVICE_COMPONENTNAME_OVERRIDE_DEFAULT); + + Map<String, Node> k8sBpNodeTemplates = onapBlueprint.getNode_templates(); + assertNotNull("DMAAP K8s Blueprint Node Templates Section is NULL in the K8s DMAAP Blueprint", k8sBpNodeTemplates); + assertTrue("DMAAP K8s Blueprint Node Templates Section Size is Empty", k8sBpNodeTemplates.size() > 0); + + assertEquals("DMAAP K8s Blueprint:NodeTemplates:Type is not Matching", k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES).getType(), Constants.DMAAP_NODETEMPLATES_TYPE); + + Properties k8sBpNodeTemplateProperties = ((Node) k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES)).getProperties(); + assertNotNull("DMAAP K8s Blueprint Node Templates:Properties Section is NULL", k8sBpNodeTemplateProperties); + + List bpNodeTemplateRelationships = ((Node) k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES)).getRelationships(); + assertNotNull("DMAAP K8s Blueprint Node Templates:Relationships Section is NULL", bpNodeTemplateRelationships); + + onapTestUtils.verifyStreamsPublishes("DMAAP K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyStreamsSubscribes("DMAAP K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyAuxilary("DMAAP K8s",onapComponentSpec); + onapTestUtils.verifyHealthCheck("DMAAP K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyServicesCalls("DMAAP K8s",onapComponentSpec); + onapTestUtils.verifyServicesProvides("DMAAP K8s",onapComponentSpec); + onapTestUtils.verifyDockerConfig("DMAAP K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyParameters("DMAAP K8s",onapComponentSpec,k8sBpNodeTemplates); + } + + @DisplayName("Testing K8s Blueprint for DMAAP Component Spec Input File with Import File") + @Test + public void testDMAAPK8sImportFileBlueprint() throws IOException { + Input input = onapTestUtils.getInput(Paths.get("src", "test", "resources", "componentspecs" , ves).toFile().getAbsolutePath(), "", "", Paths.get("src", "test", "resources", "componentspecs" , testImports).toFile().getAbsolutePath(), "d", ""); + onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(input.getComponentSpecPath()); + assertNotNull("K8s Blueprint for DMAAP Component Spec with Import File is NULL", onapComponentSpec); + + OnapBlueprint onapBlueprint = dmaapBlueprintService.createBlueprint(onapComponentSpec, input); + + onapTestUtils.verifyToscaDefVersion("DMAAP with Import File K8s",onapBlueprint, Constants.TOSCA_DEF_VERSION); + onapTestUtils.verifyBpImportsFromFile("DMAAP with Import File K8s",onapBlueprint,input.getImportPath()); + + Map<String, LinkedHashMap<String, Object>> k8sBpInputs = onapBlueprint.getInputs(); + assertNotNull("DMAAP with Import File K8s Blueprint Inputs Section is NULL", k8sBpInputs); + assertTrue("DMAAP with Import File K8s Blueprint Inputs Section is Empty", k8sBpInputs.size() > 0); + + //assertEquals("DMAAP with Import File K8s Blueprint:Inputs " + Constants.ALWAYS_PULL_IMAGE + " Type is not matching", k8sBpInputs.get(Constants.ALWAYS_PULL_IMAGE).get("type"), "boolean"); + //assertEquals("DMAAP with Import File K8s Blueprint:Inputs Always Pull Image Default is not matching", k8sBpInputs.get(Constants.ALWAYS_PULL_IMAGE).get("default"), Constants.ALWAYS_PULL_IMAGE_DEFAULT); + assertEquals("DMAAP with Import File K8s Blueprint:Inputs " + Constants.ONAP_INPUT_CPU_LIMIT + " Default is not matching", k8sBpInputs.get(Constants.ONAP_INPUT_CPU_LIMIT).get("default"), Constants.ONAP_DEFAULT250m); + assertEquals("DMAAP with Import File K8s Blueprint:Inputs " + Constants.SERVICE_COMPONENT_NAME_OVERRIDE + " Default is not matching", k8sBpInputs.get(Constants.SERVICE_COMPONENT_NAME_OVERRIDE).get("default"), Constants.ONAP_SERVICE_COMPONENTNAME_OVERRIDE_DEFAULT); + + Map<String, Node> k8sBpNodeTemplates = onapBlueprint.getNode_templates(); + assertNotNull("DMAAP with Import File K8s Blueprint Node Templates Section is NULL in the K8s DMAAP Blueprint", k8sBpNodeTemplates); + assertTrue("DMAAP with Import File K8s Blueprint Node Templates Section Size is Empty", k8sBpNodeTemplates.size() > 0); + + assertEquals("DMAAP with Import File K8s Blueprint:NodeTemplates:Type is not Matching", k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES).getType(), Constants.DMAAP_NODETEMPLATES_TYPE); + + Properties k8sBpNodeTemplateProperties = ((Node) k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES)).getProperties(); + assertNotNull("DMAAP with Import File K8s Blueprint Node Templates:Properties Section is NULL", k8sBpNodeTemplateProperties); + + List bpNodeTemplateRelationships = ((Node) k8sBpNodeTemplates.get(Constants.ONAP_NODETEMPLATES)).getRelationships(); + assertNotNull("DMAAP with Import File K8s Blueprint Node Templates:Relationships Section is NULL", bpNodeTemplateRelationships); + + onapTestUtils.verifyStreamsPublishes("DMAAP with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyStreamsSubscribes("DMAAP with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyAuxilary("DMAAP with Import File K8s",onapComponentSpec); + onapTestUtils.verifyHealthCheck("DMAAP with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyServicesCalls("DMAAP with Import File K8s",onapComponentSpec); + onapTestUtils.verifyServicesProvides("DMAAP with Import File K8s",onapComponentSpec); + onapTestUtils.verifyDockerConfig("DMAAP with Import File K8s",onapComponentSpec,k8sBpNodeTemplateProperties); + onapTestUtils.verifyParameters("DMAAP with Import File K8s",onapComponentSpec,k8sBpNodeTemplates); + } + +} + + + diff --git a/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapComponentSpecTest.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapComponentSpecTest.java new file mode 100644 index 0000000..633c205 --- /dev/null +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapComponentSpecTest.java @@ -0,0 +1,58 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.test; + + +import org.onap.blueprintgenerator.exception.ComponentSpecException; +import org.onap.blueprintgenerator.model.componentspec.base.ComponentSpec; +import org.junit.Test; +import org.junit.jupiter.api.DisplayName; + +import java.nio.file.Paths; + +import static org.junit.Assert.assertEquals; + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * ONAP ComponentSpec Test Cases + */ + +public class OnapComponentSpecTest extends BlueprintGeneratorTests { + + @DisplayName("Testing ComponentSpec File Generation for Invalid File") + @Test(expected = ComponentSpecException.class) + public void testComponentSpecForInvalidFile() { + onapComponentSpecService.createComponentSpecFromFile("invalid.json"); + } + + @DisplayName("Testing ComponentSpec File Generation for Valid DMAAP File") + @Test + public void testComponentSpecForValidVesFile(){ + ComponentSpec onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(Paths.get("src", "test", "resources", "componentspecs", ves).toFile().getAbsolutePath()); + assertEquals("ComponentSpec name not matching for Valid Ves File",onapComponentSpec.getSelf().getName(), "dcae-ves-collector"); + } + +} diff --git a/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapTestUtils.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapTestUtils.java new file mode 100644 index 0000000..9033fbe --- /dev/null +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/OnapTestUtils.java @@ -0,0 +1,207 @@ +/* + * + * * ============LICENSE_START======================================================= + * * org.onap.dcae + * * ================================================================================ + * * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * * ================================================================================ + * * Licensed 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. + * * ============LICENSE_END========================================================= + * + * + */ + +package org.onap.blueprintgenerator.test; + +import org.onap.blueprintgenerator.constants.Constants; +import org.onap.blueprintgenerator.model.base.Blueprint; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.Properties; +import org.onap.blueprintgenerator.model.componentspec.OnapAuxilary; +import org.onap.blueprintgenerator.model.componentspec.OnapComponentSpec; + +import org.onap.blueprintgenerator.model.componentspec.common.Calls; +import org.onap.blueprintgenerator.model.componentspec.common.Provides; +import org.onap.blueprintgenerator.model.componentspec.common.HealthCheck; +import org.onap.blueprintgenerator.model.componentspec.common.Parameters; +import org.onap.blueprintgenerator.model.componentspec.common.Volumes; +import org.onap.blueprintgenerator.model.componentspec.common.Artifacts; +import org.onap.blueprintgenerator.model.dmaap.Streams; +import org.junit.Ignore; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.io.IOException; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + + +/** + * @author : Ravi Mantena + * @date 10/16/2020 + * Application: ONAP - Blueprint Generator + * Test Utilities used in Test Suite and Test Cases + */ + +@Component +@Ignore +public class OnapTestUtils extends BlueprintGeneratorTests { + + @Value("${imports.onap.types}") + private String importsOnapTypes; + + @Value("${imports.onap.K8s.plugintypes}") + private String importsOnapK8sPlugintypes; + + @Value("${imports.onap.K8s.dcaepolicyplugin}") + private String importsOnapK8sDcaepolicyplugin; + + @Value("${imports.dmaap.dmaapplugin}") + private String importsDmaapDmaapplugin; + + @Value("${import.Postgres}") + private String importPostgres; + + @Value("${import.Clamp}") + private String importClamp; + + + + public Input getInput(String componentSpecPath,String outputPath,String bluePrintName,String importPath,String bpType,String serviceNameOverride){ + Input input = new Input(); + input.setComponentSpecPath(componentSpecPath); + input.setBluePrintName(bluePrintName); + input.setOutputPath(outputPath); + input.setBpType(bpType); + input.setServiceNameOverride(serviceNameOverride); + input.setImportPath(importPath); + return input; + } + + public Input getInput(String componentSpecPath){ + Input input = new Input(); + input.setComponentSpecPath(componentSpecPath); + return input; + } + + public void verifyToscaDefVersion(String type,Blueprint blueprint,String toscaDefVersion){ + String bpToscaDefVersion = blueprint.getTosca_definitions_version(); + assertNotNull(type + " TOSCA Definition Version is NULL", bpToscaDefVersion); + assertEquals(type + " TOSCA Definition Version is not Matching", bpToscaDefVersion, toscaDefVersion); + } + + public void verifyBpImports(String type,Blueprint blueprint, boolean validateimps) { + String[] bpImports = blueprint.getImports().toArray(new String[blueprint.getImports().size()]); + if (validateimps) { + String[] testImports = {importsOnapTypes,importsOnapK8sPlugintypes,importsDmaapDmaapplugin,importPostgres,importClamp}; + assertArrayEquals(type + " Blueprint Imports is not matching with default Dmaap K8s Blueprint imports", bpImports, testImports); + } + else{ + String[] testImports = {importsOnapTypes,importsOnapK8sPlugintypes,importsOnapK8sDcaepolicyplugin,importPostgres,importClamp}; + assertArrayEquals(type + " Blueprint Imports is not matching with default Onap K8s Blueprint imports", bpImports, testImports); + } + + } + + public void verifyBpImportsFromFile(String type,Blueprint blueprint, String importPath) throws IOException { + Blueprint importFileRead = yamlObjectMapper.readValue(new File(importPath), Blueprint.class); + String[] importFileImports = importFileRead.getImports().toArray(new String[importFileRead.getImports().size()]); + String[] bpImports = blueprint.getImports().toArray(new String[blueprint.getImports().size()]); + assertArrayEquals(type + " Blueprint Imports is not matching with default Dmaap K8s Blueprint imports", bpImports, importFileImports); + + } + + public void verifyStreamsPublishes(String type, OnapComponentSpec onapComponentSpec, Properties nodeTemplateProperties) { + List<Streams> streamsPublishes = nodeTemplateProperties.getStreams_publishes(); + if (!(streamsPublishes == null)) { + assertNotNull(type + " Blueprint:NodeTemplates:Properties:StreamsPublishes is NULL", streamsPublishes); + assertTrue(type + " Blueprint:NodeTemplates:Properties:StreamsPublishes Section Size is 0", streamsPublishes.size() > 0); + assertEquals(type + " Blueprint:NodeTemplates:Properties:StreamsPublishes is Not Matching", streamsPublishes.get(0).getType(), Constants.MESSAGEROUTER_VALUE); + assertEquals(type + " Blueprint:NodeTemplates:Properties:StreamsPublishes is Not Matching", streamsPublishes.get(1).getType(), Constants.MESSAGEROUTER_VALUE); + } + } + + public void verifyStreamsSubscribes(String type,OnapComponentSpec onapComponentSpec, Properties nodeTemplateProperties){ + List<Streams> streamsSubscribes = nodeTemplateProperties.getStreams_subscribes(); + if (!(streamsSubscribes == null)) { + assertNotNull(type + " Blueprint:NodeTemplates:Properties:StreamsSubscribes is NULL", streamsSubscribes); + assertTrue(type + " Blueprint:NodeTemplates:Properties:StreamsSubscribes Section Size is 0", streamsSubscribes.size() > 0); + assertEquals(type + " Blueprint:NodeTemplates:Properties:StreamsSubscribes is Not Matching", streamsSubscribes.get(0).getType(), Constants.MESSAGE_ROUTER); + assertEquals(type + " Blueprint:NodeTemplates:Properties:StreamsSubscribes is Not Matching", streamsSubscribes.get(1).getType(), Constants.DATA_ROUTER); + } + } + + public void verifyServicesCalls(String type, OnapComponentSpec onapComponentSpec){ + Calls[] csServicesCalls = onapComponentSpec.getServices().getCalls(); + assertNotNull(type + " ComponentSpec Services Calls is NULL", csServicesCalls); + //assertTrue(type + " ComponentSpec Services Calls Section Size is 0", csServicesCalls.length > 0); + } + + public void verifyServicesProvides(String type, OnapComponentSpec onapComponentSpec){ + Provides[] csServicesProvides = onapComponentSpec.getServices().getProvides(); + assertNotNull(type + " ComponentSpec Services Provides is NULL", csServicesProvides); + assertTrue(type + " ComponentSpec Services Provides Section Size is 0", csServicesProvides.length > 0); + } + + public void verifyDockerConfig(String type,OnapComponentSpec onapComponentSpec, Properties nodeTemplateProperties){ + OnapAuxilary dockerConfig = nodeTemplateProperties.getDocker_config(); + assertNotNull(type +" Blueprint Docker Config Section is NULL", dockerConfig); + } + + + public void verifyParameters(String type, OnapComponentSpec onapComponentSpec, Map<String, Node> nodeTemplates) { + Parameters[] csParameters = onapComponentSpec.getParameters(); + assertNotNull(type +" ComponentSpec Parameters Section is NULL", csParameters); + assertTrue(type + " ComponentSpec Parameters Section Size is 0", csParameters.length > 0); + } + + public void verifyAuxilary(String type, OnapComponentSpec onapComponentSpec){ + OnapAuxilary csAuxilary = onapComponentSpec.getAuxilary(); + assertNotNull(type +" ComponentSpec Auxilary Section is NULL", csAuxilary); + } + + public void verifyHealthCheck(String type,OnapComponentSpec onapComponentSpec, Properties nodeTemplateProperties){ + HealthCheck csAuxilaryHealthcheck = onapComponentSpec.getAuxilary().getHealthcheck(); + assertNotNull(type +" ComponentSpec Auxilary Health Check Section is NULL", csAuxilaryHealthcheck); + HealthCheck healthCheck = nodeTemplateProperties.getDocker_config().getHealthcheck(); + assertNotNull(type + " Blueprint:NodeTemplates:DockerConfig:Healthcheck Section is NULL", healthCheck); + assertEquals(type + " Blueprint:NodeTemplates:DockerConfig:Healthcheck:Interval Tag is not matching", healthCheck.getInterval(), csAuxilaryHealthcheck.getInterval()); + assertEquals(type + " Blueprint:NodeTemplates:DockerConfig:Healthcheck:Timeout Tag is not matching", healthCheck.getTimeout(), csAuxilaryHealthcheck.getTimeout()); + assertEquals(type + " Blueprint:NodeTemplates:DockerConfig:Healthcheck:Script Tag is not matching", healthCheck.getEndpoint(), csAuxilaryHealthcheck.getEndpoint()); + assertEquals(type + " Blueprint:NodeTemplates:DockerConfig:Healthcheck:Type Tag is not matching", healthCheck.getType(), csAuxilaryHealthcheck.getType()); + } + + public void verifyVolumes(String type,OnapComponentSpec onapComponentSpec, Properties nodeTemplateProperties){ + Volumes[] csAuxilaryVolumes = onapComponentSpec.getAuxilary().getVolumes(); + assertNotNull(type +" ComponentSpec Auxilary Live Health Check Section is NULL", csAuxilaryVolumes); + Volumes[] onapVolumes = nodeTemplateProperties.getDocker_config().getVolumes(); + assertNotNull(type + " Blueprint:NodeTemplates:DockerConfig:LiveHealthcheck Section is NULL", onapVolumes); + } + + public void verifyArtifacts(String type,OnapComponentSpec onapComponentSpec, Map<String, LinkedHashMap<String, Object>> inputs,String bptype){ + Artifacts[] csArtifacts = onapComponentSpec.getArtifacts(); + assertNotNull(type + " ComponentSpec Artifacts Section is NULL", csArtifacts); + assertEquals(type + " Blueprint:Artifacts:image is not matching", ((String) inputs.get("image").get("default")), "\"" + csArtifacts[0].getUri() + "\""); + //assertEquals(type + " Blueprint:Artifacts:image is not matching", ((String) inputs.get("tag_version").get("default")), "\"" + csArtifacts[0].getUri() + "\""); + + } + +} diff --git a/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/TlsInfoTest.java b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/TlsInfoTest.java new file mode 100644 index 0000000..f4bbe3e --- /dev/null +++ b/mod/bpgenerator/onap/src/test/java/org/onap/blueprintgenerator/test/TlsInfoTest.java @@ -0,0 +1,168 @@ +/*============LICENSE_START======================================================= + org.onap.dcae + ================================================================================ + Copyright (c) 2020 Nokia. All rights reserved. + Copyright (c) 2020 AT&T. All rights reserved. + ================================================================================ + Licensed 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. + ============LICENSE_END========================================================= + */ + +package org.onap.blueprintgenerator.test; + + +import org.junit.Test; +import org.junit.runners.Parameterized; +import org.onap.blueprintgenerator.model.common.Input; +import org.onap.blueprintgenerator.model.common.Node; +import org.onap.blueprintgenerator.model.common.OnapBlueprint; +import org.onap.blueprintgenerator.model.common.ExternalCertificateParameters; +import org.onap.blueprintgenerator.model.common.ExternalTlsInfo; +import org.onap.blueprintgenerator.model.dmaap.TlsInfo; + + +import java.nio.file.Paths; +import java.util.Arrays; +import java.util.LinkedHashMap; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + + + +//@RunWith(Parameterized.class) +public class TlsInfoTest extends BlueprintGeneratorTests { + + @Parameterized.Parameter + public char bpType; + + @Parameterized.Parameters(name = "Blueprint type: {0}") + public static List<Character> data() { + return Arrays.asList('o', 'd'); + } + + + @Test + public void useTlsTrueAndUseExternalTlsTrueTest(){ + //Input input = input.setComponentSpecPath(componentSpecPath + "testComponentSpec_withTlsTrueAndExternalTlsTrue.json"); + OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", useTlsTrueAndUseExternalTlsTrueTest).toFile().getAbsolutePath()); + + assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(bp, true); + assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, true); + } + + @Test + public void useTlsFalseAndUseExternalTlsFalseTest(){ + OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", useTlsFalseAndUseExternalTlsFalseTest).toFile().getAbsolutePath()); + + assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(bp, false); + assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, false); + } + + @Test + public void useTlsTrueAndNoExternalTlsFlagTest(){ + OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", useTlsTrueAndNoExternalTlsFlagTest).toFile().getAbsolutePath()); + + assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, true); + assertBlueprintHasNoExternalTlsInfo(bp); + } + + @Test + public void noTlsInfo(){ + OnapBlueprint bp = createBlueprintFromFile(Paths.get("src", "test", "resources", "componentspecs", noTlsInfo).toFile().getAbsolutePath()); + + assertBlueprintHasNoTlsInfo(bp); + assertBlueprintHasNoExternalTlsInfo(bp); + } + + private void assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(OnapBlueprint bp, boolean useFlagDefault) { + //should create proper inputs + assertContainsInputWithDefault(bp, "external_cert_use_external_tls", useFlagDefault); + assertContainsInputWithDefault(bp, "external_cert_ca_name", "\"RA\""); + assertContainsInputWithDefault(bp, "external_cert_cert_type", "\"P12\""); + assertContainsInputWithDefault(bp, "external_cert_common_name", "\"sample.onap.org\""); + assertContainsInputWithDefault(bp, "external_cert_sans", + "\"sample.onap.org:component.sample.onap.org\""); + + Node node = bp.getNode_templates().get("test.component.spec"); + + //should create proper externalTlsInfo object in node properties + ExternalTlsInfo externalTlsInfo = node.getProperties().getExternal_cert(); + assertNotNull(externalTlsInfo); + + assertEquals("external_cert_ca_name", externalTlsInfo.getCaName().getBpInputName()); + assertEquals("external_cert_cert_type", externalTlsInfo.getCertType().getBpInputName()); + assertEquals("external_cert_use_external_tls", externalTlsInfo.getUseExternalTls().getBpInputName()); + assertEquals("/opt/app/dcae-certificate/", externalTlsInfo.getExternalCertDirectory()); + + ExternalCertificateParameters extCertParams = externalTlsInfo.getExternalCertificateParameters(); + assertNotNull(extCertParams); + + assertEquals("external_cert_common_name", extCertParams.getCommonName().getBpInputName()); + assertEquals("external_cert_sans", extCertParams.getSans().getBpInputName()); + } + + private void assertBlueprintContainsTlsInfoWithUseFlagDefault(OnapBlueprint bp, boolean useFlagDefault) { + //shold create proper inputs + assertContainsInputWithDefault(bp, "use_tls", useFlagDefault); + + Node node = bp.getNode_templates().get("test.component.spec"); + + //should create proper tlsInfo object in node properties + TlsInfo tlsInfo = node.getProperties().getTls_info(); + assertEquals("use_tls", tlsInfo.getUseTls().getBpInputName()); + assertEquals("/opt/app/dcae-certificate/", tlsInfo.getCertDirectory()); + + } + + private void assertBlueprintHasNoExternalTlsInfo(OnapBlueprint bp) { + //should not create inputs for external tls + assertFalse(bp.getInputs().containsKey("external_cert_use_external_tls")); + assertFalse(bp.getInputs().containsKey("external_cert_common_name")); + assertFalse(bp.getInputs().containsKey("external_cert_ca_name")); + assertFalse(bp.getInputs().containsKey("external_cert_sans")); + + Node node = bp.getNode_templates().get("test.component.spec"); + + //should not create externalTlsInfo object in node properties + ExternalTlsInfo externalTlsInfo = node.getProperties().getExternal_cert(); + assertNull(externalTlsInfo); + } + + + private void assertBlueprintHasNoTlsInfo(OnapBlueprint bp) { + //should not create inputs for tls + assertFalse(bp.getInputs().containsKey("use_tls")); + + Node node = bp.getNode_templates().get("test.component.spec"); + + //should not create tlsInfo object in node properties + assertNull(node.getProperties().getTls_info()); + } + + private void assertContainsInputWithDefault(OnapBlueprint bp, String inputName, Object defaultValue) { + LinkedHashMap<String, Object> input = bp.getInputs().get(inputName); + assertNotNull(input); + assertEquals(defaultValue, input.get("default")); + } + + private OnapBlueprint createBlueprintFromFile(String path) { + onapComponentSpec = onapComponentSpecService.createComponentSpecFromFile(path); + Input input = onapTestUtils.getInput(path, "", "", "", "o", ""); + OnapBlueprint onapBlueprint = onapBlueprintService.createBlueprint(onapComponentSpec, input); + return onapBlueprint; + } +} diff --git a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withTlsFalseAndExternalTlsFalse.json b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withTlsFalseAndExternalTlsFalse.json index da75ab8..da75ab8 100644 --- a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withTlsFalseAndExternalTlsFalse.json +++ b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withTlsFalseAndExternalTlsFalse.json diff --git a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withTlsTrueAndExternalTlsTrue.json b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withTlsTrueAndExternalTlsTrue.json index f13e3fd..f13e3fd 100644 --- a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withTlsTrueAndExternalTlsTrue.json +++ b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withTlsTrueAndExternalTlsTrue.json diff --git a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withTlsTrueAndNoExternalTls.json b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withTlsTrueAndNoExternalTls.json index 517c461..517c461 100644 --- a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withTlsTrueAndNoExternalTls.json +++ b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withTlsTrueAndNoExternalTls.json diff --git a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withoutTlsInfo.json b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withoutTlsInfo.json index a94c987..a94c987 100644 --- a/mod/bpgenerator/TestCases/TlsInfo/testComponentSpec_withoutTlsInfo.json +++ b/mod/bpgenerator/onap/src/test/resources/componentspecs/testComponentSpec_withoutTlsInfo.json diff --git a/mod/bpgenerator/onap/src/test/resources/componentspecs/testImports.yaml b/mod/bpgenerator/onap/src/test/resources/componentspecs/testImports.yaml new file mode 100644 index 0000000..42a482d --- /dev/null +++ b/mod/bpgenerator/onap/src/test/resources/componentspecs/testImports.yaml @@ -0,0 +1,4 @@ +imports: + - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml + - plugin:k8splugin?version=3.0.0 + - plugin:dcaepolicyplugin?version=2.4.0
\ No newline at end of file diff --git a/mod/bpgenerator/TestCases/ves/componentSpecs/ves.json b/mod/bpgenerator/onap/src/test/resources/componentspecs/ves.json index 6812347..6655a2c 100644 --- a/mod/bpgenerator/TestCases/ves/componentSpecs/ves.json +++ b/mod/bpgenerator/onap/src/test/resources/componentspecs/ves.json @@ -6,7 +6,22 @@ "component_type": "docker" }, "streams": { - "subscribes": [], + "subscribes": [ + { + "format": "dataformat_Hello_World_PM", + "version": "1.0.0", + "route": "/TEST_HELLO_WORLD_SUB_MR", + "type": "message_router", + "config_key": "TEST-SUB-MR" + }, + { + "format": "dataformat_Hello_World_PM DR", + "version": "1.0.0", + "route": "/TEST_HELLO_WORLD_SUB_DR", + "type": "data_router", + "config_key": "TEST-SUB-DR" + } + ], "publishes": [ { "format": "VES_specification", @@ -221,6 +236,31 @@ "designer_editable": false }, { + "name": "testParam1", + "value": "test-param-1", + "description": "testParam1", + "sourced_at_deployment": true, + "policy_editable": true, + "policy_group": "Test_Parameters", + "required": true, + "designer_editable": true, + "policy_schema": [ + { + "name": "PolicySchemaTest", + "description": "List of objects for vnf type monitorng", + "type": "String", + "entry_schema": [ + { + "name": "TestEntrySchema", + "description": "entry", + "type": "string", + "value": "None" + } + ] + } + ] + }, + { "name": "tomcat.maxthreads", "value": "200", "description": "Tomcat control for concurrent request", @@ -236,6 +276,22 @@ "timeout": "1s", "endpoint": "/healthcheck" }, + "livehealthcheck": { + "type": "http", + "interval": "15s", + "timeout": "1s", + "endpoint": "/livehealthcheck" + }, + "databases": { + "dti": "postgres" + }, + "reconfigs": { + "app_reconfig": "abc" + }, + "policy": { + "trigger_type": "docker", + "script_path": "/opt/app/manager/bin/reconfigure.sh" + }, "volumes": [ { "container": { @@ -265,7 +321,12 @@ "ports": [ "8080:8080", "8443:8443" - ] + ], + "tls_info": { + "cert_directory": "/opt/app/dcae-certificate/", + "use_tls": true, + "use_external_tls": true + } }, "artifacts": [ { diff --git a/mod/bpgenerator/TestCases/policyInput.json b/mod/bpgenerator/onap/src/test/resources/policyjson/policyInput.json index fb89e1a..fb89e1a 100644 --- a/mod/bpgenerator/TestCases/policyInput.json +++ b/mod/bpgenerator/onap/src/test/resources/policyjson/policyInput.json diff --git a/mod/bpgenerator/onap/version.properties b/mod/bpgenerator/onap/version.properties new file mode 100644 index 0000000..93e7833 --- /dev/null +++ b/mod/bpgenerator/onap/version.properties @@ -0,0 +1,29 @@ +# +# /* +# * ============LICENSE_START======================================================= +# * org.onap.dcae +# * ================================================================================ +# * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. +# * ================================================================================ +# * Licensed 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. +# * ============LICENSE_END========================================================= +# */ +# +# + +major=1 +minor=7 +patch=0 +base_version=${major}.${minor}.${patch} +release_version=${base_version} +snapshot_version=${base_version}-SNAPSHOT diff --git a/mod/bpgenerator/pom.xml b/mod/bpgenerator/pom.xml index c8f8fdb..b0a4f17 100644 --- a/mod/bpgenerator/pom.xml +++ b/mod/bpgenerator/pom.xml @@ -1,148 +1,186 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- -============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= ---> + ~ /* + ~ * ============LICENSE_START======================================================= + ~ * org.onap.dcae + ~ * ================================================================================ + ~ * Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + ~ * ================================================================================ + ~ * Licensed 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. + ~ * ============LICENSE_END========================================================= + ~ */ + ~ + --> <project xmlns="http://maven.apache.org/POM/4.0.0" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.onap.oparent</groupId> - <artifactId>oparent</artifactId> - <version>2.0.0</version> - </parent> - <groupId>org.onap.dcaegen2.platform.mod</groupId> - <artifactId>blueprint-generator</artifactId> - <version>1.6.0-SNAPSHOT</version> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <sonar.junit.reportsPath>${project.basedir}/target/surefire-reports</sonar.junit.reportsPath> - <sonar.surefire.reportsPath>${project.basedir}/target/surefire-reports</sonar.surefire.reportsPath> - <sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths> - <shade.main>org.onap.blueprintgenerator.core.App</shade.main> - <shade.transformer>org.apache.maven.plugins.shade.resource.ManifestResourceTransformer</shade.transformer> - </properties> - - <build> - <plugins> - <!-- the following plugins are invoked from oparent, we do not need them --> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <version>2.4.1</version> - <configuration> - <descriptors> - <descriptor>src/assembly/dep.xml</descriptor> - </descriptors> - </configuration> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> - <executions> - <execution> + <groupId>org.onap.dcaegen2.platform</groupId> + <artifactId>blueprint-generator</artifactId> + <version>1.7.0-SNAPSHOT</version> + <packaging>pom</packaging> - <id>make-assembly</id> - <phase>package</phase> - <goals> - <goal>single</goal> - </goals> - </execution> - </executions> + <modules> + <module>common</module> + <module>onap</module> + </modules> - </plugin> + <name>BlueprintGenerator</name> + <description>This is Parent Module used by DCAE and ONAP to generate Blueprints</description> - <plugin> - <groupId>org.sonarsource.scanner.maven</groupId> - <artifactId>sonar-maven-plugin</artifactId> - <version>3.0.2</version> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-shade-plugin</artifactId> - <version>3.2.1</version> - <executions> - <execution> - <goals> - <goal>shade</goal> - </goals> - <configuration> - <shadedArtifactAttached>true</shadedArtifactAttached> - <shadedClassifierName>executable</shadedClassifierName> - <transformers> - <transformer - implementation="${shade.transformer}"> - <mainClass>${shade.main}</mainClass> - </transformer> - </transformers> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <source>11</source> - <target>11</target> - </configuration> - </plugin> - </plugins> - </build> + <parent> + <groupId>org.onap.oparent</groupId> + <artifactId>oparent</artifactId> + <version>2.0.0</version> + <relativePath /> + </parent> - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>4.12</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.mockito</groupId> - <artifactId>mockito-core</artifactId> - <version>3.1.0</version> - <scope>test</scope> - </dependency> + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <java.version>11</java.version> + <maven.compiler.source>${java.version}</maven.compiler.source> + <maven.compiler.target>${java.version}</maven.compiler.target> + <spring-boot.version>2.2.9.RELEASE</spring-boot.version> + <jackson.version>2.9.7</jackson.version> + <lombok.version>1.18.10</lombok.version> + <gson.version>2.8.6</gson.version> + <commons.io.version>2.6</commons.io.version> + <commons.cli.version>1.4</commons.cli.version> + <maven.surefireplugin.version>2.22.2</maven.surefireplugin.version> + <maven.compilerplugin.version>3.8.1</maven.compilerplugin.version> + <dockerfile-maven-plugin.version>1.4.10</dockerfile-maven-plugin.version> + <docker.image.name>onap/${project.groupId}.${project.artifactId}</docker.image.name> + <sonar.maven.plugin>3.0.2</sonar.maven.plugin> + <sonar.junit.reportsPath>${project.basedir}/target/surefire-reports</sonar.junit.reportsPath> + <sonar.surefire.reportsPath>${project.basedir}/target/surefire-reports</sonar.surefire.reportsPath> + <sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco-ut/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths> + </properties> - <dependency> - <groupId>info.picocli</groupId> - <artifactId>picocli</artifactId> - <version>3.9.6</version> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>1.18.2</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.dataformat</groupId> - <artifactId>jackson-dataformat-yaml</artifactId> - <version>2.9.8</version> - </dependency> + <dependencies> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-context</artifactId> + <version>5.2.0.RELEASE</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>5.2.0.RELEASE</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> + <version>2.2.5.RELEASE</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <version>2.2.5.RELEASE</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-validation</artifactId> + <version>2.2.5.RELEASE</version> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>${lombok.version}</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>${gson.version}</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.dataformat</groupId> + <artifactId>jackson-dataformat-yaml</artifactId> + <version>${jackson.version}</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + <version>3.1.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>info.picocli</groupId> + <artifactId>picocli</artifactId> + <version>3.9.6</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>${jackson.version}</version> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-annotations</artifactId> + <version>${jackson.version}</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>${commons.io.version}</version> + </dependency> + <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>${commons.cli.version}</version> + </dependency> + </dependencies> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-databind</artifactId> - <version>2.9.8</version> - </dependency> - <dependency> - <groupId>com.fasterxml.jackson.core</groupId> - <artifactId>jackson-annotations</artifactId> - <version>2.9.8</version> - </dependency> - </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + <version>2.6</version> + <executions> + <execution> + <phase>test</phase> + <goals> + <goal>report</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>${maven.compilerplugin.version}</version> + <configuration> + <source>${maven.compiler.source}</source> + <target>${maven.compiler.target}</target> + </configuration> + </plugin> + <plugin> + <groupId>org.sonarsource.scanner.maven</groupId> + <artifactId>sonar-maven-plugin</artifactId> + <version>${sonar.maven.plugin}</version> + </plugin> + </plugins> + </build> -</project> +</project>
\ No newline at end of file diff --git a/mod/bpgenerator/src/assembly/dep.xml b/mod/bpgenerator/src/assembly/dep.xml deleted file mode 100644 index daf6771..0000000 --- a/mod/bpgenerator/src/assembly/dep.xml +++ /dev/null @@ -1,52 +0,0 @@ -<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> - <id>bundle</id> - <formats> - <format>tar.gz</format> - </formats> - <files> - <file> - <source>target/${project.artifactId}-${project.version}.jar</source> - <outputDirectory>lib</outputDirectory> - </file> - </files> - <fileSets> -<!-- - <fileSet> - <directory>src/main/scripts</directory> - <outputDirectory>bin</outputDirectory> - <includes> - <include>**/*.sh</include> - </includes> - <fileMode>0755</fileMode> - </fileSet> - <fileSet> - <directory>etc</directory> - <outputDirectory>conf</outputDirectory> - </fileSet> ---> - <fileSet> - <!-- src/main/scripts may be a better choice because src/main/resources is packaged by maven into the jar --> - <directory>src/main/resources/bin</directory> - <outputDirectory>bin</outputDirectory> - <includes> - <include>**/*.*</include> - </includes> - <fileMode>0755</fileMode> - </fileSet> - <fileSet> - <directory>src/main/resources/conf</directory> - <outputDirectory>conf</outputDirectory> - </fileSet> - - </fileSets> - <dependencySets> - <dependencySet> - <includes> - <include>*:jar</include> - </includes> - <outputDirectory>lib</outputDirectory> - </dependencySet> - </dependencySets> -</assembly> diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java deleted file mode 100644 index c3b1453..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/common/blueprint/BlueprintHelper.java +++ /dev/null @@ -1,76 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.common.blueprint; - - -import lombok.experimental.UtilityClass; - -import java.util.LinkedHashMap; - -@UtilityClass -public class BlueprintHelper { - - public static final String INTEGER_TYPE = "integer"; - public static final String BOOLEAN_TYPE = "boolean"; - public static final String STRING_TYPE = "string"; - - public static LinkedHashMap<String, Object> createInputValue(String type, String description, Object defaultValue) { - LinkedHashMap<String, Object> inputMap = new LinkedHashMap<>(); - inputMap.put("type", type); - inputMap.put("description", description); - inputMap.put("default", defaultValue); - return inputMap; - } - - public static LinkedHashMap<String, Object> createInputValue(String type, Object defaultValue) { - LinkedHashMap<String, Object> inputMap = new LinkedHashMap<>(); - inputMap.put("type", type); - inputMap.put("default", defaultValue); - return inputMap; - } - - public static LinkedHashMap<String, Object> createIntegerInput(String description, Object defaultValue){ - return createInputValue(INTEGER_TYPE, description, defaultValue); - } - - public static LinkedHashMap<String, Object> createBooleanInput(String description, Object defaultValue){ - return createInputValue(BOOLEAN_TYPE, description, defaultValue); - } - - public static LinkedHashMap<String, Object> createStringInput(String description, Object defaultValue){ - return createInputValue(STRING_TYPE, description, defaultValue); - } - - public static LinkedHashMap<String, Object> createStringInput(Object defaultValue){ - return createInputValue(STRING_TYPE, defaultValue); - } - - public static String joinUnderscore(String firstValue, String secondValue){ - return firstValue + "_" + secondValue; - } - - public static boolean isDataRouterType(String type) { - return type.equals("data_router") || type.equals("data router"); - } - - public static boolean isMessageRouterType(String type) { - return type.equals("message_router") || type.equals("message router"); - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/App.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/App.java deleted file mode 100644 index 4775825..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/App.java +++ /dev/null @@ -1,40 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - - -package org.onap.blueprintgenerator.core; - -import picocli.CommandLine; -import picocli.CommandLine.Command; - -@Command(subcommands = { - BlueprintCommand.class, - PolicyCommand.class -}) -public class App implements Runnable { - public static void main(String...args) { - CommandLine.run(new App(), args); - } - - @Override - public void run() { - CommandLine.usage(this, System.out); - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/BlueprintCommand.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/BlueprintCommand.java deleted file mode 100644 index 7627930..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/BlueprintCommand.java +++ /dev/null @@ -1,60 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Licensed 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.core; - -import org.onap.blueprintgenerator.models.blueprint.Blueprint; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import picocli.CommandLine.Command; -import picocli.CommandLine.Option; - -@Command(name = "blueprint", description = "Command used to generate blueprints from component spec") -public class BlueprintCommand implements Runnable { - private static final char STANDARD_BLUEPRINT = 'o'; - private static final char DMAAP_BLUEPRINT = 'd'; - - @Option(names = {"-i", "--component-spec"}, description = "Path to component spec file", required = true) - private String componentSpecPath; - - @Option(names = {"-p", "--blueprint-path"}, description = "Path to directory that blueprints are output to", required = true) - private String blueprintOutputPath; - - @Option(names = {"-n", "--blueprint-name"}, description = "Name of the blueprint", defaultValue = "") - private String blueprintName; - - @Option(names = {"-t", "--imports"}, description = "Path to the import file", defaultValue = "") - private String importsPath; - - @Option(names={"-o", "--service-name-override"}, description="Value used to override the service name", defaultValue = "") - private String serviceNameOverride; - - @Option(names={"-d", "--dmaap-plugin"}, description = "Flag used to indicate blueprint uses the DMaaP plugin.") - private boolean dmaapPlugin; - - @Override - public void run() { - ComponentSpec inboundComponentSpec = new ComponentSpec(); - inboundComponentSpec.createComponentSpecFromFile(componentSpecPath); - System.out.println(dmaapPlugin ? DMAAP_BLUEPRINT : STANDARD_BLUEPRINT); - Blueprint generatedBlueprint = new Blueprint().createBlueprint(inboundComponentSpec, this.blueprintName, - dmaapPlugin ? DMAAP_BLUEPRINT : STANDARD_BLUEPRINT, importsPath, serviceNameOverride); - generatedBlueprint.blueprintToYaml(blueprintOutputPath, this.blueprintName, inboundComponentSpec); - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/Fixes.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/Fixes.java deleted file mode 100644 index 3a4b457..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/Fixes.java +++ /dev/null @@ -1,104 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.core; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.List; - -public class Fixes { - private static ArrayList<String> lines = new ArrayList<String>(); - private static String line = null; - - public static void fixSingleQuotes(File f) throws IOException { - File translateFile = f; - try { - FileReader fr = new FileReader(translateFile); - BufferedReader br = new BufferedReader(fr); - while((line = br.readLine()) != null) { -// lines.add(ensureNoSingleQuotes(line)); - if(line.contains("'")) { - line = line.replace("'", ""); - } - if(line.contains("\"\"") && (line.contains("m") || line.contains("M"))) { - line = line.replaceAll("\"\"", "\""); - } - lines.add(line); - - } - fr.close(); - br.close(); - FileWriter fw = new FileWriter(translateFile); - PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(f, true))); - for(String s: lines) { - out.println(); - out.write(s); - out.flush(); - } - - out.close(); - fw.close(); - line = null; - lines = new ArrayList<String>(); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } - } - - /** - * Remove single quotes from a line from a blueprint - */ - private static String ensureNoSingleQuotes(String line) { - // TODO: Should probably use regex instead - // REVIEW: The condition under which to remove the single quotes - if ((line.contains("concat") || line.contains("default: ")) && line.contains("'")) { - return line.replace("'", ""); - } else { - return line; - } - } - - /** - * Takes in an entire blueprint (YAML) in a string buffer and post processes it to apply - * "fixes" like removing unwanted single quotes. - */ - public static String applyFixes(String bp) { - List<String> lines = new ArrayList<String>(); - - String[] linesPre = bp.split("\n"); - System.out.println(String.format("To post-processing #lines: %d", linesPre.length)); - - for (String line : linesPre) { - lines.add(ensureNoSingleQuotes(line)); - } - - return String.join("\n", lines); - } - - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PgaasNodeBuilder.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PgaasNodeBuilder.java deleted file mode 100644 index 7c3193e..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PgaasNodeBuilder.java +++ /dev/null @@ -1,129 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.core; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.TreeMap; -import org.onap.blueprintgenerator.exception.DatabasesNotFoundException; -import org.onap.blueprintgenerator.models.GetAttribute; -import org.onap.blueprintgenerator.models.blueprint.GetInput; -import org.onap.blueprintgenerator.models.blueprint.Node; -import org.onap.blueprintgenerator.models.blueprint.pgaas.PgaasNode; -import org.onap.blueprintgenerator.models.blueprint.pgaas.PgaasNodeProperties; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createInputValue; - -public class PgaasNodeBuilder { - - private static final String PGAAS_NODE_TYPE = "dcae.nodes.pgaas.database"; - private static final String PGAAS_NODE_NAME_POSTFIX = "_pgaasdb"; - private static final String WRITER_FQDN_POSTFIX = "_database_writerfqdn"; - private static final String NAME_POSTFIX = "_database_name"; - private static final boolean USE_EXISTING = true; - private static final String DB_RELATIONSHIP_TYPE = "cloudify.relationships.depends_on"; - - - public static void addPgaasNodesAndInputs(ComponentSpec cs, TreeMap<String, Node> nodeTemplate, - TreeMap<String, LinkedHashMap<String, Object>> inps) { - TreeMap<String, String> databases = cs.getAuxilary().getDatabases(); - if (databases == null) { - throw new DatabasesNotFoundException("databases section not found in componentspec"); - } - for (Map.Entry<String, String> database : databases.entrySet()) { - addPgaasNode(database, nodeTemplate); - addPgaasInputs(database, inps); - } - } - - private static void addPgaasInputs(Map.Entry<String, String> database, - TreeMap<String, LinkedHashMap<String, Object>> inps) { - inps.put(database.getKey() + NAME_POSTFIX, createInputValue("string", "db name", "")); - inps.put(database.getKey() + WRITER_FQDN_POSTFIX, createInputValue("string", "db writerfqdn", "")); - } - - private static void addPgaasNode(Map.Entry<String, String> database, TreeMap<String, Node> nodeTemplate) { - PgaasNode pgaasNode = new PgaasNode(); - String dbName = database.getKey(); - pgaasNode.setType(PGAAS_NODE_TYPE); - pgaasNode.setPgaasNodeProperties(buildPgaasNodeProperties(dbName)); - nodeTemplate.put(dbName + PGAAS_NODE_NAME_POSTFIX, pgaasNode); - } - - private static PgaasNodeProperties buildPgaasNodeProperties(String dbName) { - PgaasNodeProperties pgaasNodeProperties = new PgaasNodeProperties(); - - GetInput nameValue = new GetInput(); - nameValue.setBpInputName(dbName + NAME_POSTFIX); - pgaasNodeProperties.setName(nameValue); - - GetInput writerfqdnValue = new GetInput(); - writerfqdnValue.setBpInputName(dbName + WRITER_FQDN_POSTFIX); - pgaasNodeProperties.setWriterfqdn(writerfqdnValue); - - pgaasNodeProperties.setUseExisting(USE_EXISTING); - - return pgaasNodeProperties; - } - - public static ArrayList<LinkedHashMap<String, String>> getPgaasNodeRelationships(ComponentSpec cs) { - ArrayList<LinkedHashMap<String, String>> relationships = new ArrayList<>(); - for (Map.Entry<String, String> database : cs.getAuxilary().getDatabases().entrySet()) { - LinkedHashMap<String, String> relationship = new LinkedHashMap<>(); - relationship.put("type", DB_RELATIONSHIP_TYPE); - relationship.put("target", database.getKey() + PGAAS_NODE_NAME_POSTFIX); - relationships.add(relationship); - } - return relationships; - } - - public static LinkedHashMap<String, Object> getEnvVariables(TreeMap<String, String> databases) { - LinkedHashMap<String, Object> envVariables = new LinkedHashMap<String, Object>(); - for (Map.Entry<String, String> database : databases.entrySet()) { - String name = database.getKey().toUpperCase(); - - envVariables.put("<<", "*envs"); - - GetInput nameValue = new GetInput(); - nameValue.setBpInputName(name.toLowerCase() + NAME_POSTFIX); - envVariables.put(name + "_DB_NAME", nameValue); - - GetAttribute adminHostValue = buildGetAttributeValue(name.toLowerCase(), "admin", "host"); - envVariables.put(name.toUpperCase() + "_DB_ADMIN_HOST", adminHostValue); - - GetAttribute adminUserValue = buildGetAttributeValue(name.toLowerCase(), "admin", "user"); - envVariables.put(name.toUpperCase() + "_DB_ADMIN_USER", adminUserValue); - - GetAttribute adminPasswordValue = buildGetAttributeValue(name.toLowerCase(), "admin", "password"); - envVariables.put(name.toUpperCase() + "_DB_ADMIN_PASS", adminPasswordValue); - } - return envVariables; - } - - private static GetAttribute buildGetAttributeValue(String dbName, String owner, String type) { - GetAttribute attribute = new GetAttribute(); - attribute.setAttribute(Arrays.asList(dbName + PGAAS_NODE_NAME_POSTFIX, owner, type)); - return attribute; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PolicyCommand.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PolicyCommand.java deleted file mode 100644 index 81a7911..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PolicyCommand.java +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2019 Nordix Foundation. - * ================================================================================ - * Licensed 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.core; - -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.policymodel.PolicyModel; -import picocli.CommandLine.Command; -import picocli.CommandLine.Option; - -@Command(name = "policy", description = "Command used to generate policy model from component spec") -public class PolicyCommand implements Runnable{ - @Option(names = {"-i", "--component-spec"}, description = "Path to component spec file", required = true) - private String componentSpecPath; - - @Option(names = {"-p", "--model-path"}, description = "Path to directory that models are output to", required = true) - private String modelOutputPath; - - @Override - public void run() { - ComponentSpec inboundComponentSpec = new ComponentSpec(); - inboundComponentSpec.createComponentSpecFromFile(componentSpecPath); - new PolicyModel().createPolicyModels(inboundComponentSpec, this.modelOutputPath); - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PolicyNodeBuilder.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PolicyNodeBuilder.java deleted file mode 100644 index 1c3713b..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/PolicyNodeBuilder.java +++ /dev/null @@ -1,92 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.core; - -import org.onap.blueprintgenerator.models.blueprint.GetInput; -import org.onap.blueprintgenerator.models.blueprint.Node; -import org.onap.blueprintgenerator.models.blueprint.policy.PolicyNode; -import org.onap.blueprintgenerator.models.blueprint.policy.PolicyNodeProperties; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.policy_info.TypePolicy; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.TreeMap; - -public class PolicyNodeBuilder { - - private static final String POLICY_NODE_TYPE = "clamp.nodes.policy"; - private static final String POLICY_RELATIONSHIP_TYPE = "cloudify.relationships.depends_on"; - - public static void addPolicyNodesAndInputs(ComponentSpec cs, TreeMap<String, Node> nodeTemplate, - TreeMap<String, LinkedHashMap<String, Object>> inps) { - List<TypePolicy> policyList = cs.getPolicyInfo().getTypePolicyList(); - for (TypePolicy policy : policyList) { - addPolicyNodesToNodeTemplate(policy, nodeTemplate); - addPolicyInputs(policy, inps); - } - } - - private static void addPolicyInputs(TypePolicy policy, TreeMap<String, LinkedHashMap<String, Object>> inps) { - String defaultValue = policy.getPolicy_id() != null ? policy.getPolicy_id() : ""; - inps.put(policy.getNode_label() + "_policy_id", getInputValue("string", "policy_id", defaultValue)); - } - - private static LinkedHashMap<String, Object> getInputValue(String type, String description, Object defaultValue) { - LinkedHashMap<String, Object> inputValueMap = new LinkedHashMap(); - inputValueMap.put("type", type); - inputValueMap.put("description", description); - inputValueMap.put("default", defaultValue); - return inputValueMap; - } - - private static void addPolicyNodesToNodeTemplate(TypePolicy policy, TreeMap<String, Node> nodeTemplate) { - PolicyNode policyNode = new PolicyNode(); - policyNode.setType(POLICY_NODE_TYPE); - policyNode.setPolicyNodeProperties(getPolicyNodeProperties(policy)); - nodeTemplate.put(policy.getNode_label(), policyNode); - } - - private static PolicyNodeProperties getPolicyNodeProperties(TypePolicy policy) { - PolicyNodeProperties policyNodeProperties = new PolicyNodeProperties(); - - GetInput policyIdGetInput = new GetInput(); - policyIdGetInput.setBpInputName(policy.getNode_label() + "_policy_id"); - policyNodeProperties.setPolicyId(policyIdGetInput); - - policyNodeProperties.setPolicyModelId(policy.getPolicy_model_id()); - - return policyNodeProperties; - } - - public static ArrayList<LinkedHashMap<String, String>> getPolicyRelationships(ComponentSpec cs) { - ArrayList<LinkedHashMap<String, String>> relationships = new ArrayList<>(); - List<TypePolicy> policyList = cs.getPolicyInfo().getTypePolicyList(); - for (TypePolicy policy : policyList) { - LinkedHashMap<String, String> relationship = new LinkedHashMap<>(); - relationship.put("type", POLICY_RELATIONSHIP_TYPE); - relationship.put("target", policy.getNode_label()); - relationships.add(relationship); - } - return relationships; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/TestComponentSpec.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/TestComponentSpec.java deleted file mode 100644 index f9fa2cb..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/core/TestComponentSpec.java +++ /dev/null @@ -1,270 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.core; - -import java.util.ArrayList; -import java.util.TreeMap; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.models.componentspec.Artifacts; -import org.onap.blueprintgenerator.models.componentspec.Auxilary; -import org.onap.blueprintgenerator.models.componentspec.CallsObj; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Container; -import org.onap.blueprintgenerator.models.componentspec.HealthCheck; -import org.onap.blueprintgenerator.models.componentspec.Host; -import org.onap.blueprintgenerator.models.componentspec.Parameters; -import org.onap.blueprintgenerator.models.componentspec.Policy; -import org.onap.blueprintgenerator.models.componentspec.ProvidesObj; -import org.onap.blueprintgenerator.models.componentspec.Publishes; -import org.onap.blueprintgenerator.models.componentspec.Self; -import org.onap.blueprintgenerator.models.componentspec.Services; -import org.onap.blueprintgenerator.models.componentspec.Streams; -import org.onap.blueprintgenerator.models.componentspec.Subscribes; -import org.onap.blueprintgenerator.models.componentspec.Volumes; - -@Getter @Setter -public class TestComponentSpec { - private String componentSpecAsString = "{\r\n" + - " \"self\": {\r\n" + - " \"component_type\": \"docker\",\r\n" + - " \"description\": \"Test component spec\",\r\n" + - " \"name\": \"test.component.spec\",\r\n" + - " \"version\": \"1.0.1\"\r\n" + - " },\r\n" + - "\r\n" + - " \"service\": {\r\n" + - " \"calls\": [],\r\n" + - " \"provides\": []\r\n" + - " },\r\n" + - "\r\n" + - " \"streams\": {\r\n" + - " \"publishes\": [{\r\n" + - " \"config_key\": \"TEST-PUB-DR\",\r\n" + - " \"format\": \"dataformat_Hello_World_PM\",\r\n" + - " \"type\": \"data_router\",\r\n" + - " \"version\": \"1.0.0\"\r\n" + - " },\r\n" + - " {\r\n" + - " \"config_key\": \"TEST-PUB-MR\",\r\n" + - " \"format\": \"dataformat_Hello_World_PM\",\r\n" + - " \"type\": \"message_router\",\r\n" + - " \"version\": \"1.0.0\"\r\n" + - " }\r\n" + - " ],\r\n" + - "\r\n" + - " \"subscribes\": [{\r\n" + - " \"config_key\": \"TEST-SUB-MR\",\r\n" + - " \"format\": \"dataformat_Hello_World_PM\",\r\n" + - " \"route\": \"/TEST_HELLO_WORLD_SUB_MR\",\r\n" + - " \"type\": \"message_router\",\r\n" + - " \"version\": \"1.0.0\"\r\n" + - " },\r\n" + - " {\r\n" + - " \"config_key\": \"TEST-SUB-DR\",\r\n" + - " \"format\": \"dataformat_Hello_World_PM\",\r\n" + - " \"route\": \"/TEST-HELLO-WORLD-SUB-DR\",\r\n" + - " \"type\": \"data_router\",\r\n" + - " \"version\": \"1.0.0\"\r\n" + - " } \r\n" + - " ]\r\n" + - " },\r\n" + - "\r\n" + - " \"parameters\":\r\n" + - " [\r\n" + - " {\r\n" + - " \"name\": \"testParam1\",\r\n" + - " \"description\": \"test parameter 1\",\r\n" + - " \"value\": \"test-param-1\",\r\n" + - " \"type\": \"string\",\r\n" + - " \"sourced_at_deployment\": true,\r\n" + - " \"designer_editable\": true,\r\n" + - " \"policy_editable\": true,\r\n" + - " \"policy_group\": \"Test_Parameters\",\r\n" + - " \"required\": true\r\n" + - " }\r\n" + - " ],\r\n" + - "\r\n" + - " \"auxilary\": {\r\n" + - " \"healthcheck\": {\r\n" + - " \"type\": \"docker\",\r\n" + - " \"interval\": \"300s\",\r\n" + - " \"timeout\": \"120s\",\r\n" + - " \"script\": \"/etc/init.d/nagios status\"\r\n" + - " },\r\n" + - "\r\n" + - " \"databases\" : {\r\n" + - " \"TestDB1\": \"PGaaS\",\r\n" + - " \"TestDB2\": \"PGaaS\"\r\n" + - " },\r\n" + - "\r\n" + - " \"policy\": {\r\n" + - " \"trigger_type\": \"docker\",\r\n" + - " \"script_path\": \"/opt/app/manager/bin/reconfigure.sh\"\r\n" + - " },\r\n" + - " \"volumes\": [\r\n" + - " {\r\n" + - " \"container\": {\r\n" + - " \"bind\": \"/opt/app/manager/config/hostname\"\r\n" + - " },\r\n" + - " \"host\": {\r\n" + - " \"path\": \"/etc/hostname\",\r\n" + - " \"mode\": \"ro\"\r\n" + - " }\r\n" + - " }\r\n" + - "\r\n" + - " ],\r\n" + - " \"ports\": [\r\n" + - " \"80:80\"\r\n" + - " ]\r\n" + - " },\r\n" + - "\r\n" + - " \"artifacts\": [{\r\n" + - " \"type\": \"docker image\",\r\n" + - " \"uri\": \"test.tester\"\r\n" + - " }] \r\n" + - "\r\n" + - "}"; - private ComponentSpec componentSpec; - - public TestComponentSpec() { - this.componentSpec = createComponentSpec(); - } - - private ComponentSpec createComponentSpec(){ - //Manually fill a component spec object with the values from the file itself - ComponentSpec manualSpec = new ComponentSpec(); - - Self self = new Self(); - self.setComponent_type("docker"); - self.setDescription("Test component spec"); - self.setName("test.component.spec"); - self.setVersion("1.0.1"); - manualSpec.setSelf(self); - - Services services = new Services(); - CallsObj[] calls = new CallsObj[0]; - ProvidesObj[] provides = new ProvidesObj[0]; - services.setCalls(calls); - services.setProvides(provides); - manualSpec.setServices(null); - - Streams streams = new Streams(); - Publishes[] publishes = new Publishes[2]; - Publishes pub1 = new Publishes(); - pub1.setConfig_key("TEST-PUB-DR"); - pub1.setFormat("dataformat_Hello_World_PM"); - pub1.setType("data_router"); - pub1.setVersion("1.0.0"); - - Publishes pub2 = new Publishes(); - pub2.setConfig_key("TEST-PUB-MR"); - pub2.setFormat("dataformat_Hello_World_PM"); - pub2.setType("message_router"); - pub2.setVersion("1.0.0"); - publishes[0] = pub1; - publishes[1] = pub2; - streams.setPublishes(publishes); - - Subscribes[] subscribes = new Subscribes[2]; - Subscribes sub1 = new Subscribes(); - sub1.setConfig_key("TEST-SUB-MR"); - sub1.setFormat("dataformat_Hello_World_PM"); - sub1.setRoute("/TEST_HELLO_WORLD_SUB_MR"); - sub1.setType("message_router"); - sub1.setVersion("1.0.0"); - - Subscribes sub2 = new Subscribes(); - sub2.setConfig_key("TEST-SUB-DR"); - sub2.setFormat("dataformat_Hello_World_PM"); - sub2.setRoute("/TEST-HELLO-WORLD-SUB-DR"); - sub2.setType("data_router"); - sub2.setVersion("1.0.0"); - subscribes[0] = sub1; - subscribes[1] = sub2; - streams.setSubscribes(subscribes); - - manualSpec.setStreams(streams); - - Parameters[] parameters = new Parameters[1]; - Parameters par1 = new Parameters(); - par1.setName("testParam1"); - par1.setValue("test-param-1"); - par1.setDescription("test parameter 1"); - par1.setSourced_at_deployment(true); - par1.setDesigner_editable(true); - par1.setPolicy_editable(true); - par1.setPolicy_group("Test_Parameters"); - par1.setRequired(true); - par1.setType("string"); - parameters[0] = par1; - - manualSpec.setParameters(parameters); - - Auxilary auxilary = new Auxilary(); - HealthCheck healthcheck = new HealthCheck(); - healthcheck.setInterval("300s"); - healthcheck.setTimeout("120s"); - healthcheck.setScript("/etc/init.d/nagios status"); - healthcheck.setType("docker"); - auxilary.setHealthcheck(healthcheck); - - Volumes[] volumes = new Volumes[1]; - Volumes vol1 = new Volumes(); - Container con1 = new Container(); - con1.setBind("/opt/app/manager/config/hostname"); - Host host1 = new Host(); - host1.setPath("/etc/hostname"); - host1.setMode("ro"); - vol1.setContainer(con1); - vol1.setHost(host1); - - volumes[0] = vol1; - - auxilary.setVolumes(volumes); - - ArrayList<Object> ports = new ArrayList(); - ports.add("80:80"); - - TreeMap<String, String> dataBases = new TreeMap<>(); - dataBases.put("TestDB1", "PGaaS"); - dataBases.put("TestDB2", "PGaaS"); - auxilary.setDatabases(dataBases); - - Policy pol = new Policy(); - pol.setTrigger_type("docker"); - pol.setScript_path("/opt/app/manager/bin/reconfigure.sh"); - auxilary.setPolicy(pol); - - auxilary.setPorts(ports); - - manualSpec.setAuxilary(auxilary); - - Artifacts[] artifacts = new Artifacts[1]; - Artifacts art = new Artifacts(); - art.setType("docker image"); - art.setUri("test.tester"); - - artifacts[0] = art; - manualSpec.setArtifacts(artifacts); - return manualSpec; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/exception/DatabasesNotFoundException.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/exception/DatabasesNotFoundException.java deleted file mode 100644 index c9b2149..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/exception/DatabasesNotFoundException.java +++ /dev/null @@ -1,24 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.exception; - -public class DatabasesNotFoundException extends RuntimeException { - public DatabasesNotFoundException(String message) { super(message);} -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/GetAttribute.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/GetAttribute.java deleted file mode 100644 index 56184ff..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/GetAttribute.java +++ /dev/null @@ -1,34 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -@Getter -@Setter -@NoArgsConstructor -public class GetAttribute { - - @JsonProperty("get_attribute") - private Object attribute; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Appconfig.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Appconfig.java deleted file mode 100644 index e9157ad..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Appconfig.java +++ /dev/null @@ -1,152 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createStringInput; - -import com.fasterxml.jackson.annotation.JsonAnyGetter; -import java.util.LinkedHashMap; -import java.util.TreeMap; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.dmaap.DmaapObj; -import org.onap.blueprintgenerator.models.componentspec.CallsObj; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Parameters; -import org.onap.blueprintgenerator.models.componentspec.Publishes; -import org.onap.blueprintgenerator.models.componentspec.Subscribes; - -@Getter -@Setter -public class Appconfig { - - private CallsObj[] service_calls; - private TreeMap<String, DmaapObj> streams_publishes; - private TreeMap<String, DmaapObj> streams_subscribes; - private TreeMap<String, Object> params; - - @JsonAnyGetter - public TreeMap<String, Object> getParams() { - return params; - } - - public TreeMap<String, LinkedHashMap<String, Object>> createAppconfig( - TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec componentSpec, String override, - boolean isDmaap) { - - service_calls = new CallsObj[0]; - streams_publishes = createStreamPublishes(componentSpec, inps, isDmaap); - streams_subscribes = createStreamSubscribes(componentSpec, inps, isDmaap); - params = createParameters(componentSpec, inps, override); - - return inps; - } - - private TreeMap<String, DmaapObj> createStreamPublishes(ComponentSpec componentSpec, - TreeMap<String, LinkedHashMap<String, Object>> inps, boolean isDmaap) { - TreeMap<String, DmaapObj> streamPublishes = new TreeMap<>(); - for (Publishes publishes : componentSpec.getStreams().getPublishes()) { - String config = publishes.getConfig_key(); - DmaapObj pub = new DmaapObj(); - if (isDataRouterType(publishes.getType())) { - //in this case the data router information gets added to the params so for now leave it alone - String name = publishes.getConfig_key() + "_feed"; - pub.createOnapDmaapDRObj(inps, config, 'p', name, name, isDmaap); - } else if (isMessageRouterType(publishes.getType())) { - String name = publishes.getConfig_key() + "_topic"; - pub.createOnapDmaapMRObj(inps, config, 'p', name, name, isDmaap); - } - pub.setType(publishes.getType()); - streamPublishes.put(config, pub); - } - return streamPublishes; - } - - private TreeMap<String, DmaapObj> createStreamSubscribes(ComponentSpec componentSpec, - TreeMap<String, LinkedHashMap<String, Object>> inputs, boolean isDmaap) { - TreeMap<String, DmaapObj> streamSubscribes = new TreeMap<>(); - for (Subscribes subscribes : componentSpec.getStreams().getSubscribes()) { - String config = subscribes.getConfig_key(); - DmaapObj sub = new DmaapObj(); - if (isDataRouterType(subscribes.getType())) { - //in this case the data router information gets added to the params so for now leave it alone - String name = subscribes.getConfig_key() + "_feed"; - sub.createOnapDmaapDRObj(inputs, config, 'p', name, name, isDmaap); - } else if (isMessageRouterType(subscribes.getType())) { - String name = subscribes.getConfig_key() + "_topic"; - sub.createOnapDmaapMRObj(inputs, config, 's', name, name, isDmaap); - } - sub.setType(subscribes.getType()); - streamSubscribes.put(config, sub); - } - return streamSubscribes; - } - - private TreeMap<String, Object> createParameters(ComponentSpec componentSpec, - TreeMap<String, LinkedHashMap<String, Object>> inputs, - String override) { - TreeMap<String, Object> parameters = new TreeMap<>(); - for (Parameters params : componentSpec.getParameters()) { - String pName = params.getName(); - if (params.isSourced_at_deployment()) { - GetInput paramInput = new GetInput(); - paramInput.setBpInputName(pName); - parameters.put(pName, paramInput); - - if (!params.getValue().equals("")) { - LinkedHashMap<String, Object> input = createStringInput(params.getValue()); - inputs.put(pName, input); - } else { - LinkedHashMap<String, Object> input = new LinkedHashMap<>(); - input.put("type", "string"); - inputs.put(pName, input); - } - } else { - if ("string".equals(params.getType())) { - String val = (String) params.getValue(); - val = '"' + val + '"'; - parameters.put(pName, val); - } else { - parameters.put(pName, params.getValue()); - } - } - } - handleOverride(override, parameters, inputs); - return parameters; - } - - private void handleOverride(String override, TreeMap<String, Object> parameters, - TreeMap<String, LinkedHashMap<String, Object>> inps) { - if (override != null) { - GetInput ov = new GetInput(); - ov.setBpInputName("service_component_name_override"); - parameters.put("service_component_name_override", ov); - LinkedHashMap<String, Object> over = new LinkedHashMap<>(); - over.put("type", "string"); - over.put("default", override); - inps.put("service_component_name_override", over); - } - } - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Blueprint.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Blueprint.java deleted file mode 100644 index f2ef7aa..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Blueprint.java +++ /dev/null @@ -1,151 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.TreeMap; -import java.util.regex.Pattern; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.core.Fixes; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.dmaapbp.DmaapBlueprint; -import org.onap.blueprintgenerator.models.onapbp.OnapBlueprint; - -@Getter @Setter -@JsonInclude(JsonInclude.Include.NON_NULL) - -public class Blueprint { - - - private String tosca_definitions_version; - - private String description; - - private ArrayList<String> imports; - - private TreeMap<String, LinkedHashMap<String, Object>> inputs; - - private TreeMap<String, Node> node_templates; - - public Blueprint createBlueprint(ComponentSpec cs, String name, char bpType, String importPath, String override) { - Blueprint bp = new Blueprint(); - if(bpType == 'o') { - OnapBlueprint onap = new OnapBlueprint(); - bp = onap.createOnapBlueprint(cs, importPath, override); - bp = bp.setQuotations(bp); - } - - if(bpType == 'd') { - DmaapBlueprint dmaap = new DmaapBlueprint(); - bp = dmaap.createDmaapBlueprint(cs, importPath, override); - bp = bp.setQuotations(bp); - } - return bp; - } - - public Blueprint setQuotations(Blueprint bp) { - for(String s: bp.getInputs().keySet()) { - LinkedHashMap<String, Object> temp = bp.getInputs().get(s); - if(temp.get("type") == "string") { - String def = (String) temp.get("default"); - if(def != null){ - def = def.replaceAll("\"$", "").replaceAll("^\"", ""); - } - def = '"' + def + '"'; - temp.replace("default", def); - bp.getInputs().replace(s, temp); - } - } - - return bp; - } - - public void blueprintToYaml(String outputPath, String bluePrintName, ComponentSpec cs) { - File outputFile; - String name = bluePrintName.equals("") ? cs.getSelf().getName() : bluePrintName; - if(name.contains(".")) { - name = name.replaceAll(Pattern.quote("."), "_"); - } - if(name.contains(" ")) { - name = name.replaceAll(" ", ""); - } - String file = name + ".yaml"; - outputFile = new File(outputPath, file); - outputFile.getParentFile().mkdirs(); - try { - outputFile.createNewFile(); - } catch (IOException e) { - throw new RuntimeException(e); - } - - String version = "#blueprint_version: " + cs.getSelf().getVersion() + '\n'; - String description = "#description: " + cs.getSelf().getDescription() + '\n'; - - try(BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile, false))) { - writer.write(description); - writer.write(version); - } catch (IOException e1) { - throw new RuntimeException(e1); - } - - //read the translated blueprint into the file - ObjectMapper blueprintMapper = new ObjectMapper(new YAMLFactory().configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true)); - - try (PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outputFile, true)))) { - blueprintMapper.writeValue(out, this); - } catch (IOException e) { - throw new RuntimeException(e); - } - - try { - Fixes.fixSingleQuotes(outputFile); - } catch (IOException e) { - throw new RuntimeException(e); - } - - System.out.println("Blueprint created"); - } - - public String blueprintToString() { - String ret = ""; - - ObjectMapper blueprintMapper = new ObjectMapper(new YAMLFactory().configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true)); - try { - ret = blueprintMapper.writerWithDefaultPrettyPrinter().writeValueAsString(this); - } catch (JsonProcessingException e) { - throw new RuntimeException(e); - } - - return Fixes.applyFixes(ret); - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/BpConstants.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/BpConstants.java deleted file mode 100644 index d0d79a4..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/BpConstants.java +++ /dev/null @@ -1,43 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint; - -public final class BpConstants { - - private BpConstants() {} - - public static final String CLOUDIFY_DSL_1_3 = "cloudify_dsl_1_3"; - - public static final String CONTENERIZED_SERVICE_COMPONENT_USING_DMAAP = "dcae.nodes.ContainerizedServiceComponentUsingDmaap"; - public static final String CONTENERIZED_SERVICE_COMPONENT = "dcae.nodes.ContainerizedServiceComponent"; - public static final String FEED = "dcaegen2.nodes.Feed"; - public static final String TOPIC = "dcaegen2.nodes.Topic"; - public static final String PUBLISH_EVENTS = "dcaegen2.relationships.publish_events"; - public static final String PUBLISH_FILES = "dcaegen2.relationships.publish_files"; - public static final String SUBSCRIBE_TO_EVENTS = "dcaegen2.relationships.subscribe_to_events"; - public static final String SUBSCRIBE_TO_FILES = "dcaegen2.relationships.subscribe_to_files"; - - public static final String TOSCA_DATATYPES_ROOT = "tosca.datatypes.Root"; - public static final String TOSCA_NODES_ROOT = "tosca.nodes.Root"; - public static final String TOSCA_SIMPLE_YAML = "tosca_simple_yaml_1_0_0"; - - public static final String MEMORY_LIMIT = "128Mi"; - public static final String CPU_LIMIT = "250m"; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/ConcatObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/ConcatObj.java deleted file mode 100644 index edc257c..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/ConcatObj.java +++ /dev/null @@ -1,57 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import java.util.ArrayList; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonRawValue; - -import lombok.Getter; import lombok.Setter; -import lombok.NoArgsConstructor; - -// TODO: Auto-generated Javadoc -/** - * The Class ConcatObj. - */ -@JsonIgnoreProperties(ignoreUnknown = true) - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter -//@Builder - -/** - * Instantiates a new concat obj. - */ -@NoArgsConstructor -@JsonInclude(value=Include.NON_NULL) - -public class ConcatObj { - - /** The concat. */ - private ArrayList<Object> concat; -} - diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/GetInput.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/GetInput.java deleted file mode 100644 index 3d5ca3d..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/GetInput.java +++ /dev/null @@ -1,38 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -@Getter -@Setter -@NoArgsConstructor -@AllArgsConstructor -public class GetInput { - - @JsonProperty("get_input") - private Object bpInputName; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/GetProperty.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/GetProperty.java deleted file mode 100644 index 1f9bf1c..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/GetProperty.java +++ /dev/null @@ -1,55 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import java.util.ArrayList; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - -import lombok.Getter; import lombok.Setter; -import lombok.NoArgsConstructor; - -// TODO: Auto-generated Javadoc -/** - * The Class GetProperty. - */ -@JsonIgnoreProperties(ignoreUnknown = true) - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter -//@Builder - -/** - * Instantiates a new gets the property. - */ -@NoArgsConstructor -@JsonInclude(value=Include.NON_NULL) - -public class GetProperty { - - /** The get property. */ - private ArrayList<String> get_property; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Imports.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Imports.java deleted file mode 100644 index 7b55e17..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Imports.java +++ /dev/null @@ -1,67 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.models.blueprint; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import lombok.Getter; -import lombok.Setter; - -@Getter @Setter -@JsonInclude(value=Include.NON_NULL) -public class Imports { - /** The imports. */ - private ArrayList<String> imports; - - public static ArrayList<String> createOnapImports() { - ArrayList<String> imps = new ArrayList<>(); - imps.add("https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml"); - imps.add("plugin:k8splugin?version=3.4.2"); - imps.add("plugin:dcaepolicyplugin?version=2.4.0"); - return imps; - } - - public static ArrayList<String> createDmaapImports(){ - ArrayList<String> imps = new ArrayList<>(); - imps.add("https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml"); - imps.add("plugin:k8splugin?version=3.4.2"); - imps.add("plugin:dmaap?version=1.5.0"); - return imps; - } - - public static ArrayList<String> createImportsFromFile(String path) { - ObjectMapper importMapper = new ObjectMapper(new YAMLFactory().configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true)); - File importPath = new File(path); - try { - Imports imports = importMapper.readValue(importPath, Imports.class); - imports.getImports().removeIf(String::isBlank); - return imports.getImports(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Interfaces.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Interfaces.java deleted file mode 100644 index 435059e..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Interfaces.java +++ /dev/null @@ -1,40 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -import lombok.Getter; import lombok.Setter; - -@Getter @Setter -public class Interfaces { - private Start start; - public TreeMap<String, LinkedHashMap<String, Object>> createInterface(TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs){ - //create the start object - Start start = new Start(); - TreeMap<String, LinkedHashMap<String, Object>> retInputs = start.createOnapStart(inps, cs); - this.setStart(start); - return retInputs; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Node.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Node.java deleted file mode 100644 index ee75ce0..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Node.java +++ /dev/null @@ -1,35 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import lombok.Getter; import lombok.Setter; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.TreeMap; - -@Getter @Setter -public class Node { - private String type; - private TreeMap<String, Interfaces> interfaces; - private Properties properties; - private ArrayList<LinkedHashMap<String, String>> relationships; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java deleted file mode 100644 index 9aa5354..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Properties.java +++ /dev/null @@ -1,290 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createBooleanInput; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createIntegerInput; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createStringInput; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.USE_EXTERNAL_TLS_FIELD; - -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.TreeMap; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.tls.ExternalCertificateParametersFactory; -import org.onap.blueprintgenerator.models.blueprint.tls.ExternalTlsInfoFactory; -import org.onap.blueprintgenerator.models.blueprint.tls.TlsInfo; -import org.onap.blueprintgenerator.models.blueprint.tls.impl.ExternalTlsInfo; -import org.onap.blueprintgenerator.models.componentspec.Auxilary; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Publishes; -import org.onap.blueprintgenerator.models.componentspec.Subscribes; -import org.onap.blueprintgenerator.models.dmaapbp.DmaapStreams; - - -@Getter -@Setter -@JsonInclude(value = Include.NON_NULL) -public class Properties { - - private static final String EMPTY_VALUE = ""; - - ArrayList<DmaapStreams> streams_publishes; - ArrayList<DmaapStreams> streams_subscribes; - private Appconfig application_config; - private Auxilary docker_config; - private Object image; - private GetInput location_id; - private String service_component_type; - private TreeMap<String, Object> log_info; - private String dns_name; - private Object replicas; - private String name; - private GetInput topic_name; - private GetInput feed_name; - private TlsInfo tls_info; - private ExternalTlsInfo external_cert; - private ResourceConfig resource_config; - private GetInput always_pull_image; - private Boolean useExisting; - @JsonIgnore - private ExternalTlsInfoFactory externalCertFactory; - - public Properties() { - ExternalCertificateParametersFactory externalCertificateDataFactory = new ExternalCertificateParametersFactory(); - externalCertFactory = new ExternalTlsInfoFactory(externalCertificateDataFactory); - } - - public TreeMap<String, LinkedHashMap<String, Object>> createOnapProperties( - TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec componentSpec, String override) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; - - //set the image - GetInput image = new GetInput(); - image.setBpInputName("image"); - this.setImage(image); - retInputs.put("image", createStringInput(componentSpec.getImageUri())); - - //set the location id - GetInput location = new GetInput(); - location.setBpInputName("location_id"); - this.setLocation_id(location); - retInputs.put("location_id", createStringInput(EMPTY_VALUE)); - - //set the log info - this.setLog_info(componentSpec.getAuxilary().getLog_info()); - - //set the replicas - GetInput replica = new GetInput(); - replica.setBpInputName("replicas"); - this.setReplicas(replica); - LinkedHashMap<String, Object> rep = createIntegerInput("number of instances", 1); - retInputs.put("replicas", rep); - - //set the dns name - //this.setDns_name(cs.getSelf().getName()); - - //set the name - //this.setName(cs.getSelf().getName()); - - //set the docker config - Auxilary aux = componentSpec.getAuxilary(); -// if(aux.getPorts() != null) { -// retInputs = aux.createPorts(retInputs); -// } - this.setDocker_config(aux); - - //set the app config - Appconfig app = new Appconfig(); - retInputs = app.createAppconfig(retInputs, componentSpec, override, false); - this.setApplication_config(app); - - // set always_pull_image - this.always_pull_image = new GetInput(); - this.always_pull_image.setBpInputName("always_pull_image"); - LinkedHashMap<String, Object> inputAlwaysPullImage = createBooleanInput( - "Set to true if the image should always be pulled", - true); - retInputs.put("always_pull_image", inputAlwaysPullImage); - - //set service component type - String serviceComponentType = componentSpec.getSelfName().replace('.', '-'); - this.setService_component_type(serviceComponentType); - - //set the tls info for internal and external communication - TreeMap<String, Object> tls_info = componentSpec.getAuxilary().getTls_info(); - if (tls_info != null) { - addTlsInfo(componentSpec, retInputs); - if (tls_info.get(USE_EXTERNAL_TLS_FIELD) != null) { - retInputs.putAll(addExternalTlsInfo(componentSpec)); - } - } - - //set the reource config - ResourceConfig resource = new ResourceConfig(); - retInputs = resource.createResourceConfig(retInputs, componentSpec.getSelf().getName()); - this.setResource_config(resource); - - return retInputs; - } - - public TreeMap<String, LinkedHashMap<String, Object>> createDmaapProperties( - TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec componentSpec, String override) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; - - //set the image - GetInput image = new GetInput(); - image.setBpInputName("tag_version"); - this.setImage(image); - retInputs.put("tag_version", createStringInput(componentSpec.getImageUri())); - - //set the location id - GetInput location = new GetInput(); - location.setBpInputName("location_id"); - this.setLocation_id(location); - retInputs.put("location_id", createStringInput(EMPTY_VALUE)); - - //set the log info - this.setLog_info(componentSpec.getAuxilary().getLog_info()); - - //set service component type - String serviceComponentType = componentSpec.getSelfName().replace('.', '-'); - this.setService_component_type(serviceComponentType); - - //set the tls info for internal and external communication - TreeMap<String, Object> tls_info = componentSpec.getAuxilary().getTls_info(); - if (tls_info != null) { - addTlsInfo(componentSpec, retInputs); - if (tls_info.get(USE_EXTERNAL_TLS_FIELD) != null) { - retInputs.putAll(addExternalTlsInfo(componentSpec)); - } - } - - //set the replicas - GetInput replica = new GetInput(); - replica.setBpInputName("replicas"); - this.setReplicas(replica); - LinkedHashMap<String, Object> rep = createIntegerInput("number of instances", 1); - retInputs.put("replicas", rep); - -// //set the dns name -// this.setDns_name(cs.getSelf().getName()); - -// //set the name -// this.setName(cs.getSelf().getName()); - - //set the docker config - Auxilary aux = componentSpec.getAuxilary(); -// if(aux.getPorts() != null) { -// retInputs = aux.createPorts(retInputs); -// } - this.setDocker_config(aux); - - //set the appconfig - Appconfig app = new Appconfig(); - retInputs = app.createAppconfig(retInputs, componentSpec, override, true); - this.setApplication_config(app); - - //set the stream publishes - ArrayList<DmaapStreams> pubStreams = new ArrayList<>(); - if (componentSpec.getStreams().getPublishes() != null) { - for (Publishes publishes : componentSpec.getStreams().getPublishes()) { - if (isMessageRouterType(publishes.getType())) { - String topic = publishes.getConfig_key() + "_topic"; - DmaapStreams mrStreams = new DmaapStreams(); - retInputs = mrStreams - .createStreams(inps, componentSpec, topic, publishes.getType(), publishes.getConfig_key(), - publishes.getRoute(), 'p'); - pubStreams.add(mrStreams); - } else if (isDataRouterType(publishes.getType())) { - String feed = publishes.getConfig_key() + "_feed"; - DmaapStreams drStreams = new DmaapStreams(); - retInputs = drStreams - .createStreams(inps, componentSpec, feed, publishes.getType(), publishes.getConfig_key(), - publishes.getRoute(), 'p'); - pubStreams.add(drStreams); - } - } - } - - //set the stream subscribes - ArrayList<DmaapStreams> subStreams = new ArrayList<>(); - if (componentSpec.getStreams().getSubscribes() != null) { - for (Subscribes subscribes : componentSpec.getStreams().getSubscribes()) { - if (isMessageRouterType(subscribes.getType())) { - String topic = subscribes.getConfig_key() + "_topic"; - DmaapStreams mrStreams = new DmaapStreams(); - retInputs = mrStreams - .createStreams(inps, componentSpec, topic, subscribes.getType(), subscribes.getConfig_key(), - subscribes.getRoute(), 's'); - subStreams.add(mrStreams); - } else if (isDataRouterType(subscribes.getType())) { - String feed = subscribes.getConfig_key() + "_feed"; - DmaapStreams drStreams = new DmaapStreams(); - retInputs = drStreams - .createStreams(inps, componentSpec, feed, subscribes.getType(), subscribes.getConfig_key(), - subscribes.getRoute(), 's'); - subStreams.add(drStreams); - } - } - } - - if (!pubStreams.isEmpty()) { - this.setStreams_publishes(pubStreams); - } - if (!subStreams.isEmpty()) { - this.setStreams_subscribes(subStreams); - } - - //set the reource config - ResourceConfig resource = new ResourceConfig(); - retInputs = resource.createResourceConfig(retInputs, componentSpec.getSelf().getName()); - this.setResource_config(resource); - - return retInputs; - } - - private void addTlsInfo(ComponentSpec cs, TreeMap<String, LinkedHashMap<String, Object>> retInputs) { - TlsInfo tlsInfo = new TlsInfo(); - tlsInfo.setCertDirectory((String) cs.getAuxilary().getTls_info().get("cert_directory")); - GetInput useTLSFlag = new GetInput(); - useTLSFlag.setBpInputName("use_tls"); - tlsInfo.setUseTls(useTLSFlag); - this.setTls_info(tlsInfo); - LinkedHashMap<String, Object> useTlsFlagInput = createBooleanInput( - "flag to indicate tls enable/disable", - cs.getAuxilary().getTls_info().get("use_tls")); - retInputs.put("use_tls", useTlsFlagInput); - } - - private Map<String, LinkedHashMap<String, Object>> addExternalTlsInfo(ComponentSpec cs) { - this.setExternal_cert(externalCertFactory.createFromComponentSpec(cs)); - return externalCertFactory.createInputListFromComponentSpec(cs); - } - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/ResourceConfig.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/ResourceConfig.java deleted file mode 100644 index 3618be3..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/ResourceConfig.java +++ /dev/null @@ -1,115 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createStringInput; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.CPU_LIMIT; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.MEMORY_LIMIT; - -import java.util.LinkedHashMap; -import java.util.TreeMap; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -//TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter -@Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Builder - -/** - * Instantiates a new resource config obj. - */ -@NoArgsConstructor - -/** - * Instantiates a new resource config obj. - * - * @param limits the limits - * @param requests the requests - */ -@AllArgsConstructor - -public class ResourceConfig { - - private TreeMap<String, GetInput> limits; - private TreeMap<String, GetInput> requests; - - - /** - * Creates the resource config. - * - * @param inputs the inputs - * @param name the name - * @return the tree map - */ - public TreeMap<String, LinkedHashMap<String, Object>> createResourceConfig( - TreeMap<String, LinkedHashMap<String, Object>> inputs, String name) { - - String namePrefix = getNamePrefix(name); - - limits = createInputs(inputs, namePrefix, "limit"); - requests = createInputs(inputs, namePrefix, "request"); - - return inputs; - } - - private TreeMap<String, GetInput> createInputs(TreeMap<String, LinkedHashMap<String, Object>> inputs, - String namePrefix, - String inputType) { - - LinkedHashMap<String, Object> memoryLimit = createStringInput(MEMORY_LIMIT); - LinkedHashMap<String, Object> cpuLimit = createStringInput(CPU_LIMIT); - - final String cpuKey = namePrefix + "cpu_" + inputType; - final String memoryKey = namePrefix + "memory_" + inputType; - TreeMap<String, GetInput> inps = new TreeMap<>(); - - insertInput("cpu", cpuKey, inps); - insertInput("memory", memoryKey, inps); - - inputs.put(cpuKey, cpuLimit); - inputs.put(memoryKey, memoryLimit); - - return inps; - } - - private void insertInput(String type, String name, TreeMap<String, GetInput> inputs) { - GetInput input = new GetInput(); - input.setBpInputName(name); - inputs.put(type, input); - } - - private String getNamePrefix(String name) { - return (name == null || name.isEmpty()) ? "" : name + "_"; - } -} - diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Start.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Start.java deleted file mode 100644 index 0b03777..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/Start.java +++ /dev/null @@ -1,47 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - -import lombok.Getter; import lombok.Setter; -@Getter @Setter -@JsonInclude(value=Include.NON_NULL) -public class Start { - private StartInputs inputs; - private LinkedHashMap<String, Object> envs; - - public TreeMap<String, LinkedHashMap<String, Object>> createOnapStart(TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs) { - - //create the start inputs - StartInputs inputs = new StartInputs(); - inputs.createOnapStartInputs(inps, cs); - this.setInputs(inputs); - - return inps; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/StartInputs.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/StartInputs.java deleted file mode 100644 index a0cfe20..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/StartInputs.java +++ /dev/null @@ -1,118 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.models.blueprint; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.core.PgaasNodeBuilder; -import org.onap.blueprintgenerator.models.componentspec.Auxilary; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - -import lombok.Getter; import lombok.Setter; - -@Getter @Setter -@JsonInclude(value=Include.NON_NULL) -public class StartInputs { - private ArrayList<String> ports; - private Object envs; - - public TreeMap<String, LinkedHashMap<String, Object>> createOnapStartInputs(TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs){ - - int count = 0; - ArrayList<String> portList = new ArrayList<>(); - Auxilary aux = cs.getAuxilary(); - - if (aux.getPorts() != null) { - - for(Object p : aux.getPorts()) { - String[] ports = p.toString().split(":"); - String internal - = String.format("concat: [\"%s:\", {get_input: external_port_%d}]" - , ports[0], count); - portList.add(internal); - - LinkedHashMap<String, Object> portType = new LinkedHashMap<>(); - portType.put("type", "string"); - portType.put("default", ports[1]); - inps.put("external_port_" + count, portType); - - count++; - } - - } - - this.setPorts(portList); -// ArrayList<String> port = new ArrayList<String>(); -// String external = ""; -// if(cs.getAuxilary().getPorts() != null) { -// for(String s: cs.getAuxilary().getPorts()) { -// //create the ports -// String portNumber = ""; -// StringBuffer buf = new StringBuffer(); -// for(int i = 0; i < s.length(); i++) { -// if(!(s.charAt(i) == ':')) { -// buf.append(s.charAt(i)); -// } -// else { -// external = s.replace(buf.toString() + ":", ""); -// break; -// } -// } -// portNumber = buf.toString(); -// String p = "concat: [" + '"' + portNumber + ":" + '"' +", {get_input: external_port }]"; -// port.add(p); -// } -// } -// this.setPorts(port); -// //add the external port input -// if(cs.getAuxilary().getPorts() != null) { -// stringType.put("type", "string"); -// stringType.put("description", "Kubernetes node port on which collector is exposed"); -// stringType.put("default", "'" + external + "'") ; -// retInputs.put("external_port", stringType); -// } - - //set the envs - LinkedHashMap<String, Object> eMap = new LinkedHashMap<>(); - if(cs.getAuxilary().getDatabases() != null){ - //set db env variables - LinkedHashMap<String, Object> envVars = PgaasNodeBuilder.getEnvVariables(cs.getAuxilary().getDatabases()); - this.setEnvs(envVars); - eMap.put("default", "&envs {}"); - } - else { - GetInput env = new GetInput(); - env.setBpInputName("envs"); - this.setEnvs(env); - eMap.put("default", "{}"); - } - inps.put("envs", eMap); - - - return inps; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/TemplateNode.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/TemplateNode.java deleted file mode 100644 index 7137cdb..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/TemplateNode.java +++ /dev/null @@ -1,69 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= -*/ - -package org.onap.blueprintgenerator.models.blueprint; - -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.models.componentspec.Auxilary; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.HealthCheck; -import org.onap.blueprintgenerator.models.onapbp.OnapNode; - -import lombok.Getter; import lombok.Setter; - - -public class TemplateNode extends OnapNode{ - -// public void createTemplateNode() { -// //dummy inputs just used for the inputs so i can reuse code -// TreeMap<String, LinkedHashMap<String, Object>> inps = new TreeMap<String, LinkedHashMap<String, Object>>(); -// -// //create a dummy componentspec to set the values later on -// ComponentSpec cs = new ComponentSpec(); -// Auxilary aux = new Auxilary(); -// HealthCheck health = new HealthCheck(); -// health.setEndpoint("/healthcheck"); -// health.setInterval("15s"); -// health.setTimeout("1s"); -// health.setType("https"); -// aux.setHealthcheck(health); -// String[] ports = new String[1]; -// ports[0] = "9999:9999"; -// aux.setPorts(ports); -// cs.setAuxilary(aux); -// -// //set the type -// this.setType("dcae.nodes.ContainerizedPlatformComponent"); -// -// //set the interface -// Interfaces inter = new Interfaces(); -// inter.createOnapInterface(inps, cs); -// TreeMap<String, Interfaces> interfaces = new TreeMap<String, Interfaces>(); -// interfaces.put("cloudify.interfaces.lifecycle", inter); -// this.setInterfaces(interfaces); -// -// -// //create the properties -// Properties props = new Properties(); -// props.createTemplateProperties(cs); -// this.setProperties(props); -// } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/dmaap/DmaapInfo.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/dmaap/DmaapInfo.java deleted file mode 100644 index 0cec284..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/dmaap/DmaapInfo.java +++ /dev/null @@ -1,105 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint.dmaap; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.GetInput; - -import java.util.LinkedHashMap; -import java.util.TreeMap; - -@Getter -@Setter -@JsonInclude(value = Include.NON_NULL) -public class DmaapInfo { - - private static final String UNDERSCORE = "_"; - - private GetInput topic_url; - private GetInput username; - private GetInput password; - private GetInput location; - private GetInput delivery_url; - private GetInput subscriber_id; - - public TreeMap<String, LinkedHashMap<String, Object>> createOnapDmaapMRInfo( - TreeMap<String, LinkedHashMap<String, Object>> inps, String config, char type) { - LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); - stringType.put("type", "string"); - - config = config.replaceAll("-", "_"); - if (type == 'p') { - config = config + "_publish_url"; - } else if (type == 's') { - config = config + "_subscribe_url"; - } - - GetInput topic = new GetInput(); - topic.setBpInputName(config); - this.setTopic_url(topic); - - inps.put(config, stringType); - - return inps; - } - - public TreeMap<String, LinkedHashMap<String, Object>> createOnapDmaapDRInfo( - TreeMap<String, LinkedHashMap<String, Object>> inps, String config, char type) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; - LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); - stringType.put("type", "string"); - - String userNameInputName = createInputName(config, "username"); - GetInput username = new GetInput(userNameInputName); - this.setUsername(username); - retInputs.put(userNameInputName, stringType); - - String passwordInputName = createInputName(config, "password"); - GetInput password = new GetInput(passwordInputName); - this.setPassword(password); - retInputs.put(passwordInputName, stringType); - - String locationInputName = createInputName(config, "location"); - GetInput location = new GetInput(locationInputName); - this.setLocation(location); - retInputs.put(locationInputName, stringType); - - String deliveryUrlInputName = createInputName(config, "delivery_url"); - GetInput deliveryUrl = new GetInput(deliveryUrlInputName); - this.setDelivery_url(deliveryUrl); - retInputs.put(deliveryUrlInputName, stringType); - - String subscriberIdInputName = createInputName(config, "subscriber_id"); - GetInput subscriberID = new GetInput(subscriberIdInputName); - this.setSubscriber_id(subscriberID); - retInputs.put(subscriberIdInputName, stringType); - - return retInputs; - } - - private String createInputName(String config, String inputName) { - return config + UNDERSCORE + inputName; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/dmaap/DmaapObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/dmaap/DmaapObj.java deleted file mode 100644 index 30f59e2..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/dmaap/DmaapObj.java +++ /dev/null @@ -1,83 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.blueprint.dmaap; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.GetInput; - -import java.util.LinkedHashMap; -import java.util.TreeMap; - -@JsonInclude(value=Include.NON_NULL) -@Getter @Setter -public class DmaapObj { - private Object dmaap_info; - private String type; - private GetInput pass; - private GetInput user; - - public TreeMap<String, LinkedHashMap<String, Object>> createOnapDmaapMRObj(TreeMap<String, LinkedHashMap<String, Object>> inps, - String config, char type, String n, String num, boolean isDmaap) { - LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); - stringType.put("type", "string"); - - //set the dmaapinfo - DmaapInfo info = new DmaapInfo(); - if(!isDmaap){ - info.createOnapDmaapMRInfo(inps, config, type); - this.setDmaap_info(info); - } - else{ - String infoType = "<<" + n + ">>"; - this.setDmaap_info(infoType); - //set username - GetInput u = new GetInput(); - u.setBpInputName(config + "_" + num +"_aaf_username"); - this.setUser(u); - inps.put(config + "_" + num +"_aaf_username", stringType); - - //set password - GetInput p = new GetInput(); - p.setBpInputName(config + "_" + num +"_aaf_password"); - this.setPass(p); - inps.put(config + "_" + num +"_aaf_password", stringType); - } - return inps; - } - public TreeMap<String, LinkedHashMap<String, Object>> createOnapDmaapDRObj(TreeMap<String, LinkedHashMap<String, Object>> inps, String config, char type, String n, String num, boolean isDmaap) { - - //set the dmaapinfo - DmaapInfo info = new DmaapInfo(); - if(!isDmaap){ - info.createOnapDmaapDRInfo(inps, config, type); - this.setDmaap_info(info); - } - else { - String infoType = "<<" + n + ">>"; - this.setDmaap_info(infoType); - } - return inps; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/pgaas/PgaasNode.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/pgaas/PgaasNode.java deleted file mode 100644 index 35f958e..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/pgaas/PgaasNode.java +++ /dev/null @@ -1,35 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models.blueprint.pgaas; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.Node; - -@Getter -@Setter -@NoArgsConstructor -public class PgaasNode extends Node { - - @JsonProperty("properties") - private PgaasNodeProperties pgaasNodeProperties; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/pgaas/PgaasNodeProperties.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/pgaas/PgaasNodeProperties.java deleted file mode 100644 index 709c66e..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/pgaas/PgaasNodeProperties.java +++ /dev/null @@ -1,40 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models.blueprint.pgaas; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.GetInput; - -@Getter @Setter -@NoArgsConstructor -public class PgaasNodeProperties { - - @JsonProperty("writerfqdn") - private GetInput writerfqdn; - - @JsonProperty("name") - private GetInput name; - - @JsonProperty("use_existing") - private boolean useExisting; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/policy/PolicyNode.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/policy/PolicyNode.java deleted file mode 100644 index b4740df..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/policy/PolicyNode.java +++ /dev/null @@ -1,34 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models.blueprint.policy; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.Node; - -@Getter @Setter -@NoArgsConstructor -public class PolicyNode extends Node { - - @JsonProperty("properties") - private PolicyNodeProperties policyNodeProperties; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/policy/PolicyNodeProperties.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/policy/PolicyNodeProperties.java deleted file mode 100644 index 6d23b23..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/policy/PolicyNodeProperties.java +++ /dev/null @@ -1,37 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models.blueprint.policy; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.GetInput; - -@Getter @Setter -@NoArgsConstructor -public class PolicyNodeProperties { - - @JsonProperty("policy_id") - private GetInput policyId; - - @JsonProperty("policy_model_id") - private String policyModelId; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalCertificateParametersFactory.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalCertificateParametersFactory.java deleted file mode 100644 index 546a809..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalCertificateParametersFactory.java +++ /dev/null @@ -1,74 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint.tls; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createInputValue; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.COMMON_NAME_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_COMMON_NAME; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_SANS; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.SANS_FIELD; - -import java.util.LinkedHashMap; -import java.util.Map; -import org.onap.blueprintgenerator.models.blueprint.tls.api.ExternalCertificateDataFactory; -import org.onap.blueprintgenerator.models.blueprint.tls.impl.ExternalCertificateParameters; - -/** - * Factory class for providing parameters of ExternalCertificate. Allow to get ExternalCertificateParameters Object and - * input list - */ -public class ExternalCertificateParametersFactory extends ExternalCertificateDataFactory { - - /** - * Create ExternalCertificateParameters Object - * - * @return ExternalCertificateParameters - */ - public ExternalCertificateParameters create() { - ExternalCertificateParameters externalCertificateParameters = new ExternalCertificateParameters(); - externalCertificateParameters.setCommonName(createPrefixedGetInput(COMMON_NAME_FIELD)); - externalCertificateParameters.setSans(createPrefixedGetInput(SANS_FIELD)); - return externalCertificateParameters; - } - - /** - * Create input list for ExternalCertificateParameters - * - * @return Input list - */ - public Map<String, LinkedHashMap<String, Object>> createInputList() { - Map<String, LinkedHashMap<String, Object>> retInputs = new LinkedHashMap<>(); - - LinkedHashMap<String, Object> commonNameInputMap = createInputValue("string", - "Common name which should be present in certificate.", - DEFAULT_COMMON_NAME); - retInputs.put(addPrefix(COMMON_NAME_FIELD), commonNameInputMap); - - LinkedHashMap<String, Object> sansInputMap = createInputValue("string", - "\"List of Subject Alternative Names (SANs) which should be present in certificate. " + - "Delimiter - : Should contain common_name value and other FQDNs under which given " + - "component is accessible.\"", - DEFAULT_SANS); - retInputs.put(addPrefix(SANS_FIELD), sansInputMap); - - return retInputs; - } - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalTlsInfoFactory.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalTlsInfoFactory.java deleted file mode 100644 index e954afc..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/ExternalTlsInfoFactory.java +++ /dev/null @@ -1,102 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint.tls; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.createInputValue; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.CA_NAME_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.CERT_DIRECTORY_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.CERT_TYPE_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_CA; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.DEFAULT_CERT_TYPE; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.USE_EXTERNAL_TLS_FIELD; - -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.TreeMap; -import org.onap.blueprintgenerator.models.blueprint.tls.api.ExternalCertificateDataFactory; -import org.onap.blueprintgenerator.models.blueprint.tls.impl.ExternalTlsInfo; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -/** - * Factory class for providing ExternalTlsInfo data. Allow to get ExternalTlsInfo Object and Inputs list. - */ -public class ExternalTlsInfoFactory extends ExternalCertificateDataFactory { - - private ExternalCertificateParametersFactory externalCertificateParametersFactory; - - /** - * Constructor for ExternalTlsInfoFactory - * - * @param externalCertificateDataFactory Factory providing external certificate parameters. - */ - public ExternalTlsInfoFactory(ExternalCertificateParametersFactory externalCertificateDataFactory) { - this.externalCertificateParametersFactory = externalCertificateDataFactory; - } - - /** - * Create ExternalTlsInfo from ComponentSpec Object - * - * @param cs ComponentSpec Object - * @return ExternalTlsInfo Object - */ - public ExternalTlsInfo createFromComponentSpec(ComponentSpec cs) { - ExternalTlsInfo externalTlsInfoBp = new ExternalTlsInfo(); - TreeMap<String, Object> tlsInfoCs = cs.getAuxilary().getTls_info(); - - externalTlsInfoBp.setExternalCertDirectory((String) tlsInfoCs.get(CERT_DIRECTORY_FIELD)); - externalTlsInfoBp.setUseExternalTls(createPrefixedGetInput(USE_EXTERNAL_TLS_FIELD)); - externalTlsInfoBp.setCaName(createPrefixedGetInput(CA_NAME_FIELD)); - externalTlsInfoBp.setCertType(createPrefixedGetInput(CERT_TYPE_FIELD)); - externalTlsInfoBp.setExternalCertificateParameters(externalCertificateParametersFactory.create()); - - return externalTlsInfoBp; - } - - /** - * Create input list from ComponentSpec Object - * - * @param cs ComponentSpec Object - * @return Input list - */ - public Map<String, LinkedHashMap<String, Object>> createInputListFromComponentSpec(ComponentSpec cs) { - Map<String, LinkedHashMap<String, Object>> retInputs = new HashMap<>(); - - Map<String, Object> externalTlsInfoCs = cs.getAuxilary().getTls_info(); - LinkedHashMap<String, Object> useTlsFlagInput = createInputValue("boolean", - "Flag to indicate external tls enable/disable.", - externalTlsInfoCs.get(USE_EXTERNAL_TLS_FIELD)); - retInputs.put(addPrefix(USE_EXTERNAL_TLS_FIELD), useTlsFlagInput); - - LinkedHashMap<String, Object> caNameInputMap = createInputValue("string", - "Name of Certificate Authority configured on CertService side.", - DEFAULT_CA); - retInputs.put(addPrefix(CA_NAME_FIELD), caNameInputMap); - - LinkedHashMap<String, Object> certTypeInputMap = createInputValue("string", - "Format of provided certificates", - DEFAULT_CERT_TYPE); - retInputs.put(addPrefix(CERT_TYPE_FIELD), certTypeInputMap); - - retInputs.putAll(externalCertificateParametersFactory.createInputList()); - return retInputs; - } - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/TlsConstants.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/TlsConstants.java deleted file mode 100644 index cdbfd32..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/TlsConstants.java +++ /dev/null @@ -1,38 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint.tls; - -public class TlsConstants { - - public static final String EXTERNAL_CERT_DIRECTORY_FIELD = "external_cert_directory"; - public static final String CERT_DIRECTORY_FIELD = "cert_directory"; - public static final String INPUT_PREFIX = "external_cert_"; - public static final String USE_EXTERNAL_TLS_FIELD = "use_external_tls"; - public static final String CA_NAME_FIELD = "ca_name"; - public static final String EXTERNAL_CERTIFICATE_PARAMETERS_FIELD = "external_certificate_parameters"; - public static final String COMMON_NAME_FIELD = "common_name"; - public static final String SANS_FIELD = "sans"; - public static final String CERT_TYPE_FIELD = "cert_type"; - - public static final String DEFAULT_CA = "RA"; - public static final Object DEFAULT_CERT_TYPE = "P12"; - public static final String DEFAULT_COMMON_NAME = "sample.onap.org"; - public static final String DEFAULT_SANS = "sample.onap.org:component.sample.onap.org"; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/TlsInfo.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/TlsInfo.java deleted file mode 100644 index 027f996..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/TlsInfo.java +++ /dev/null @@ -1,39 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models.blueprint.tls; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.GetInput; - -@Getter -@Setter -@NoArgsConstructor -public class TlsInfo { - - @JsonProperty("cert_directory") - private String certDirectory; - - @JsonProperty("use_tls") - private GetInput useTls; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/api/ExternalCertificateDataFactory.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/api/ExternalCertificateDataFactory.java deleted file mode 100644 index 21b20e4..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/api/ExternalCertificateDataFactory.java +++ /dev/null @@ -1,37 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint.tls.api; - -import org.onap.blueprintgenerator.models.blueprint.GetInput; - - -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.INPUT_PREFIX; - -public abstract class ExternalCertificateDataFactory { - - protected static GetInput createPrefixedGetInput(String fieldName) { - return new GetInput(addPrefix(fieldName)); - } - - protected static String addPrefix(String fieldName) { - return INPUT_PREFIX + fieldName; - } - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/impl/ExternalCertificateParameters.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/impl/ExternalCertificateParameters.java deleted file mode 100644 index e3ccca1..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/impl/ExternalCertificateParameters.java +++ /dev/null @@ -1,43 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint.tls.impl; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.GetInput; - -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.COMMON_NAME_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.SANS_FIELD; - - -@Getter -@Setter -@NoArgsConstructor -public class ExternalCertificateParameters { - - @JsonProperty(COMMON_NAME_FIELD) - private GetInput commonName; - - @JsonProperty(SANS_FIELD) - private GetInput sans; - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/impl/ExternalTlsInfo.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/impl/ExternalTlsInfo.java deleted file mode 100644 index 588dbb5..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/blueprint/tls/impl/ExternalTlsInfo.java +++ /dev/null @@ -1,54 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint.tls.impl; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.models.blueprint.GetInput; - -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.CA_NAME_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.CERT_TYPE_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.EXTERNAL_CERTIFICATE_PARAMETERS_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.EXTERNAL_CERT_DIRECTORY_FIELD; -import static org.onap.blueprintgenerator.models.blueprint.tls.TlsConstants.USE_EXTERNAL_TLS_FIELD; - -@Getter -@Setter -@NoArgsConstructor -public class ExternalTlsInfo { - - @JsonProperty(EXTERNAL_CERT_DIRECTORY_FIELD) - private String externalCertDirectory; - - @JsonProperty(USE_EXTERNAL_TLS_FIELD) - private GetInput useExternalTls; - - @JsonProperty(CA_NAME_FIELD) - private GetInput caName; - - @JsonProperty(CERT_TYPE_FIELD) - private GetInput certType; - - @JsonProperty(EXTERNAL_CERTIFICATE_PARAMETERS_FIELD) - private ExternalCertificateParameters externalCertificateParameters; - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Artifacts.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Artifacts.java deleted file mode 100644 index 198dc19..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Artifacts.java +++ /dev/null @@ -1,63 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - - -/** - * Instantiates a new artifacts. - */ -@NoArgsConstructor - -/** - * Instantiates a new artifacts. - * - * @param type the type - * @param uri the uri - */ - -@JsonInclude(JsonInclude.Include.NON_NULL) -@EqualsAndHashCode -//Called in Component Spec Object -public class Artifacts { - - /** The type. */ - private String type; - - /** The uri. */ - private String uri; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Auxilary.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Auxilary.java deleted file mode 100644 index 58e1e0c..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Auxilary.java +++ /dev/null @@ -1,127 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Modifications Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.util.ArrayList; -import java.util.TreeMap; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - - -/** - * Instantiates a new auxilary. - */ -@NoArgsConstructor - -/** - * Instantiates a new auxilary. - * - * @param healthcheck the healthcheck - * @param volumes the volumes - * @param policy the policy - * @param ports the ports - * @param reconfigs the reconfigs - * @param databases the databases - */ - -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -//Called in component Spec Object -public class Auxilary { - - /** The healthcheck. */ - private HealthCheck healthcheck; - - /**log-directory**/ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private TreeMap<String, Object> log_info; - - /**tls-info**/ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private TreeMap<String, Object> tls_info; - - /** The volumes. */ - private Volumes[] volumes; - - /** The policy. */ - private Policy policy; - - /** The ports. */ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private ArrayList<Object> ports; - - /** The reconfigs. */ - private ReconfigsObj reconfigs; - - /** The databases. */ - @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) - private TreeMap<String, String> databases; - - -// public TreeMap<String, LinkedHashMap<String, Object>> createPorts(TreeMap<String, LinkedHashMap<String, Object>> inps) { -// TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; -// LinkedHashMap<String, Object> portType = new LinkedHashMap(); -// portType.put("type", "string"); -// -// ArrayList<Object> ports = new ArrayList(); -// String external = ""; -// boolean foundPort = false; -// for(Object o: this.getPorts()) { -// String internal = ""; -// String p = o.toString(); -// for(int i = 0; i < p.length(); i++) { -// if(p.charAt(i) == ':') { -// internal = '"' + internal + '"'; -// internal = "concat: ['" + internal + "', {get_input: external_port}]"; -// ports.add(internal); -// } -// if(p.charAt(i) == ':' && !foundPort) { -// external = p.substring(i); -// portType.put("default", external); -// retInputs.put("external_port", portType); -// -// } -// internal = internal + p.charAt(i); -// -// } -// } -// -// this.setPorts(ports); -// return retInputs; -// } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/CallsObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/CallsObj.java deleted file mode 100644 index d130632..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/CallsObj.java +++ /dev/null @@ -1,45 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - - -// TODO: Auto-generated Javadoc -/** - * The Class CallsObj. - */ -@JsonInclude(value=Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -//called from service obj -public class CallsObj { - - /** The config key. */ - private String config_key; - - /** The request. */ - private RequestResponseObj request; - - /** The response. */ - private RequestResponseObj response; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ComponentSpec.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ComponentSpec.java deleted file mode 100644 index 0cd2b72..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ComponentSpec.java +++ /dev/null @@ -1,166 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - -import java.io.File; -import java.io.IOException; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.ObjectMapper; - -import lombok.Getter; -import lombok.Setter; -import lombok.NoArgsConstructor; -import org.onap.blueprintgenerator.models.componentspec.policy_info.PolicyInfo; - -// TODO: Auto-generated Javadoc - -/** - * The Class ComponentSpec. - */ -@JsonIgnoreProperties(ignoreUnknown = true) - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter -@Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - -/** - * Instantiates a new component spec. - */ -@NoArgsConstructor - -/** - * Instantiates a new component spec. - * - * @param self the self - * @param services the services - * @param streams the streams - * @param parameters the parameters - * @param auxilary the auxilary - * @param artifacts the artifacts - */ - -@JsonInclude(value = Include.NON_NULL) -//main object that the component spec file is written in -public class ComponentSpec { - - /** - * The self. - */ - private Self self; - - /** - * The services. - */ - private Services services; - - /** - * The streams. - */ - private Streams streams; - - /** - * The parameters. - */ - private Parameters[] parameters; - - /** - * The auxilary. - */ - private Auxilary auxilary; - - @JsonProperty("policy_info") - private PolicyInfo policyInfo; - - /** - * The artifacts. - */ - private Artifacts[] artifacts; - - /** - * Creates the component spec from file. - * - * @param path the path - */ - public void createComponentSpecFromFile(String path) { - ObjectMapper componentMapper = new ObjectMapper(); - File specPathFile = new File(path); - ComponentSpec cs = new ComponentSpec(); - - try { - cs = componentMapper.readValue(specPathFile, ComponentSpec.class); - } catch (IOException e) { - throw new RuntimeException(e); - } - - //set all the pieces of the component spec - this.setSelf(cs.getSelf()); - this.setArtifacts(cs.getArtifacts()); - this.setAuxilary(cs.getAuxilary()); - this.setParameters(cs.getParameters()); - this.setServices(cs.getServices()); - this.setStreams(cs.getStreams()); - this.setPolicyInfo(cs.getPolicyInfo()); - } - - - /** - * Creates the component spec from string. - * - * @param specString the spec string - */ - public void createComponentSpecFromString(String specString) { - ObjectMapper componentMapper = new ObjectMapper(); - ComponentSpec cs = new ComponentSpec(); - try { - cs = componentMapper.readValue(specString, ComponentSpec.class); - } catch (IOException e) { - throw new RuntimeException(e); - } - - //set all the pieces of the component spec - this.setSelf(cs.getSelf()); - this.setArtifacts(cs.getArtifacts()); - this.setAuxilary(cs.getAuxilary()); - this.setParameters(cs.getParameters()); - this.setServices(cs.getServices()); - this.setStreams(cs.getStreams()); - } - - public String getImageUri() { - return artifacts[0].getUri(); - } - - public String getSelfName() { - return this.self.getName(); - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ConstraintsObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ConstraintsObj.java deleted file mode 100644 index 785df35..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ConstraintsObj.java +++ /dev/null @@ -1,62 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - -// TODO: Auto-generated Javadoc -/** - * The Class ConstraintsObj. - */ -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonInclude(value=Include.NON_NULL) - -public class ConstraintsObj { - - /** The equal. */ - private Object equal; - - /** The greater than. */ - private int greater_than; - - /** The greater or equal. */ - private int greater_or_equal; - - /** The less than. */ - private int less_than; - - /** The less or equal. */ - private int less_or_equal; - - /** The valid values. */ - private Object[] valid_values; - - /** The length. */ - private int length; - - /** The min length. */ - private int min_length; - - /** The max length. */ - private int max_length; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Container.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Container.java deleted file mode 100644 index cbe02dc..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Container.java +++ /dev/null @@ -1,60 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new container. - */ -@NoArgsConstructor - -/** - * Instantiates a new container. - * - * @param bind the bind - * @param mode the mode - */ - -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -public class Container { - - /** The bind. */ - private String bind; - - /** The mode. */ - private String mode; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/EntrySchemaObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/EntrySchemaObj.java deleted file mode 100644 index ef33aaf..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/EntrySchemaObj.java +++ /dev/null @@ -1,82 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/** - * The Class EntrySchemaObj. - */ -@JsonIgnoreProperties(ignoreUnknown = true) - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new entry schema obj. - */ -@NoArgsConstructor - -/** - * Instantiates a new entry schema obj. - * - * @param name the name - * @param description the description - * @param type the type - * @param value the value - * @param entry_schema the entry schema - * @param required the required - */ - -@JsonInclude(value=Include.NON_NULL) -//called from policy schema obj -public class EntrySchemaObj { - - /** The name. */ - private String name; - - /** The description. */ - private String description; - - /** The type. */ - private String type; - - /** The value. */ - private String value; - - /** The entry schema. */ - private EntrySchemaObj[] entry_schema; - - /** The required. */ - private boolean required; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/HealthCheck.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/HealthCheck.java deleted file mode 100644 index 76e1036..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/HealthCheck.java +++ /dev/null @@ -1,72 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new health check. - */ -@NoArgsConstructor - -/** - * Instantiates a new health check. - * - * @param interval the interval - * @param timeout the timeout - * @param script the script - * @param type the type - */ - -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -//Called in Auxillary Object -public class HealthCheck { - - /** The interval. */ - private String interval; - - /** The timeout. */ - private String timeout; - - /** The script. */ - private String script; - - /** The type. */ - private String type; - - private String endpoint; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Host.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Host.java deleted file mode 100644 index f178c94..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Host.java +++ /dev/null @@ -1,56 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/** - * Instantiates a new host. - */ -@NoArgsConstructor - -/** - * Instantiates a new host. - * - * @param path the path - * @param mode the mode - */ -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -public class Host{ - - /** The path. */ - private String path; - - /** The mode. */ - private String mode; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Parameters.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Parameters.java deleted file mode 100644 index eb95202..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Parameters.java +++ /dev/null @@ -1,106 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/** - * The Class Parameters. - */ -@JsonIgnoreProperties(ignoreUnknown = true) - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new parameters. - */ -@NoArgsConstructor - -/** - * Instantiates a new parameters. - * - * @param name the name - * @param value the value - * @param description the description - * @param sourced_at_deployment the sourced at deployment - * @param designer_editable the designer editable - * @param policy_editable the policy editable - * @param required the required - * @param type the type - * @param policy_group the policy group - * @param policy_schema the policy schema - * @param entry_schema the entry schema - * @param constraints the constraints - */ -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -//Called in component Spec Object -public class Parameters { - - /** The name. */ - private String name; - - /** The value. */ - private Object value; - - /** The description. */ - private String description; - - /** The sourced at deployment. */ - private boolean sourced_at_deployment; - - /** The designer editable. */ - private boolean designer_editable; - - /** The policy editable. */ - private boolean policy_editable; - - /** The required. */ - private boolean required; - - /** The type. */ - private String type; - - /** The policy group. */ - private String policy_group; - - /** The policy schema. */ - private PolicySchemaObj[] policy_schema; - - /** The entry schema. */ - private EntrySchemaObj[] entry_schema; - - /** The constraints. */ - private ConstraintsObj[] constraints; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Policy.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Policy.java deleted file mode 100644 index d295ca4..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Policy.java +++ /dev/null @@ -1,62 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - -/** - * Instantiates a new policy. - */ -@NoArgsConstructor - -/** - * Instantiates a new policy. - * - * @param trigger_type the trigger type - * @param script_path the script path - */ -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -//called in auxilary -public class Policy { - - /** The trigger type. */ - private String trigger_type; - - /** The script path. */ - private String script_path; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/PolicySchemaObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/PolicySchemaObj.java deleted file mode 100644 index aa38271..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/PolicySchemaObj.java +++ /dev/null @@ -1,86 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/** - * The Class PolicySchemaObj. - */ -@JsonIgnoreProperties(ignoreUnknown = true) - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - -/** - * Instantiates a new policy schema obj. - */ -@NoArgsConstructor - -/** - * Instantiates a new policy schema obj. - * - * @param name the name - * @param description the description - * @param type the type - * @param value the value - * @param entry_schema the entry schema - * @param required the required - * @param constraints the constraints - */ -@JsonInclude(value=Include.NON_NULL) -//called from parameters obj -public class PolicySchemaObj { - - /** The name. */ - private String name; - - /** The description. */ - private String description; - - /** The type. */ - private String type; - - /** The value. */ - private String value; - - /** The entry schema. */ - private EntrySchemaObj[] entry_schema; - - /** The required. */ - private boolean required; - - /** The constraints. */ - private ConstraintsObj[] constraints; - } diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ProvidesObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ProvidesObj.java deleted file mode 100644 index 9ad24c3..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ProvidesObj.java +++ /dev/null @@ -1,63 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - -/** - * Instantiates a new provides obj. - */ -@NoArgsConstructor - -/** - * Instantiates a new provides obj. - * - * @param route the route - * @param request the request - * @param response the response - */ -//called from service obj -public class ProvidesObj { - - /** The route. */ - private String route; - - /** The request. */ - private RequestResponseObj request; - - /** The response. */ - private RequestResponseObj response; - - private String verb; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Publishes.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Publishes.java deleted file mode 100644 index 4f46313..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Publishes.java +++ /dev/null @@ -1,73 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - -/** - * Instantiates a new publishes. - */ -@NoArgsConstructor - -/** - * Instantiates a new publishes. - * - * @param config_key the config key - * @param format the format - * @param type the type - * @param version the version - */ -@JsonInclude(value=Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -@EqualsAndHashCode -//Called in Streams Object -public class Publishes { - - /** The config key. */ - private String config_key; - - /** The format. */ - private String format; - - /** The route. */ - private String route; - /** The type. */ - private String type; - - /** The version. */ - private String version; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ReconfigsObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ReconfigsObj.java deleted file mode 100644 index 6d78805..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/ReconfigsObj.java +++ /dev/null @@ -1,60 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new reconfigs obj. - */ -@NoArgsConstructor - -/** - * Instantiates a new reconfigs obj. - * - * @param dti the dti - * @param policy the policy - */ -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -public class ReconfigsObj { - - /** The dti. */ - private String dti; - - /** The policy. */ - private String policy; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/RequestResponseObj.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/RequestResponseObj.java deleted file mode 100644 index 7ca1830..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/RequestResponseObj.java +++ /dev/null @@ -1,43 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - - -// TODO: Auto-generated Javadoc -/** - * The Class RequestResponseObj. - */ -@JsonInclude(value=Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -//called in calls obj -public class RequestResponseObj { - - /** The format. */ - private String format; - - /** The version. */ - private String version; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Self.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Self.java deleted file mode 100644 index 8b5f35e..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Self.java +++ /dev/null @@ -1,70 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new self. - */ -@NoArgsConstructor - -/** - * Instantiates a new self. - * - * @param component_type the component type - * @param description the description - * @param name the name - * @param version the version - */ -@JsonInclude(value=Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -@EqualsAndHashCode -//called in Component Spec object -public class Self { - - /** The component type. */ - private String component_type; - - /** The description. */ - private String description; - - /** The name. */ - private String name; - - /** The version. */ - private String version; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Services.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Services.java deleted file mode 100644 index 772d859..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Services.java +++ /dev/null @@ -1,61 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new services. - */ -@NoArgsConstructor - -/** - * Instantiates a new services. - * - * @param calls the calls - * @param provides the provides - */ -@JsonInclude(value=Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -//called in component spec object -public class Services { - - /** The calls. */ - private CallsObj[] calls; - - /** The provides. */ - private ProvidesObj[] provides; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Streams.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Streams.java deleted file mode 100644 index 500f32d..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Streams.java +++ /dev/null @@ -1,63 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new streams. - */ -@NoArgsConstructor - -/** - * Instantiates a new streams. - * - * @param publishes the publishes - * @param subscribes the subscribes - */ -@JsonInclude(value=Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -@EqualsAndHashCode -//Called in Component Spec Object -public class Streams { - - /** The publishes. */ - private Publishes[] publishes; - - /** The subscribes. */ - private Subscribes[] subscribes; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Subscribes.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Subscribes.java deleted file mode 100644 index ec4aa41..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Subscribes.java +++ /dev/null @@ -1,77 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ - - -/** - * Instantiates a new subscribes. - */ -@NoArgsConstructor - -/** - * Instantiates a new subscribes. - * - * @param config_key the config key - * @param format the format - * @param route the route - * @param type the type - * @param version the version - */ - -@JsonInclude(value=Include.NON_NULL) -@JsonIgnoreProperties(ignoreUnknown = true) -@EqualsAndHashCode -//Called in Streams Object -public class Subscribes { - - /** The config key. */ - private String config_key; - - /** The format. */ - private String format; - - /** The route. */ - private String route; - - /** The type. */ - private String type; - - /** The version. */ - private String version; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Volumes.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Volumes.java deleted file mode 100644 index 777bdeb..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/Volumes.java +++ /dev/null @@ -1,61 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec; - - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -// TODO: Auto-generated Javadoc -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -@Getter @Setter - -/* (non-Javadoc) - * @see java.lang.Object#toString() - */ -/** - * Instantiates a new volumes. - */ -@NoArgsConstructor - -/** - * Instantiates a new volumes. - * - * @param container the container - * @param host the host - */ -@JsonInclude(value=Include.NON_NULL) -@EqualsAndHashCode -//Called in Auxillary Object -public class Volumes { - - /** The container. */ - private Container container; - - /** The host. */ - private Host host; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/policy_info/PolicyInfo.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/policy_info/PolicyInfo.java deleted file mode 100644 index da746a7..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/policy_info/PolicyInfo.java +++ /dev/null @@ -1,35 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ -package org.onap.blueprintgenerator.models.componentspec.policy_info; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import java.util.List; - -@Getter @Setter -@NoArgsConstructor -public class PolicyInfo { - - @JsonProperty("policy") - private List<TypePolicy> typePolicyList; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/policy_info/TypePolicy.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/policy_info/TypePolicy.java deleted file mode 100644 index 038c601..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/componentspec/policy_info/TypePolicy.java +++ /dev/null @@ -1,36 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.componentspec.policy_info; - -import com.fasterxml.jackson.annotation.JsonCreator; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -@Getter @Setter -@NoArgsConstructor -public class TypePolicy { - - private String node_label; - private String policy_id; - private String policy_model_id; - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java deleted file mode 100644 index 0c8f8a9..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprint.java +++ /dev/null @@ -1,126 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Modifications Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.dmaapbp; - -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.core.PgaasNodeBuilder; -import org.onap.blueprintgenerator.core.PolicyNodeBuilder; -import org.onap.blueprintgenerator.models.blueprint.Blueprint; -import org.onap.blueprintgenerator.models.blueprint.Node; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Publishes; -import org.onap.blueprintgenerator.models.componentspec.Subscribes; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.joinUnderscore; -import static org.onap.blueprintgenerator.models.blueprint.Imports.createDmaapImports; -import static org.onap.blueprintgenerator.models.blueprint.Imports.createImportsFromFile; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.CLOUDIFY_DSL_1_3; - -public class DmaapBlueprint extends Blueprint { - - private static final String TOPIC = "topic"; - private static final String FEED = "feed"; - - public Blueprint createDmaapBlueprint(ComponentSpec componentSpec, String importPath, String override) { - Blueprint blueprint = new Blueprint(); - - //set tosca definition - blueprint.setTosca_definitions_version(CLOUDIFY_DSL_1_3); - - //set the description - blueprint.setDescription(componentSpec.getSelf().getDescription()); - - //create the inpus object that will be added to over the creation of the blueprint - TreeMap<String, LinkedHashMap<String, Object>> inps = new TreeMap<>(); - - //set the imports - if (importPath.equals("")) { - blueprint.setImports(createDmaapImports()); - } else { - blueprint.setImports(createImportsFromFile(importPath)); - } - - //set and create the node templates - TreeMap<String, Node> nodeTemplate = new TreeMap(); - - //create and add the main dmaap node - DmaapNode dmaap = new DmaapNode(); - inps = dmaap.createDmaapNode(componentSpec, inps, override); - nodeTemplate.put(componentSpec.getSelf().getName(), dmaap); - - //create and add the topic/feed nodes - - //go through the streams publishes - if (componentSpec.getStreams().getPublishes() != null) { - for (Publishes publisher : componentSpec.getStreams().getPublishes()) { - if (isMessageRouterType(publisher.getType())) { - String topic = joinUnderscore(publisher.getConfig_key(), TOPIC); - DmaapNode topicNode = new DmaapNode(); - inps = topicNode.createTopicNode(componentSpec, inps, topic); - nodeTemplate.put(topic, topicNode); - } else if (isDataRouterType(publisher.getType())) { - String feed = joinUnderscore(publisher.getConfig_key(), FEED); - DmaapNode feedNode = new DmaapNode(); - inps = feedNode.createFeedNode(componentSpec, inps, feed); - nodeTemplate.put(feed, feedNode); - } - } - } - //go through the stream subscribes - if (componentSpec.getStreams().getSubscribes() != null) { - for (Subscribes subscriber : componentSpec.getStreams().getSubscribes()) { - if (isMessageRouterType(subscriber.getType())) { - String topic = joinUnderscore(subscriber.getConfig_key(), TOPIC); - DmaapNode topicNode = new DmaapNode(); - inps = topicNode.createTopicNode(componentSpec, inps, topic); - nodeTemplate.put(topic, topicNode); - } else if (isDataRouterType(subscriber.getType())) { - String feed = joinUnderscore(subscriber.getConfig_key(), FEED); - DmaapNode feedNode = new DmaapNode(); - inps = feedNode.createFeedNode(componentSpec, inps, feed); - nodeTemplate.put(feed, feedNode); - } - } - } - - //if present in component spec, populate policyNodes information in the blueprint - if (componentSpec.getPolicyInfo() != null) { - PolicyNodeBuilder.addPolicyNodesAndInputs(componentSpec, nodeTemplate, inps); - } - - //if present in component spec, populate pgaasNodes information in the blueprint - if (componentSpec.getAuxilary().getDatabases() != null) { - PgaasNodeBuilder.addPgaasNodesAndInputs(componentSpec, nodeTemplate, inps); - } - - blueprint.setNode_templates(nodeTemplate); - - blueprint.setInputs(inps); - return blueprint; - } - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java deleted file mode 100644 index 515099a..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNode.java +++ /dev/null @@ -1,185 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.dmaapbp; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.core.PgaasNodeBuilder; -import org.onap.blueprintgenerator.core.PolicyNodeBuilder; -import org.onap.blueprintgenerator.models.blueprint.GetInput; -import org.onap.blueprintgenerator.models.blueprint.Interfaces; -import org.onap.blueprintgenerator.models.blueprint.Node; -import org.onap.blueprintgenerator.models.blueprint.Properties; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Publishes; -import org.onap.blueprintgenerator.models.componentspec.Subscribes; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType; -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isMessageRouterType; - -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.CONTENERIZED_SERVICE_COMPONENT_USING_DMAAP; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.FEED; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.TOPIC; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.PUBLISH_EVENTS; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.PUBLISH_FILES; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.SUBSCRIBE_TO_EVENTS; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.SUBSCRIBE_TO_FILES; - -@JsonIgnoreProperties(ignoreUnknown = true) -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -@NoArgsConstructor -@JsonInclude(value = Include.NON_NULL) - -public class DmaapNode extends Node { - - public TreeMap<String, LinkedHashMap<String, Object>> createDmaapNode(ComponentSpec componentSpec, - TreeMap<String, LinkedHashMap<String, Object>> inps, String override) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; - - //set the type - this.setType(CONTENERIZED_SERVICE_COMPONENT_USING_DMAAP); - - //create the interface - Interfaces inter = new Interfaces(); - retInputs = inter.createInterface(retInputs, componentSpec); - TreeMap<String, Interfaces> interfaces = new TreeMap<>(); - interfaces.put("cloudify.interfaces.lifecycle", inter); - this.setInterfaces(interfaces); - - //create and set the relationships - ArrayList<LinkedHashMap<String, String>> relationships = new ArrayList<>(); - - //go through the streams publishes - if (componentSpec.getStreams().getPublishes() != null) { - for (Publishes publishes : componentSpec.getStreams().getPublishes()) { - relationships.add(createTypeAndTargetPubRelations(publishes)); - } - } - //go through the stream subscribes - if (componentSpec.getStreams().getSubscribes() != null) { - for (Subscribes subscribes : componentSpec.getStreams().getSubscribes()) { - relationships.add(createTypeAndTargetSubRelations(subscribes)); - } - } - - //add relationship for policy if exist - if (componentSpec.getPolicyInfo() != null) { - ArrayList<LinkedHashMap<String, String>> policyRelationshipsList = PolicyNodeBuilder - .getPolicyRelationships(componentSpec); - relationships.addAll(policyRelationshipsList); - } - - //add relationships and env_variables for pgaas dbs if exist - if (componentSpec.getAuxilary().getDatabases() != null) { - ArrayList<LinkedHashMap<String, String>> pgaasRelationshipsList = PgaasNodeBuilder - .getPgaasNodeRelationships(componentSpec); - relationships.addAll(pgaasRelationshipsList); - } - - this.setRelationships(relationships); - - //create and set the properties - Properties props = new Properties(); - retInputs = props.createDmaapProperties(retInputs, componentSpec, override); - this.setProperties(props); - - return retInputs; - } - - public TreeMap<String, LinkedHashMap<String, Object>> createFeedNode(ComponentSpec cs, - TreeMap<String, LinkedHashMap<String, Object>> inps, String name) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; - LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); - stringType.put("type", "string"); - - //set the type - this.setType(FEED); - - //create and set the properties - Properties props = new Properties(); - GetInput topicInput = new GetInput(); - topicInput.setBpInputName(name + "_name"); - props.setFeed_name(topicInput); - props.setUseExisting(true); - retInputs.put(name + "_name", stringType); - this.setProperties(props); - - return retInputs; - } - - public TreeMap<String, LinkedHashMap<String, Object>> createTopicNode(ComponentSpec cs, - TreeMap<String, LinkedHashMap<String, Object>> inps, String name) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; - LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); - stringType.put("type", "string"); - - //set the type - this.setType(TOPIC); - - //create and set the properties - Properties props = new Properties(); - GetInput topicInput = new GetInput(); - topicInput.setBpInputName(name + "_name"); - props.setTopic_name(topicInput); - //props.setUseExisting(true); - retInputs.put(name + "_name", stringType); - this.setProperties(props); - - return retInputs; - } - - private LinkedHashMap<String, String> createTypeAndTargetPubRelations(Publishes publishes) { - LinkedHashMap<String, String> pubRelations = new LinkedHashMap<>(); - if (isMessageRouterType(publishes.getType())) { - pubRelations.put("type", PUBLISH_EVENTS); - pubRelations.put("target", publishes.getConfig_key() + "_topic"); - } else if (isDataRouterType(publishes.getType())) { - pubRelations.put("type", PUBLISH_FILES); - pubRelations.put("target", publishes.getConfig_key() + "_feed"); - } - return pubRelations; - } - - private LinkedHashMap<String, String> createTypeAndTargetSubRelations(Subscribes subscribes) { - LinkedHashMap<String, String> subRelations = new LinkedHashMap<>(); - if (isMessageRouterType(subscribes.getType())) { - subRelations.put("type", SUBSCRIBE_TO_EVENTS); - subRelations.put("target", subscribes.getConfig_key() + "_topic"); - } else if (isDataRouterType(subscribes.getType())) { - subRelations.put("type", SUBSCRIBE_TO_FILES); - subRelations.put("target", subscribes.getConfig_key() + "_feed"); - } - return subRelations; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java deleted file mode 100644 index 162337e..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapStreams.java +++ /dev/null @@ -1,123 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.dmaapbp; - -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.models.blueprint.GetInput; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; - -import lombok.Getter; -import lombok.Setter; - -import static org.onap.blueprintgenerator.common.blueprint.BlueprintHelper.isDataRouterType; - -@Getter -@Setter -@JsonInclude(value = Include.NON_NULL) -public class DmaapStreams { - - private String name; - private GetInput location; - private GetInput client_role; - private String type; - - private GetInput username; - private GetInput password; - //private GetInput delivery_url; - - private GetInput privileged; - private GetInput decompress; - - private String route; - private String scheme; - - public TreeMap<String, LinkedHashMap<String, Object>> createStreams( - TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs, String name, String type, String key, - String route, char o) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = inps; - LinkedHashMap<String, Object> stringType = new LinkedHashMap(); - stringType.put("type", "string"); - - //set the name - this.setName(name); - - //set the type - this.setType(type); - - //set the location - GetInput location = new GetInput(); - location.setBpInputName(key + "_" + name + "_location"); - retInputs.put(key + "_" + name + "_location", stringType); - this.setLocation(location); - - //if its data router we need to add some more - if (isDataRouterType(type)) { - if ('s' == o) { - //set the username - GetInput username = new GetInput(); - username.setBpInputName(key + "_" + name + "_username"); - this.setUsername(username); - retInputs.put(key + "_" + name + "_username", stringType); - - //set the password - GetInput password = new GetInput(); - password.setBpInputName(key + "_" + name + "_password"); - this.setPassword(password); - retInputs.put(key + "_" + name + "_password", stringType); - - //set privileged - GetInput priviliged = new GetInput(); - priviliged.setBpInputName(key + "_" + name + "_priviliged"); - this.setPrivileged(priviliged); - retInputs.put(key + "_" + name + "_priviliged", stringType); - - //set decompress - GetInput decompress = new GetInput(); - decompress.setBpInputName(key + "_" + name + "_decompress"); - this.setDecompress(decompress); - retInputs.put(key + "_" + name + "_decompress", stringType); - - this.setRoute(route); - this.setScheme("https"); - } - -// //set the delivery url -// GetInput delivery = new GetInput(); -// delivery.setGet_input(name + "_delivery_url"); -// this.setDelivery_url(delivery); -// retInputs.put(name + "delivery_url", stringType); - - } else { - //set the client role - GetInput client = new GetInput(); - client.setBpInputName(key + "_" + name + "_client_role"); - this.setClient_role(client); - retInputs.put(key + "_" + name + "_client_role", stringType); - } - return retInputs; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/LogDirectory.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/LogDirectory.java deleted file mode 100644 index c9e531f..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/LogDirectory.java +++ /dev/null @@ -1,28 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.models.onapbp; - -import lombok.Getter; import lombok.Setter; - -@Getter @Setter -public class LogDirectory { - private Object log_directory; -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/OnapBlueprint.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/OnapBlueprint.java deleted file mode 100644 index d9f3c16..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/OnapBlueprint.java +++ /dev/null @@ -1,95 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Modifications Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.onapbp; - -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.CLOUDIFY_DSL_1_3; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import java.util.LinkedHashMap; -import java.util.TreeMap; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.core.PgaasNodeBuilder; -import org.onap.blueprintgenerator.core.PolicyNodeBuilder; -import org.onap.blueprintgenerator.models.blueprint.Blueprint; -import org.onap.blueprintgenerator.models.blueprint.Imports; -import org.onap.blueprintgenerator.models.blueprint.Node; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - - -@Getter -@Setter -@JsonInclude(value = Include.NON_NULL) - -public class OnapBlueprint extends Blueprint { - - public Blueprint createOnapBlueprint(ComponentSpec cs, String importPath, String override) { - - //create the inputs that will be used - TreeMap<String, LinkedHashMap<String, Object>> inputs = new TreeMap<String, LinkedHashMap<String, Object>>(); - //set the tosca definition which is the same for everything - this.setTosca_definitions_version(CLOUDIFY_DSL_1_3); - - //set the imports - if (!"".equals(importPath)) { - Imports imps = new Imports(); - this.setImports(imps.createImportsFromFile(importPath)); - } else { - Imports imps = new Imports(); - this.setImports(imps.createOnapImports()); - } - - //create the node template - TreeMap<String, Node> nodeTemplate = new TreeMap<String, Node>(); - String nodeName = cs.getSelf().getName(); - - //create the onap node that will be used - OnapNode node = new OnapNode(); - inputs = node.createOnapNode(inputs, cs, override); - nodeTemplate.put(nodeName, node); - this.setNode_templates(nodeTemplate); - - //if present in component spec, populate policyNode information in the blueprint - if (cs.getPolicyInfo() != null) { - PolicyNodeBuilder.addPolicyNodesAndInputs(cs, nodeTemplate, inputs); - } - - //if present in component spec, populate pgaasNodes information in the blueprint - if (cs.getAuxilary().getDatabases() != null) { - PgaasNodeBuilder.addPgaasNodesAndInputs(cs, nodeTemplate, inputs); - } - - //set the inputs - this.setInputs(inputs); - - Blueprint bp = new Blueprint(); - bp.setImports(this.getImports()); - bp.setInputs(this.getInputs()); - bp.setNode_templates(this.getNode_templates()); - bp.setTosca_definitions_version(this.getTosca_definitions_version()); - - return bp; - - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/OnapNode.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/OnapNode.java deleted file mode 100644 index 9daea56..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/onapbp/OnapNode.java +++ /dev/null @@ -1,94 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Modifications Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.models.onapbp; - -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.CONTENERIZED_SERVICE_COMPONENT; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonInclude.Include; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.TreeMap; -import lombok.EqualsAndHashCode; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import org.onap.blueprintgenerator.core.PgaasNodeBuilder; -import org.onap.blueprintgenerator.core.PolicyNodeBuilder; -import org.onap.blueprintgenerator.models.blueprint.Interfaces; -import org.onap.blueprintgenerator.models.blueprint.Node; -import org.onap.blueprintgenerator.models.blueprint.Properties; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -@JsonIgnoreProperties(ignoreUnknown = true) -@Getter -@Setter -@EqualsAndHashCode(callSuper = false) -@NoArgsConstructor -@JsonInclude(value = Include.NON_NULL) - -public class OnapNode extends Node { - - public TreeMap<String, LinkedHashMap<String, Object>> createOnapNode( - TreeMap<String, LinkedHashMap<String, Object>> inps, ComponentSpec cs, String override) { - TreeMap<String, LinkedHashMap<String, Object>> retInputs = new TreeMap<String, LinkedHashMap<String, Object>>(); - retInputs = inps; - - //create and set the interfaces - Interfaces inter = new Interfaces(); - retInputs = inter.createInterface(retInputs, cs); - TreeMap<String, Interfaces> interfaces = new TreeMap<String, Interfaces>(); - interfaces.put("cloudify.interfaces.lifecycle", inter); - this.setInterfaces(interfaces); - - //set the type - this.setType(CONTENERIZED_SERVICE_COMPONENT); - - //create and set the relationships - ArrayList<LinkedHashMap<String, String>> rets = new ArrayList(); - - //add relationship for policy if exist - if (cs.getPolicyInfo() != null) { - ArrayList<LinkedHashMap<String, String>> policyRelationshipsList = PolicyNodeBuilder - .getPolicyRelationships(cs); - rets.addAll(policyRelationshipsList); - } - - //add relationships and env_variables for pgaas dbs if exist - if (cs.getAuxilary().getDatabases() != null) { - ArrayList<LinkedHashMap<String, String>> pgaasRelationshipsList = PgaasNodeBuilder - .getPgaasNodeRelationships(cs); - rets.addAll(pgaasRelationshipsList); - } - - this.setRelationships(rets); - - //set the properties - Properties props = new Properties(); - retInputs = props.createOnapProperties(retInputs, cs, override); - this.setProperties(props); - - return retInputs; - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyModel.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyModel.java deleted file mode 100644 index 81bc440..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyModel.java +++ /dev/null @@ -1,136 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Modifications Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.models.policymodel; - -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.TOSCA_SIMPLE_YAML; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.core.JsonGenerationException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import com.fasterxml.jackson.dataformat.yaml.YAMLGenerator; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.TreeMap; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Parameters; - -@Getter -@Setter -@JsonInclude(JsonInclude.Include.NON_NULL) - -public class PolicyModel { - - private String tosca_definition_version; - private TreeMap<String, PolicyModelNode> node_types; - private TreeMap<String, PolicyModelNode> data_types; - - public ArrayList<PolicyModel> createPolicyModels(ComponentSpec cs, String filePath) { - ArrayList<PolicyModel> models = new ArrayList(); - Parameters[] params = cs.getParameters(); - - ArrayList<String> groups = new ArrayList<String>(); - groups = getModelGroups(params); - - for (String s : groups) { - PolicyModel model = new PolicyModel(); - model = model.createPolicyModel(s, params); - //models.add(model); - policyModelToYaml(filePath, model, s); - } - -// for(PolicyModel p: models) { -// policyModelToYaml(filePath, p); -// } - - return models; - } - - public ArrayList<String> getModelGroups(Parameters[] params) { - ArrayList<String> groups = new ArrayList(); - - for (Parameters p : params) { - if (p.isPolicy_editable()) { - if (groups.isEmpty()) { - groups.add(p.getPolicy_group()); - } else { - if (!groups.contains(p.getPolicy_group())) { - groups.add(p.getPolicy_group()); - } - } - } - } - - return groups; - } - - public PolicyModel createPolicyModel(String s, Parameters[] params) { - PolicyModel model = new PolicyModel(); - model.setTosca_definition_version(TOSCA_SIMPLE_YAML); - - PolicyModelNode node = new PolicyModelNode(); - String hasEntryScheme = node.createNodeType(s, params); - String nodeTypeName = "onap.policy." + s; - TreeMap<String, PolicyModelNode> nodeType = new TreeMap(); - nodeType.put(nodeTypeName, node); - model.setNode_types(nodeType); - - if (!hasEntryScheme.equals("")) { - PolicyModelNode data = new PolicyModelNode(); - TreeMap<String, PolicyModelNode> dataType = data.createDataTypes(hasEntryScheme, params); - model.setData_types(dataType); - } - - return model; - } - - public void policyModelToYaml(String path, PolicyModel p, String name) { - File outputFile; - String filePath = path + "/" + name + ".yml"; - File policyFile = new File(filePath); - ObjectMapper policyMapper = new ObjectMapper( - new YAMLFactory().configure(YAMLGenerator.Feature.MINIMIZE_QUOTES, true)); - outputFile = new File(path, name + ".yml"); - outputFile.getParentFile().mkdirs(); - - try { - PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(outputFile, true))); - } catch (IOException e) { - e.printStackTrace(); - } - - try { - policyMapper.writeValue(outputFile, p); - } catch (IOException e) { - e.printStackTrace(); - } - System.out.println("model " + name + " created"); - } -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyModelNode.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyModelNode.java deleted file mode 100644 index 89321de..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyModelNode.java +++ /dev/null @@ -1,147 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Modifications Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.models.policymodel; - -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.TOSCA_DATATYPES_ROOT; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.TOSCA_NODES_ROOT; - -import com.fasterxml.jackson.annotation.JsonInclude; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.TreeMap; -import lombok.Getter; -import lombok.Setter; -import org.onap.blueprintgenerator.models.componentspec.EntrySchemaObj; -import org.onap.blueprintgenerator.models.componentspec.Parameters; -import org.onap.blueprintgenerator.models.componentspec.PolicySchemaObj; - -@Getter -@Setter -@JsonInclude(JsonInclude.Include.NON_NULL) -public class PolicyModelNode { - - private String derived_from; - private TreeMap<String, PolicyProperties> properties; - - public String createNodeType(String policyName, Parameters[] params) { - String hasEntrySchema = ""; - - TreeMap<String, PolicyProperties> props = new TreeMap(); - for (Parameters p : params) { - if (p.getPolicy_group() != null) { - if (p.getPolicy_group().equals(policyName)) { - String name = p.getName(); - String type = p.getType(); - PolicyProperties polProps = new PolicyProperties(); - if (p.getPolicy_schema() != null) { - polProps.setType("map"); - HashMap<String, String> entrySchema = new HashMap(); - entrySchema.put("type", "onap.datatypes." + name); - //ArrayList<String> entrySchema = new ArrayList<String>(); - //entrySchema.add("type: onap.data." + name); - polProps.setEntry_schema(entrySchema); - hasEntrySchema = name; - props.put(name, polProps); - } else { - polProps.setType(type); - props.put(name, polProps); - } - } - } - } - - this.setDerived_from(TOSCA_DATATYPES_ROOT); - this.setProperties(props); - return hasEntrySchema; - } - - public TreeMap<String, PolicyModelNode> createDataTypes(String param, Parameters[] parameters) { - TreeMap<String, PolicyModelNode> dataType = new TreeMap<String, PolicyModelNode>(); - - PolicyModelNode node = new PolicyModelNode(); - node.setDerived_from(TOSCA_DATATYPES_ROOT); - - TreeMap<String, PolicyProperties> properties = new TreeMap(); - - Parameters par = new Parameters(); - for (Parameters p : parameters) { - if (p.getName().equals(param)) { - par = p; - break; - } - } - - for (PolicySchemaObj pol : par.getPolicy_schema()) { - if (pol.getEntry_schema() != null) { - PolicyProperties prop = new PolicyProperties(); - prop.setType("map"); - HashMap<String, String> schema = new HashMap(); - schema.put("type", "onap.datatypes." + pol.getName()); -// prop.setType("list"); -// ArrayList<String> schema = new ArrayList(); -// schema.add("type: onap.data." + pol.getName()); - prop.setEntry_schema(schema); - properties.put(pol.getName(), prop); - dataType = translateEntrySchema(dataType, pol.getEntry_schema(), pol.getName()); - } else { - PolicyProperties prop = new PolicyProperties(); - prop.setType(pol.getType()); - properties.put(pol.getName(), prop); - } - } - - node.setProperties(properties); - dataType.put("onap.datatypes." + param, node); - return dataType; - } - - private TreeMap<String, PolicyModelNode> translateEntrySchema(TreeMap<String, PolicyModelNode> dataType, - EntrySchemaObj[] entry, String name) { - TreeMap<String, PolicyModelNode> data = dataType; - PolicyModelNode node = new PolicyModelNode(); - node.setDerived_from(TOSCA_NODES_ROOT); - TreeMap<String, PolicyProperties> properties = new TreeMap<String, PolicyProperties>(); - - for (EntrySchemaObj e : entry) { - if (e.getEntry_schema() != null) { - PolicyProperties prop = new PolicyProperties(); - prop.setType("list"); - ArrayList<String> schema = new ArrayList<String>(); - schema.add("type: onap.datatypes." + e.getName()); - prop.setEntry_schema(schema); - properties.put(e.getName(), prop); - data = translateEntrySchema(data, e.getEntry_schema(), e.getName()); - node.setProperties(properties); - } else { - PolicyProperties prop = new PolicyProperties(); - prop.setType(e.getType()); - properties.put(e.getName(), prop); - node.setProperties(properties); - } - } - - dataType.put("onap.datatypes." + name, node); - return data; - } - -} diff --git a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyProperties.java b/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyProperties.java deleted file mode 100644 index 6faf78d..0000000 --- a/mod/bpgenerator/src/main/java/org/onap/blueprintgenerator/models/policymodel/PolicyProperties.java +++ /dev/null @@ -1,41 +0,0 @@ -/**============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - -*/ - -package org.onap.blueprintgenerator.models.policymodel; - -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.TreeMap; - -import org.onap.blueprintgenerator.models.blueprint.Node; - -import com.fasterxml.jackson.annotation.JsonInclude; - -import lombok.Getter; -import lombok.Setter; - -@Getter @Setter -@JsonInclude(JsonInclude.Include.NON_NULL) -public class PolicyProperties { - - private String type; - private Object entry_schema; - -} diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/core/BlueprintGeneratorTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/core/BlueprintGeneratorTest.java deleted file mode 100644 index b978701..0000000 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/core/BlueprintGeneratorTest.java +++ /dev/null @@ -1,286 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2019 AT&T Intellectual Property. All rights reserved. - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - - */ - -package org.onap.blueprintgenerator.core; - -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.TreeMap; -import org.junit.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Mockito; -import org.onap.blueprintgenerator.models.blueprint.Blueprint; -import org.onap.blueprintgenerator.models.blueprint.GetInput; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.dmaapbp.DmaapNode; -import org.onap.blueprintgenerator.models.onapbp.OnapNode; -import org.onap.blueprintgenerator.models.policymodel.PolicyModel; -import picocli.CommandLine; - -// TODO: Auto-generated Javadoc - -/** - * The Class BlueprintGeneratorTest. - */ -public class BlueprintGeneratorTest { - - /** - * Component spec test. - * - */ - @Test - public void componentSpecTest() { - ComponentSpec spec = new ComponentSpec(); - TestComponentSpec test = new TestComponentSpec(); - spec.createComponentSpecFromString(test.getComponentSpecAsString()); - ComponentSpec expectedSpec = test.getComponentSpec(); - - assertEquals(expectedSpec.getSelf(), spec.getSelf()); - assertEquals(expectedSpec.getServices(), spec.getServices()); - assertEquals(expectedSpec.getStreams(), spec.getStreams()); - assertArrayEquals(expectedSpec.getParameters(), spec.getParameters()); - assertEquals(expectedSpec.getAuxilary(), spec.getAuxilary()); - assertArrayEquals(expectedSpec.getArtifacts(), spec.getArtifacts()); - } - - /** - * Tosca definition test. - */ - @Test - public void toscaDefinitionTest() { - ComponentSpec cs = new ComponentSpec(); - TestComponentSpec test = new TestComponentSpec(); - cs.createComponentSpecFromString(test.getComponentSpecAsString()); - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", 'o', "", ""); - - assertEquals("cloudify_dsl_1_3", bp.getTosca_definitions_version()); - } - - /** - * Imports test. - */ - @Test - public void importsTest() { - ComponentSpec cs = new ComponentSpec(); - TestComponentSpec test = new TestComponentSpec(); - cs.createComponentSpecFromString(test.getComponentSpecAsString()); - - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", 'o', "", ""); - - ArrayList<String> imps = new ArrayList<>(); - imps.add("https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml"); - imps.add("plugin:k8splugin?version=3.4.2"); - imps.add("plugin:dcaepolicyplugin?version=2.4.0"); - assertEquals(imps, bp.getImports()); - } - - @Test - public void inputTest() { - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); - - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", 'o', "", ""); - - TreeMap<String, LinkedHashMap<String, Object>> inputs = new TreeMap<>(); - - //mr inputs - LinkedHashMap<String, Object> stringType = new LinkedHashMap<>(); - stringType.put("type", "string"); - - //necessary inputs - LinkedHashMap<String, Object> tag = new LinkedHashMap<>(); - tag.put("type", "string"); - String tester = "test.tester"; - tag.put("default", '"' + tester + '"'); - inputs.put("tag_version", tag); - - inputs.put("log_directory", stringType); - - LinkedHashMap<String, Object> cert = new LinkedHashMap<>(); - cert.put("type", "string"); - cert.put("default", ""); - inputs.put("cert_directory", cert); - - LinkedHashMap<String, Object> env = new LinkedHashMap<>(); - env.put("default", "{}"); - inputs.put("envs", env); - - LinkedHashMap<String, Object> port = new LinkedHashMap<>(); - port.put("type", "string"); - port.put("description", "Kubernetes node port on which collector is exposed"); - port.put("default", "99"); - inputs.put("external_port", port); - - LinkedHashMap<String, Object> rep = new LinkedHashMap<>(); - rep.put("type", "integer"); - rep.put("description", "number of instances"); - rep.put("default", 1); - inputs.put("replicas", rep); - - LinkedHashMap<String, Object> aaf = new LinkedHashMap<>(); - aaf.put("type", "boolean"); - aaf.put("default", false); - inputs.put("use_tls", aaf); - - //parmaeter input - LinkedHashMap<String, Object> test = new LinkedHashMap<>(); - test.put("type", "string"); - String testParam = "test-param-1"; - test.put("default", '"' + testParam + '"'); - inputs.put("testParam1", test); - - //mr/dr inputs - inputs.put("TEST-PUB-DR_feed0_client_role", stringType); - inputs.put("TEST-PUB-DR_feed0_password", stringType); - inputs.put("TEST-PUB-DR_feed0_username", stringType); - inputs.put("TEST-PUB-MR_topic1_aaf_password", stringType); - inputs.put("TEST-PUB-MR_topic1_aaf_username", stringType); - inputs.put("TEST-PUB-MR_topic1_client_role", stringType); - inputs.put("TEST-SUB-DR_feed1_client_role", stringType); - inputs.put("TEST-SUB-DR_feed1_password", stringType); - inputs.put("TEST-SUB-DR_feed1_username", stringType); - inputs.put("TEST-SUB-MR_topic0_client_role", stringType); - inputs.put("TEST-SUB-MR_topic2_aaf_password", stringType); - inputs.put("TEST-SUB-MR_topic2_aaf_username", stringType); - inputs.put("namespace", stringType); - inputs.put("idn_fqdn", cert); - inputs.put("feed0_name", stringType); - inputs.put("feed1_name", stringType); - inputs.put("topic0_name", stringType); - inputs.put("topic1_name", stringType); - - LinkedHashMap<String, Object> cpu = new LinkedHashMap<>(); - cpu.put("type", "string"); - cpu.put("default", "250m"); - inputs.put("test.component.spec_cpu_limit", cpu); - inputs.put("test.component.spec_cpu_request", cpu); - - LinkedHashMap<String, Object> mem = new LinkedHashMap<>(); - mem.put("type", "string"); - mem.put("default", "128Mi"); - inputs.put("test.component.spec_memory_limit", mem); - inputs.put("test.component.spec_memory_request", mem); - } - - @Test - public void interfaceTest() { - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); - - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", 'o', "", ""); - - OnapNode node = (OnapNode) bp.getNode_templates().get("test.component.spec"); - - OnapNode testNode = new OnapNode(); - - //set the type - testNode.setType("dcae.nodes.ContainerizedServiceComponent"); - - ArrayList<String> ports = new ArrayList<>(); - ports.add("concat: [\"80:\", {get_input: external_port }]"); - ports.add("concat: [\"99:\", {get_input: external_port }]"); - } - - @Test - public void parametersTest() { - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); - - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", 'o', "", ""); - - OnapNode node = (OnapNode) bp.getNode_templates().get("test.component.spec"); - - GetInput par = (GetInput) node.getProperties().getApplication_config().getParams().get("testParam1"); - assertEquals("testParam1", par.getBpInputName()); - } - - @Test - public void streamPublishesTest() { - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); - - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", 'o', "", ""); - - OnapNode node = (OnapNode) bp.getNode_templates().get("test.component.spec"); - - assertFalse(node.getProperties().getApplication_config().getStreams_publishes().isEmpty()); - } - - @Test - public void dmaapPluginTest() { - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); - - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", 'd', "", ""); - - DmaapNode dmaap = (DmaapNode) bp.getNode_templates().get("test.component.spec"); - - //check if the stream publishes and subscribes are not null to see if the dmaap plugin was invoked properly - assertNotNull(dmaap.getProperties().getStreams_publishes()); - assertNotNull(dmaap.getProperties().getStreams_subscribes()); - } - - @Test - public void testPrintInstructionsBlueprintCommand() { - BlueprintCommand objUnderTest = new BlueprintCommand(); - CommandLine cli = new CommandLine(objUnderTest); - PrintStream mockStdOutWriter = Mockito.mock(PrintStream.class); - ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class); - cli.usage(mockStdOutWriter); - verify(mockStdOutWriter, times(1)).print(any(Object.class)); - - } - - @Test - public void testPrintInstructionsPolicyCommand() { - PolicyCommand objUnderTest = new PolicyCommand(); - CommandLine cli = new CommandLine(objUnderTest); - PrintStream mockStdOutWriter = Mockito.mock(PrintStream.class); - ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class); - cli.usage(mockStdOutWriter); - verify(mockStdOutWriter, times(1)).print(any(Object.class)); - } - - @Test - public void testPolicyModels() { - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); - - PolicyModel p = new PolicyModel(); - p.createPolicyModels(cs, "TestModels"); - } -} diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/core/TlsInfoTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/core/TlsInfoTest.java deleted file mode 100644 index 8adf03d..0000000 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/core/TlsInfoTest.java +++ /dev/null @@ -1,163 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.core; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; -import org.onap.blueprintgenerator.models.blueprint.Blueprint; -import org.onap.blueprintgenerator.models.blueprint.Node; -import org.onap.blueprintgenerator.models.blueprint.tls.TlsInfo; -import org.onap.blueprintgenerator.models.blueprint.tls.impl.ExternalCertificateParameters; -import org.onap.blueprintgenerator.models.blueprint.tls.impl.ExternalTlsInfo; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -import java.util.Arrays; -import java.util.LinkedHashMap; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; - -@RunWith(Parameterized.class) -public class TlsInfoTest { - - @Parameterized.Parameter - public char bpType; - - @Parameterized.Parameters(name = "Blueprint type: {0}") - public static List<Character> data() { - return Arrays.asList('o', 'd'); - } - - @Test - public void useTlsTrueAndUseExternalTlsTrueTest(){ - Blueprint bp = createBlueprintFromFile("TestCases/TlsInfo/testComponentSpec_withTlsTrueAndExternalTlsTrue.json"); - - assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(bp, true); - assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, true); - } - - @Test - public void useTlsFalseAndUseExternalTlsFalseTest(){ - Blueprint bp = createBlueprintFromFile("TestCases/TlsInfo/testComponentSpec_withTlsFalseAndExternalTlsFalse.json"); - - assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(bp, false); - assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, false); - } - - @Test - public void useTlsTrueAndNoExternalTlsFlagTest(){ - Blueprint bp = createBlueprintFromFile("TestCases/TlsInfo/testComponentSpec_withTlsTrueAndNoExternalTls.json"); - - assertBlueprintContainsTlsInfoWithUseFlagDefault(bp, true); - assertBlueprintHasNoExternalTlsInfo(bp); - } - - @Test - public void noTlsInfo(){ - Blueprint bp = createBlueprintFromFile("TestCases/TlsInfo/testComponentSpec_withoutTlsInfo.json"); - - assertBlueprintHasNoTlsInfo(bp); - assertBlueprintHasNoExternalTlsInfo(bp); - } - - private void assertBlueprintContainsExternalTlsInfoWithUseFlagDefault(Blueprint bp, boolean useFlagDefault) { - //should create proper inputs - assertContainsInputWithDefault(bp, "external_cert_use_external_tls", useFlagDefault); - assertContainsInputWithDefault(bp, "external_cert_ca_name", "\"RA\""); - assertContainsInputWithDefault(bp, "external_cert_cert_type", "\"P12\""); - assertContainsInputWithDefault(bp, "external_cert_common_name", "\"sample.onap.org\""); - assertContainsInputWithDefault(bp, "external_cert_sans", - "\"sample.onap.org:component.sample.onap.org\""); - - Node node = bp.getNode_templates().get("test.component.spec"); - - //should create proper externalTlsInfo object in node properties - ExternalTlsInfo externalTlsInfo = node.getProperties().getExternal_cert(); - assertNotNull(externalTlsInfo); - - assertEquals("external_cert_ca_name", externalTlsInfo.getCaName().getBpInputName()); - assertEquals("external_cert_cert_type", externalTlsInfo.getCertType().getBpInputName()); - assertEquals("external_cert_use_external_tls", externalTlsInfo.getUseExternalTls().getBpInputName()); - assertEquals("/opt/app/dcae-certificate/", externalTlsInfo.getExternalCertDirectory()); - - ExternalCertificateParameters extCertParams = externalTlsInfo.getExternalCertificateParameters(); - assertNotNull(extCertParams); - - assertEquals("external_cert_common_name", extCertParams.getCommonName().getBpInputName()); - assertEquals("external_cert_sans", extCertParams.getSans().getBpInputName()); - } - - private void assertBlueprintContainsTlsInfoWithUseFlagDefault(Blueprint bp, boolean useFlagDefault) { - //shold create proper inputs - assertContainsInputWithDefault(bp, "use_tls", useFlagDefault); - - Node node = bp.getNode_templates().get("test.component.spec"); - - //should create proper tlsInfo object in node properties - TlsInfo tlsInfo = node.getProperties().getTls_info(); - assertEquals("use_tls", tlsInfo.getUseTls().getBpInputName()); - assertEquals("/opt/app/dcae-certificate/", tlsInfo.getCertDirectory()); - - } - - private void assertBlueprintHasNoExternalTlsInfo(Blueprint bp) { - //should not create inputs for external tls - assertFalse(bp.getInputs().containsKey("external_cert_use_external_tls")); - assertFalse(bp.getInputs().containsKey("external_cert_common_name")); - assertFalse(bp.getInputs().containsKey("external_cert_ca_name")); - assertFalse(bp.getInputs().containsKey("external_cert_sans")); - - Node node = bp.getNode_templates().get("test.component.spec"); - - //should not create externalTlsInfo object in node properties - ExternalTlsInfo externalTlsInfo = node.getProperties().getExternal_cert(); - assertNull(externalTlsInfo); - } - - - private void assertBlueprintHasNoTlsInfo(Blueprint bp) { - //should not create inputs for tls - assertFalse(bp.getInputs().containsKey("use_tls")); - - Node node = bp.getNode_templates().get("test.component.spec"); - - //should not create tlsInfo object in node properties - assertNull(node.getProperties().getTls_info()); - } - - private void assertContainsInputWithDefault(Blueprint bp, String inputName, Object defaultValue) { - LinkedHashMap<String, Object> input = bp.getInputs().get(inputName); - assertNotNull(input); - assertEquals(defaultValue, input.get("default")); - } - - private Blueprint createBlueprintFromFile(String path) { - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile(path); - - Blueprint bp = new Blueprint(); - bp = bp.createBlueprint(cs, "", this.bpType, "", ""); - return bp; - } -} diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/AppconfigTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/AppconfigTest.java deleted file mode 100644 index 173d230..0000000 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/AppconfigTest.java +++ /dev/null @@ -1,62 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import static org.junit.Assert.assertEquals; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.nio.charset.StandardCharsets; -import java.util.LinkedHashMap; -import java.util.TreeMap; -import java.util.stream.Collectors; -import org.junit.Test; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; - -public class AppconfigTest { - - @Test - public void createAppconfigShouldReturnExpectedResult() throws FileNotFoundException { - TreeMap<String, LinkedHashMap<String, Object>> inputs = new TreeMap<String, LinkedHashMap<String, Object>>(); - ComponentSpec cs = new ComponentSpec(); - cs.createComponentSpecFromFile("TestCases/testComponentSpec.json"); - - TreeMap<String, LinkedHashMap<String, Object>> result = new Appconfig().createAppconfig(inputs, cs, "", false); - - assertEquals(getExpectedStringFromFile(), result.toString()); - } - - private String getExpectedStringFromFile() throws FileNotFoundException { - File file = new File("TestCases/expects/createAppConfigResult.txt"); - InputStream inputStream = new FileInputStream(file); - return readFromInputStream(inputStream); - } - - private String readFromInputStream(InputStream inputStream) { - return new BufferedReader( - new InputStreamReader(inputStream, StandardCharsets.UTF_8)) - .lines() - .collect(Collectors.joining("")); - } -} diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ImportsTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ImportsTest.java deleted file mode 100644 index 1ce296a..0000000 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ImportsTest.java +++ /dev/null @@ -1,52 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia Intellectual Property. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import static org.junit.Assert.assertEquals; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import org.junit.Test; - -public class ImportsTest { - - private final List<String> expectedImports = Arrays.asList( - "https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml", - "plugin:k8splugin?version=3.4.1", - "plugin:pgaas?version=1.3.0", - "plugin:clamppolicyplugin?version=1.1.0", - "plugin:dmaap?version=1.5.0" - ); - - @Test - public void shouldReadImportsFromFile() { - ArrayList<String> importsFromFile = Imports.createImportsFromFile("TestCases/imports/imports.yaml"); - assertEquals(expectedImports, importsFromFile); - } - - @Test - public void shouldRemoveBlankImportsFromFile() { - ArrayList<String> importsFromFile = - Imports.createImportsFromFile("TestCases/imports/importsWithBlanks.yaml"); - assertEquals(expectedImports, importsFromFile); - } - -} diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ResourceConfigTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ResourceConfigTest.java deleted file mode 100644 index cf12da1..0000000 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/blueprint/ResourceConfigTest.java +++ /dev/null @@ -1,38 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.blueprint; - -import static org.junit.Assert.assertEquals; - -import java.util.LinkedHashMap; -import java.util.TreeMap; -import org.junit.Test; - -public class ResourceConfigTest { - - @Test - public void createResourceConfig() { - TreeMap<String, LinkedHashMap<String, Object>> result = new ResourceConfig() - .createResourceConfig(new TreeMap<>(), "demo"); - - String expectedResult = "{demo_cpu_limit={type=string, default=250m}, demo_cpu_request={type=string, default=250m}, demo_memory_limit={type=string, default=128Mi}, demo_memory_request={type=string, default=128Mi}}"; - assertEquals(expectedResult, result.toString()); - } -} diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprintTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprintTest.java deleted file mode 100644 index 9e31002..0000000 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapBlueprintTest.java +++ /dev/null @@ -1,245 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - - -package org.onap.blueprintgenerator.models.dmaapbp; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - - -import java.util.ArrayList; -import java.util.List; -import org.junit.Test; -import org.onap.blueprintgenerator.models.blueprint.Blueprint; -import org.onap.blueprintgenerator.models.componentspec.Artifacts; -import org.onap.blueprintgenerator.models.componentspec.Auxilary; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Parameters; -import org.onap.blueprintgenerator.models.componentspec.Publishes; -import org.onap.blueprintgenerator.models.componentspec.Self; -import org.onap.blueprintgenerator.models.componentspec.Streams; -import org.onap.blueprintgenerator.models.componentspec.Subscribes; - -public class DmaapBlueprintTest { - - private static final String MOCKED_NAME = "sample.name"; - private static final String MESSAGE_ROUTER_TYPE_1 = "message_router"; - private static final String MESSAGE_ROUTER_TYPE_2 = "message router"; - private static final String DATA_ROUTER_TYPE_1 = "data_router"; - private static final String DATA_ROUTER_TYPE_2 = "data router"; - private static final String CONFIG_KEY_1 = "Configkey1"; - private static final String CONFIG_KEY_2 = "Configkey2"; - - private static final String TOPIC_NODE_1 = CONFIG_KEY_1 + "_topic"; - private static final String TOPIC_NODE_2 = CONFIG_KEY_2 + "_topic"; - private static final String FEED_NODE_1 = CONFIG_KEY_1 + "_feed"; - private static final String FEED_NODE_2 = CONFIG_KEY_2 + "_feed"; - - private static final String SAMPLE_FORMAT = "Format"; - private static final String SAMPLE_VERSION = "1.0.0"; - private static final String SAMPLE_ROUTE = "SampleRoute"; - private static final String SAMPLE_DESCRIPTION = "sample description"; - private static final String SAMPLE_PORTS = "8080:8080"; - private static final String SAMPLE_ARTIFACT_TYPE = "test"; - private static final String SAMPLE_ARTIFACT_URI = "test_uri"; - - @Test - public void dmaapBlueprintShouldHaveNodeTemplateWithDmaapNode() { - - //given - ComponentSpec componentSpec = getMockedComponentSpec(); - DmaapBlueprint dmaapBlueprint = new DmaapBlueprint(); - - //when - Blueprint resultBlueprint = dmaapBlueprint.createDmaapBlueprint(componentSpec, "", ""); - - //then - assertTrue(resultBlueprint.getNode_templates().get(MOCKED_NAME) instanceof DmaapNode); - } - - @Test - public void nodeTemplateHasTopicNodeWhenAddMessageRouterAsPublishes() { - //given - ComponentSpec componentSpec = getMockedComponentSpec(); - Streams streams = new Streams(); - streams.setPublishes(getMessageRouterPublishes()); - streams.setSubscribes(new Subscribes[0]); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapBlueprint dmaapBlueprint = new DmaapBlueprint(); - - //when - Blueprint resultBlueprint = dmaapBlueprint.createDmaapBlueprint(componentSpec, "", ""); - - //then - assertNotNull(resultBlueprint.getNode_templates().get(TOPIC_NODE_1)); - assertNotNull(resultBlueprint.getNode_templates().get(TOPIC_NODE_2)); - - } - - @Test - public void nodeTemplateHasTopicNodeWhenAddMessageRouterAsSubscribes() { - //given - ComponentSpec componentSpec = getMockedComponentSpec(); - Streams streams = new Streams(); - streams.setPublishes(new Publishes[0]); - streams.setSubscribes(getMessageRouterSubscribes()); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapBlueprint dmaapBlueprint = new DmaapBlueprint(); - - //when - Blueprint resultBlueprint = dmaapBlueprint.createDmaapBlueprint(componentSpec, "", ""); - - //then - assertNotNull(resultBlueprint.getNode_templates().get(TOPIC_NODE_1)); - assertNotNull(resultBlueprint.getNode_templates().get(TOPIC_NODE_2)); - - } - - @Test - public void nodeTemplateHasFeedNodeWhenAddDataRouterAsPublishes() { - //given - ComponentSpec componentSpec = getMockedComponentSpec(); - Streams streams = new Streams(); - streams.setPublishes(getDataRouterPublishes()); - streams.setSubscribes(new Subscribes[0]); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapBlueprint dmaapBlueprint = new DmaapBlueprint(); - - //when - Blueprint resultBlueprint = dmaapBlueprint.createDmaapBlueprint(componentSpec, "", ""); - - //then - assertNotNull(resultBlueprint.getNode_templates().get(FEED_NODE_1)); - assertNotNull(resultBlueprint.getNode_templates().get(FEED_NODE_2)); - - } - - @Test - public void nodeTemplateHasFeedNodeWhenAddDataRouterAsSubscribes() { - //given - ComponentSpec componentSpec = getMockedComponentSpec(); - Streams streams = new Streams(); - streams.setPublishes(new Publishes[0]); - streams.setSubscribes(getDataRouterSubscribes()); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapBlueprint dmaapBlueprint = new DmaapBlueprint(); - - //when - Blueprint resultBlueprint = dmaapBlueprint.createDmaapBlueprint(componentSpec, "", ""); - - //then - assertNotNull(resultBlueprint.getNode_templates().get(FEED_NODE_1)); - assertNotNull(resultBlueprint.getNode_templates().get(FEED_NODE_2)); - - } - - private Publishes[] getMessageRouterPublishes() { - List<Publishes> publishesList = new ArrayList<>(); - - publishesList.add(createSamplePublishes(MESSAGE_ROUTER_TYPE_1, CONFIG_KEY_1)); - publishesList.add(createSamplePublishes(MESSAGE_ROUTER_TYPE_2, CONFIG_KEY_2)); - return publishesList.toArray(new Publishes[0]); - } - - private Subscribes[] getMessageRouterSubscribes() { - List<Subscribes> subscribesList = new ArrayList<>(); - - subscribesList.add(createSampleSubscribes(MESSAGE_ROUTER_TYPE_1, CONFIG_KEY_1)); - subscribesList.add(createSampleSubscribes(MESSAGE_ROUTER_TYPE_2, CONFIG_KEY_2)); - return subscribesList.toArray(new Subscribes[0]); - } - - private Publishes[] getDataRouterPublishes() { - List<Publishes> publishesList = new ArrayList<>(); - - publishesList.add(createSamplePublishes(DATA_ROUTER_TYPE_1, CONFIG_KEY_1)); - publishesList.add(createSamplePublishes(DATA_ROUTER_TYPE_2, CONFIG_KEY_2)); - return publishesList.toArray(new Publishes[0]); - } - - private Subscribes[] getDataRouterSubscribes() { - List<Subscribes> subscribesList = new ArrayList<>(); - - subscribesList.add(createSampleSubscribes(DATA_ROUTER_TYPE_1, CONFIG_KEY_1)); - subscribesList.add(createSampleSubscribes(DATA_ROUTER_TYPE_2, CONFIG_KEY_2)); - return subscribesList.toArray(new Subscribes[0]); - } - - private Publishes createSamplePublishes(String type, String key) { - Publishes publishes = new Publishes(); - - publishes.setType(type); - publishes.setConfig_key(key); - publishes.setFormat(SAMPLE_FORMAT); - publishes.setVersion(SAMPLE_VERSION); - publishes.setRoute(SAMPLE_ROUTE); - - return publishes; - } - - private Subscribes createSampleSubscribes(String type, String key) { - Subscribes subscribes = new Subscribes(); - - subscribes.setType(type); - subscribes.setConfig_key(key); - subscribes.setFormat(SAMPLE_FORMAT); - subscribes.setVersion(SAMPLE_FORMAT); - subscribes.setRoute(SAMPLE_ROUTE); - - return subscribes; - } - - private ComponentSpec getMockedComponentSpec() { - Self self = mock(Self.class); - when(self.getDescription()).thenReturn(SAMPLE_DESCRIPTION); - when(self.getName()).thenReturn(MOCKED_NAME); - - Auxilary auxilary = mock(Auxilary.class); - ArrayList<Object> ports = new ArrayList<>(); - ports.add(SAMPLE_PORTS); - when(auxilary.getPorts()).thenReturn(ports); - - Streams streams = mock(Streams.class); - when(streams.getPublishes()).thenReturn(new Publishes[0]); - when(streams.getSubscribes()).thenReturn(new Subscribes[0]); - - Artifacts artifact = new Artifacts(); - artifact.setType(SAMPLE_ARTIFACT_TYPE); - artifact.setUri(SAMPLE_ARTIFACT_URI); - - Artifacts[] arrayArtifacts = new Artifacts[10]; - arrayArtifacts[0] = artifact; - - ComponentSpec componentSpec = mock(ComponentSpec.class); - when(componentSpec.getSelf()).thenReturn(self); - when(componentSpec.getAuxilary()).thenReturn(auxilary); - when(componentSpec.getStreams()).thenReturn(streams); - when(componentSpec.getArtifacts()).thenReturn(arrayArtifacts); - when(componentSpec.getParameters()).thenReturn(new Parameters[0]); - when(componentSpec.getSelfName()).thenReturn(MOCKED_NAME); - return componentSpec; - } -} diff --git a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java b/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java deleted file mode 100644 index 83419e5..0000000 --- a/mod/bpgenerator/src/test/java/org/onap/blueprintgenerator/models/dmaapbp/DmaapNodeTest.java +++ /dev/null @@ -1,224 +0,0 @@ -/*============LICENSE_START======================================================= - org.onap.dcae - ================================================================================ - Copyright (c) 2020 Nokia. All rights reserved. - ================================================================================ - Licensed 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. - ============LICENSE_END========================================================= - */ - -package org.onap.blueprintgenerator.models.dmaapbp; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.when; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.CONTENERIZED_SERVICE_COMPONENT_USING_DMAAP; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.FEED; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.SUBSCRIBE_TO_EVENTS; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.SUBSCRIBE_TO_FILES; -import static org.onap.blueprintgenerator.models.blueprint.BpConstants.TOPIC; - -import java.util.Map; -import java.util.TreeMap; -import org.junit.Test; -import org.onap.blueprintgenerator.core.TestComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Auxilary; -import org.onap.blueprintgenerator.models.componentspec.ComponentSpec; -import org.onap.blueprintgenerator.models.componentspec.Publishes; -import org.onap.blueprintgenerator.models.componentspec.Streams; -import org.onap.blueprintgenerator.models.componentspec.Subscribes; - -public class DmaapNodeTest { - - private static final String DATA_ROUTER_TYPE = "data_router"; - private static final String MESSAGE_ROUTER_TYPE = "message_router"; - - private static final String CONFIG_KEY = "Configkey"; - - private static final String SAMPLE_FORMAT = "Format"; - private static final String SAMPLE_VERSION = "1.0.0"; - private static final String SAMPLE_ROUTE = "SampleRoute"; - private static final String TYPE = "type"; - private static final String TARGET = "target"; - - - @Test - public void dmaapNodeShouldHaveExpectedNodeType() { - - ComponentSpec mockedComponentSpec = getSpiedComponentSpecWithoutRelationships(); - - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createDmaapNode(mockedComponentSpec, new TreeMap<>(), ""); - - assertEquals(CONTENERIZED_SERVICE_COMPONENT_USING_DMAAP, dmaapNode.getType()); - } - - @Test - public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForMessageRouterPublishes() { - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - Streams streams = new Streams(); - streams.setSubscribes(new Subscribes[0]); - streams.setPublishes(createSamplePublishes(MESSAGE_ROUTER_TYPE)); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), ""); - - Map<String, String> relationship = dmaapNode.getRelationships().get(0); - - assertNotNull(relationship.get(TYPE)); - assertNotNull(relationship.get(TARGET)); - } - - @Test - public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForDataRouterPublishes() { - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - Streams streams = new Streams(); - streams.setSubscribes(new Subscribes[0]); - streams.setPublishes(createSamplePublishes(DATA_ROUTER_TYPE)); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), ""); - - Map<String, String> relationship = dmaapNode.getRelationships().get(0); - - assertNotNull(relationship.get(TYPE)); - assertNotNull(relationship.get(TARGET)); - } - - @Test - public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForMessageRouterSubscribes() { - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - Streams streams = new Streams(); - streams.setSubscribes(createSampleSubscribes(MESSAGE_ROUTER_TYPE)); - streams.setPublishes(new Publishes[0]); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), ""); - - Map<String, String> relationship = dmaapNode.getRelationships().get(0); - - assertEquals(SUBSCRIBE_TO_EVENTS, relationship.get(TYPE)); - assertNotNull(relationship.get(TARGET)); - } - - @Test - public void createdDmaapNodeShouldHaveRelationshipWithTypeAndTargetForDataRouterSubscribes() { - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - Streams streams = new Streams(); - streams.setSubscribes(createSampleSubscribes(DATA_ROUTER_TYPE)); - streams.setPublishes(new Publishes[0]); - - when(componentSpec.getStreams()).thenReturn(streams); - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createDmaapNode(componentSpec, new TreeMap<>(), ""); - - Map<String, String> relationship = dmaapNode.getRelationships().get(0); - - assertEquals(SUBSCRIBE_TO_FILES, relationship.get(TYPE)); - assertNotNull(relationship.get(TARGET)); - } - - @Test - public void createFeedNodeShouldSetFeedNodeType() { - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createFeedNode(componentSpec, new TreeMap<>(), ""); - - assertEquals(FEED, dmaapNode.getType()); - } - - @Test - public void feedNodePropertiesShouldHaveUseExistingField() { - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createFeedNode(componentSpec, new TreeMap<>() ,""); - - assertTrue(dmaapNode.getProperties().getUseExisting()); - } - - @Test - public void createTopicNodeShouldSetTopicNodeType() { - - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createTopicNode(componentSpec, new TreeMap<>(), ""); - - assertEquals(TOPIC, dmaapNode.getType()); - } - - @Test - public void topicNodePropertiesShouldNotHaveUseExistingField() { - ComponentSpec componentSpec = getSpiedComponentSpecWithoutRelationships(); - - DmaapNode dmaapNode = new DmaapNode(); - dmaapNode.createTopicNode(componentSpec, new TreeMap<>() ,""); - - assertNull(dmaapNode.getProperties().getUseExisting()); - } - - private Publishes[] createSamplePublishes(String type) { - Publishes publishes = new Publishes(); - - publishes.setType(type); - publishes.setConfig_key(CONFIG_KEY); - publishes.setFormat(SAMPLE_FORMAT); - publishes.setVersion(SAMPLE_VERSION); - publishes.setRoute(SAMPLE_ROUTE); - - return new Publishes[]{publishes}; - } - - private Subscribes[] createSampleSubscribes(String type) { - Subscribes subscribes = new Subscribes(); - - subscribes.setType(type); - subscribes.setConfig_key(CONFIG_KEY); - subscribes.setFormat(SAMPLE_FORMAT); - subscribes.setVersion(SAMPLE_VERSION); - subscribes.setRoute(SAMPLE_ROUTE); - - return new Subscribes[]{subscribes}; - } - - private ComponentSpec getSpiedComponentSpecWithoutRelationships() { - ComponentSpec baseComponentSpec = new ComponentSpec(); - baseComponentSpec.createComponentSpecFromString(new TestComponentSpec().getComponentSpecAsString()); - ComponentSpec componentSpec = spy(baseComponentSpec); - - Streams streams = new Streams(); - streams.setSubscribes(new Subscribes[0]); - streams.setPublishes(new Publishes[0]); - when(componentSpec.getStreams()).thenReturn(streams); - - Auxilary auxilary = spy(baseComponentSpec.getAuxilary()); - when(auxilary.getDatabases()).thenReturn(null); - - when(componentSpec.getAuxilary()).thenReturn(auxilary); - when(componentSpec.getPolicyInfo()).thenReturn(null); - - return componentSpec; - } -} diff --git a/mod/bpgenerator/version.properties b/mod/bpgenerator/version.properties deleted file mode 100644 index eabef1f..0000000 --- a/mod/bpgenerator/version.properties +++ /dev/null @@ -1,6 +0,0 @@ -major=1 -minor=6 -patch=0 -base_version=${major}.${minor}.${patch} -release_version=${base_version} -snapshot_version=${base_version}-SNAPSHOT |