From b5aa8147d8181948a20e2f8d6dde242c95629b7f Mon Sep 17 00:00:00 2001 From: "mukesh.paliwal" Date: Fri, 26 Feb 2021 21:16:00 +0530 Subject: mso-cnf-adapter changes for docker tag name Issue-ID: SO-3518 Signed-off-by: mukesh.paliwal Change-Id: I7a89e5b5f22cf7562b6a47dc41d4efdd1f2d647c --- Dockerfile | 30 - ca-certificates/onap-ca.crt | 31 - configs/logging/logback-spring.xml | 203 ------ packages/docker/pom.xml | 156 +++++ .../src/main/docker/docker-files/Dockerfile.so-app | 31 + .../docker/docker-files/Dockerfile.so-base-image | 19 + .../docker-files/ca-certificates/onap-ca.crt | 31 + .../configs/logging/logback-spring.xml | 199 ++++++ .../main/docker/docker-files/scripts/start-app.sh | 95 +++ .../main/docker/docker-files/scripts/wait-for.sh | 85 +++ packages/pom.xml | 34 ++ pom.xml | 333 ++++------ scripts/.gitattributes | 5 - scripts/start-app.sh | 89 --- scripts/wait-for.sh | 85 --- so-cnf-adapter-application/pom.xml | 182 ++++++ .../onap/so/adapters/cnf/MSOCnfApplication.java | 52 ++ .../onap/so/adapters/cnf/WebSecurityConfig.java | 35 ++ .../cnf/exceptions/ApplicationException.java | 66 ++ .../so/adapters/cnf/model/BpmnInstanceRequest.java | 87 +++ .../org/onap/so/adapters/cnf/model/Config.java | 31 + .../adapters/cnf/model/ConfigTemplateEntity.java | 42 ++ .../so/adapters/cnf/model/ConfigurationEntity.java | 54 ++ .../cnf/model/ConfigurationRollbackEntity.java | 22 + .../so/adapters/cnf/model/ConnectivityInfo.java | 53 ++ .../so/adapters/cnf/model/ConnectivityRecords.java | 23 + .../onap/so/adapters/cnf/model/ErrorResponse.java | 63 ++ .../so/adapters/cnf/model/GroupVersionKind.java | 66 ++ .../adapters/cnf/model/InstanceMiniResponse.java | 62 ++ .../cnf/model/InstanceMiniResponseList.java | 45 ++ .../so/adapters/cnf/model/InstanceResponse.java | 99 +++ .../adapters/cnf/model/InstanceStatusResponse.java | 84 +++ .../cnf/model/MulticloudInstanceRequest.java | 87 +++ .../cnf/model/OtherConnectivityListEntity.java | 23 + .../org/onap/so/adapters/cnf/model/PodStatus.java | 71 +++ .../onap/so/adapters/cnf/model/ProfileEntity.java | 74 +++ .../org/onap/so/adapters/cnf/model/Resource.java | 54 ++ .../adapters/cnf/model/ResourceBundleEntity.java | 65 ++ .../org/onap/so/adapters/cnf/model/Response.java | 39 ++ .../java/org/onap/so/adapters/cnf/model/Tag.java | 20 + .../onap/so/adapters/cnf/rest/CnfAdapterRest.java | 677 +++++++++++++++++++++ .../so/adapters/cnf/service/CnfAdapterService.java | 251 ++++++++ .../onap/so/adapters/cnf/util/CNfAdapterUtil.java | 94 +++ .../services/org.onap.so.client.RestProperties | 1 + .../src/main/resources/application.yaml | 61 ++ .../onap/so/adapters/cnf/CnfAdapterRestTest.java | 63 ++ .../so/adapters/cnf/rest/CnfAdapterRestTest.java | 106 ++++ .../cnf/service/CnfAdapterServiceTest.java | 104 ++++ .../onap/so/adapters/cnf/MSOCnfApplication.java | 52 -- .../onap/so/adapters/cnf/WebSecurityConfig.java | 35 -- .../cnf/exceptions/ApplicationException.java | 66 -- .../so/adapters/cnf/model/BpmnInstanceRequest.java | 87 --- .../org/onap/so/adapters/cnf/model/Config.java | 31 - .../adapters/cnf/model/ConfigTemplateEntity.java | 42 -- .../so/adapters/cnf/model/ConfigurationEntity.java | 54 -- .../cnf/model/ConfigurationRollbackEntity.java | 22 - .../so/adapters/cnf/model/ConnectivityInfo.java | 53 -- .../so/adapters/cnf/model/ConnectivityRecords.java | 23 - .../onap/so/adapters/cnf/model/ErrorResponse.java | 63 -- .../so/adapters/cnf/model/GroupVersionKind.java | 66 -- .../adapters/cnf/model/InstanceMiniResponse.java | 62 -- .../cnf/model/InstanceMiniResponseList.java | 45 -- .../so/adapters/cnf/model/InstanceResponse.java | 99 --- .../adapters/cnf/model/InstanceStatusResponse.java | 84 --- .../cnf/model/MulticloudInstanceRequest.java | 87 --- .../cnf/model/OtherConnectivityListEntity.java | 23 - .../org/onap/so/adapters/cnf/model/PodStatus.java | 71 --- .../onap/so/adapters/cnf/model/ProfileEntity.java | 74 --- .../org/onap/so/adapters/cnf/model/Resource.java | 54 -- .../adapters/cnf/model/ResourceBundleEntity.java | 65 -- .../org/onap/so/adapters/cnf/model/Response.java | 39 -- .../java/org/onap/so/adapters/cnf/model/Tag.java | 20 - .../onap/so/adapters/cnf/rest/CnfAdapterRest.java | 677 --------------------- .../so/adapters/cnf/service/CnfAdapterService.java | 251 -------- .../onap/so/adapters/cnf/util/CNfAdapterUtil.java | 94 --- .../services/org.onap.so.client.RestProperties | 1 - src/main/resources/application.yaml | 61 -- .../onap/so/adapters/cnf/CnfAdapterRestTest.java | 63 -- .../so/adapters/cnf/rest/CnfAdapterRestTest.java | 106 ---- .../cnf/service/CnfAdapterServiceTest.java | 104 ---- 80 files changed, 3608 insertions(+), 3348 deletions(-) delete mode 100755 Dockerfile delete mode 100644 ca-certificates/onap-ca.crt delete mode 100644 configs/logging/logback-spring.xml create mode 100755 packages/docker/pom.xml create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.so-app create mode 100644 packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image create mode 100644 packages/docker/src/main/docker/docker-files/ca-certificates/onap-ca.crt create mode 100644 packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml create mode 100755 packages/docker/src/main/docker/docker-files/scripts/start-app.sh create mode 100755 packages/docker/src/main/docker/docker-files/scripts/wait-for.sh create mode 100644 packages/pom.xml delete mode 100644 scripts/.gitattributes delete mode 100755 scripts/start-app.sh delete mode 100755 scripts/wait-for.sh create mode 100755 so-cnf-adapter-application/pom.xml create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Config.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Resource.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Response.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Tag.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java create mode 100644 so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java create mode 100644 so-cnf-adapter-application/src/main/resources/META-INF/services/org.onap.so.client.RestProperties create mode 100644 so-cnf-adapter-application/src/main/resources/application.yaml create mode 100644 so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java create mode 100644 so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java create mode 100644 so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/Config.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/Resource.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/Response.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/model/Tag.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java delete mode 100644 src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java delete mode 100644 src/main/resources/META-INF/services/org.onap.so.client.RestProperties delete mode 100644 src/main/resources/application.yaml delete mode 100644 src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java delete mode 100644 src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java delete mode 100644 src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java diff --git a/Dockerfile b/Dockerfile deleted file mode 100755 index 483c219..0000000 --- a/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM adoptopenjdk/openjdk11:jre-11.0.8_10-alpine - -ARG JAR_FILE=*.jar -ARG http_proxy -ENV HTTP_PROXY=$http_proxy -ENV http_proxy=$HTTP_PROXY -ARG https_proxy -ENV HTTPS_PROXY=$https_proxy -ENV https_proxy=$HTTPS_PROXY -USER root -RUN mkdir -p /app/config -RUN mkdir -p /app/certificates -RUN mkdir -p /app/logs -RUN mkdir -p /app/ca-certificates -RUN apk update && apk add apache2-utils -COPY target/${JAR_FILE} /app/app.jar - -COPY configs/logging/logback-spring.xml /app -COPY scripts/start-app.sh /app -COPY scripts/wait-for.sh /app -COPY ca-certificates/onap-ca.crt /app/ca-certificates/onap-ca.crt -#RUN chown -R so:so /app -#USER so -# Springboot configuration (required) -VOLUME /app/config -# Root certificates (optional) -VOLUME /app/ca-certificates -WORKDIR /app -ENTRYPOINT ["/app/start-app.sh"] - diff --git a/ca-certificates/onap-ca.crt b/ca-certificates/onap-ca.crt deleted file mode 100644 index e9a50d7..0000000 --- a/ca-certificates/onap-ca.crt +++ /dev/null @@ -1,31 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIFPjCCAyagAwIBAgIJAJ6u7cCnzrWdMA0GCSqGSIb3DQEBCwUAMCwxDjAMBgNV -BAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQMQswCQYDVQQGEwJVUzAeFw0xODA0MDUx -NDE1MjhaFw0zODAzMzExNDE1MjhaMCwxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQK -DARPTkFQMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC -ggIBAMA5pkgRs7NhGG4ew5JouhyYakgYUyFaG121+/h8qbSdt0hVQv56+EA41Yq7 -XGie7RYDQK9NmAFF3gruE+6X7wvJiChp+Cyd7sFMnb65uWhxEdxWTM2BJFrgfzUn -H8ZCxgaCo3XH4PzlKRy2LQQJEJECwl/RZmRCXijMt5e9h8XoZY/fKkKcZZUsWNCM -pTo266wjvA9MXLmdgReRj0+vrCjrNqy+htwJDztoiHWiYPqT6o8EvGcgjNqjlZx7 -NUNf8MfLDByqKF6+wRbHv1GKjn3/Vijd45Fv8riyRYROiFanvbV6jIfBkv8PZbXg -2VDWsYsgp8NAvMxK+iV8cO+Ck3lBI2GOPZbCEqpPVTYbLUz6sczAlCXwQoPzDIZY -wYa3eR/gYLY1gP2iEVHORag3bLPap9ZX5E8DZkzTNTjovvLk8KaCmfcaUMJsBtDd -ApcUitz10cnRyZc1sX3gE1f3DpzQM6t9C5sOVyRhDcSrKqqwb9m0Ss04XAS9FsqM -P3UWYQyqDXSxlUAYaX892u8mV1hxnt2gjb22RloXMM6TovM3sSrJS0wH+l1nznd6 -aFXftS/G4ZVIVZ/LfT1is4StoyPWZCwwwly1z8qJQ/zhip5NgZTxQw4mi7ww35DY -PdAQOCoajfSvFjqslQ/cPRi/MRCu079heVb5fQnnzVtnpFQRAgMBAAGjYzBhMB0G -A1UdDgQWBBRTVTPyS+vQUbHBeJrBKDF77+rtSTAfBgNVHSMEGDAWgBRTVTPyS+vQ -UbHBeJrBKDF77+rtSTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAN -BgkqhkiG9w0BAQsFAAOCAgEAPx/IaK94n02wPxpnYTy+LVLIxwdq/kawNd6IbiMz -L87zmNMDmHcGbfoRCj8OkhuggX9Lx1/CkhpXimuYsZOFQi5blr/u+v4mIbsgbmi9 -7j+cUHDP0zLycvSvxKHty51LwmaX9a4wkJl5zBU4O1sd/H9tWcEmwJ39ltKoBKBx -c94Zc3iMm5ytRWGj+0rKzLDAXEWpoZ5bE5PLJauA6UDCxDLfs3FwhbS7uDggxYvf -jySF5FCNET94oJ+m8s7VeHvoa8iPGKvXrIqdd7XDHnqJJlVKr7m9S0fMbyEB8ci2 -RtOXDt93ifY1uhoEtEykn4dqBSp8ezvNMnwoXdYPDvTd9uCAFeWFLVreBAWxd25h -PsBTkZA5hpa/rA+mKv6Af4VBViYr8cz4dZCsFChuioVebe9ighrfjB//qKepFjPF -CyjzKN1u0JKm/2x/ORqxkTONG8p3uDwoIOyimUcTtTMv42bfYD88RKakqSFXE9G+ -Z0LlaKABqfjK49o/tsAp+c5LoNlYllKhnetO3QAdraHwdmC36BhoghzR1jpX751A -cZn2VH3Q4XKyp01cJNCJIrua+A+bx6zh3RyW6zIIkbRCbET+UD+4mr8WIcSE3mtR -ZVlnhUDO4z9//WKMVzwS9Rh8/kuszrGFI1KQozXCHLrce3YP6RYZfOed79LXaRwX -dYY= ------END CERTIFICATE----- diff --git a/configs/logging/logback-spring.xml b/configs/logging/logback-spring.xml deleted file mode 100644 index e4be709..0000000 --- a/configs/logging/logback-spring.xml +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ${errorPattern} - - - - - - - EXIT - - DENY - ACCEPT - - ${logs_dir:-.}/${auditLogName}.log - - ${logs_dir:-.}/${auditLogName}.%d{yyyy-MM-dd}.%i.log.zip - - ${maxFileSize} - ${maxHistory} - ${totalSizeCap} - - - ${auditPattern} - - - - - 256 - - - - - - - INVOKE-RETURN - - DENY - ACCEPT - - ${logs_dir:-.}/${metricsLogName}.log - - ${logs_dir:-.}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log.zip - - ${maxFileSize} - ${maxHistory} - ${totalSizeCap} - - - ${metricPattern} - - - - - - 256 - - - - - - ERROR - ACCEPT - DENY - - ${logs_dir:-.}/${errorLogName}.log - - ${logs_dir:-.}/${errorLogName}.%d{yyyy-MM-dd}.%i.log.zip - - ${maxFileSize} - ${maxHistory} - ${totalSizeCap} - - - ${errorPattern} - - - - - 256 - - - - - - - INVOKE - INVOKE-RETURN - ENTRY - EXIT - - ACCEPT - DENY - - ${logs_dir:-.}/${debugLogName}.log - - ${logs_dir:-.}/${debugLogName}.%d{yyyy-MM-dd}.%i.log.zip - - ${maxFileSize} - ${maxHistory} - ${totalSizeCap} - - - ${debugPattern} - - - - - 256 - - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/packages/docker/pom.xml b/packages/docker/pom.xml new file mode 100755 index 0000000..bf91ebf --- /dev/null +++ b/packages/docker/pom.xml @@ -0,0 +1,156 @@ + + 4.0.0 + + org.onap.so.adapters.so-cnf-adapter + so-cnf-adapter + 1.8.0-SNAPSHOT + + org.onap.so.adapters.so-cnf-adapter.packages + pom + docker + SO CNF Adapter Docker Packaging + + + ${project.version} + false + false + false + nexus3.onap.org:10001 + nexus3.onap.org:10003 + onap/so + deploy + + + + ${project.artifactId}-${project.version} + + + org.codehaus.groovy.maven + gmaven-plugin + 1.0 + + + validate + + execute + + + + println 'Project version: ' + project.properties['cnf-adapter-project-version']; + def versionArray; + if (project.properties['cnf-adapter-project-version'] != null) { + versionArray = project.properties['cnf-adapter-project-version'].split('-'); + } + + if (project.properties['cnf-adapter-project-version'].endsWith("-SNAPSHOT")) { + project.properties['project.docker.latesttag.version'] = versionArray[0] + "-SNAPSHOT-latest"; + } else { + project.properties['project.docker.latesttag.version'] = versionArray[0] + "-STAGING-latest"; + } + + println 'New tag for docker: ' + project.properties['project.docker.latesttag.version']; + + + + + + + + io.fabric8 + docker-maven-plugin + + true + 1.23 + ${docker.pull.registry} + ${docker.push.registry} + + + ${docker.image.prefix}/base-image:1.0 + + try + docker-files/Dockerfile.so-base-image + + + + so-cnf-adapter + + try + docker-files/Dockerfile.so-app + + ${project.version} + ${project.version}-${maven.build.timestamp} + ${project.docker.latesttag.version} + + + + + + + + org.onap.so.adapters.so-cnf-adapter:so-cnf-adapter-application + + + app.jar + + + + + + + + + + + + + clean-images + pre-clean + + remove + + + true + + + + + generate-images + generate-sources + + build + + + + + push-images + ${docker.push.phase} + + build + push + + + so-cnf-adapter + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + + + org.onap.so.adapters.so-cnf-adapter + so-cnf-adapter-application + ${project.version} + + + \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.so-app b/packages/docker/src/main/docker/docker-files/Dockerfile.so-app new file mode 100644 index 0000000..dc86ff8 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.so-app @@ -0,0 +1,31 @@ +FROM onap/so/base-image:1.0 + +ARG http_proxy +ENV HTTP_PROXY=$http_proxy +ENV http_proxy=$HTTP_PROXY +ARG https_proxy +ENV HTTPS_PROXY=$https_proxy +ENV https_proxy=$HTTPS_PROXY + +USER root +RUN mkdir -p /app/config +RUN mkdir -p /app/certificates +RUN mkdir -p /app/logs +RUN mkdir -p /app/ca-certificates + +COPY maven/app.jar /app +COPY configs/logging/logback-spring.xml /app +COPY scripts/start-app.sh /app +COPY scripts/wait-for.sh /app +COPY ca-certificates/onap-ca.crt /app/ca-certificates/onap-ca.crt +RUN chown -R so:so /app + +USER so +# Springboot configuration (required) +VOLUME /app/config + +# Root certificates (optional) +VOLUME /app/ca-certificates + +WORKDIR /app +ENTRYPOINT ["/app/start-app.sh"] diff --git a/packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image b/packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image new file mode 100644 index 0000000..a1f4fc1 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/Dockerfile.so-base-image @@ -0,0 +1,19 @@ +FROM adoptopenjdk/openjdk11:jre-11.0.8_10-alpine + +ARG http_proxy +ARG https_proxy +ENV HTTP_PROXY=$http_proxy +ENV HTTPS_PROXY=$https_proxy +ENV http_proxy=$HTTP_PROXY +ENV https_proxy=$HTTPS_PROXY + +# Install commonly needed tools +RUN apk --no-cache add curl netcat-openbsd nss apache2-utils java-cacerts + +# Create symlink for default Java truststore +RUN set -eux; \ + rm -rf "$JAVA_HOME/lib/security/cacerts"; \ + ln -sT /etc/ssl/certs/java/cacerts "$JAVA_HOME/lib/security/cacerts" + +# Create 'so' user +RUN addgroup -g 1000 so && adduser -S -u 1000 -G so -s /bin/sh so diff --git a/packages/docker/src/main/docker/docker-files/ca-certificates/onap-ca.crt b/packages/docker/src/main/docker/docker-files/ca-certificates/onap-ca.crt new file mode 100644 index 0000000..e9a50d7 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/ca-certificates/onap-ca.crt @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFPjCCAyagAwIBAgIJAJ6u7cCnzrWdMA0GCSqGSIb3DQEBCwUAMCwxDjAMBgNV +BAsMBU9TQUFGMQ0wCwYDVQQKDARPTkFQMQswCQYDVQQGEwJVUzAeFw0xODA0MDUx +NDE1MjhaFw0zODAzMzExNDE1MjhaMCwxDjAMBgNVBAsMBU9TQUFGMQ0wCwYDVQQK +DARPTkFQMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAMA5pkgRs7NhGG4ew5JouhyYakgYUyFaG121+/h8qbSdt0hVQv56+EA41Yq7 +XGie7RYDQK9NmAFF3gruE+6X7wvJiChp+Cyd7sFMnb65uWhxEdxWTM2BJFrgfzUn +H8ZCxgaCo3XH4PzlKRy2LQQJEJECwl/RZmRCXijMt5e9h8XoZY/fKkKcZZUsWNCM +pTo266wjvA9MXLmdgReRj0+vrCjrNqy+htwJDztoiHWiYPqT6o8EvGcgjNqjlZx7 +NUNf8MfLDByqKF6+wRbHv1GKjn3/Vijd45Fv8riyRYROiFanvbV6jIfBkv8PZbXg +2VDWsYsgp8NAvMxK+iV8cO+Ck3lBI2GOPZbCEqpPVTYbLUz6sczAlCXwQoPzDIZY +wYa3eR/gYLY1gP2iEVHORag3bLPap9ZX5E8DZkzTNTjovvLk8KaCmfcaUMJsBtDd +ApcUitz10cnRyZc1sX3gE1f3DpzQM6t9C5sOVyRhDcSrKqqwb9m0Ss04XAS9FsqM +P3UWYQyqDXSxlUAYaX892u8mV1hxnt2gjb22RloXMM6TovM3sSrJS0wH+l1nznd6 +aFXftS/G4ZVIVZ/LfT1is4StoyPWZCwwwly1z8qJQ/zhip5NgZTxQw4mi7ww35DY +PdAQOCoajfSvFjqslQ/cPRi/MRCu079heVb5fQnnzVtnpFQRAgMBAAGjYzBhMB0G +A1UdDgQWBBRTVTPyS+vQUbHBeJrBKDF77+rtSTAfBgNVHSMEGDAWgBRTVTPyS+vQ +UbHBeJrBKDF77+rtSTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAN +BgkqhkiG9w0BAQsFAAOCAgEAPx/IaK94n02wPxpnYTy+LVLIxwdq/kawNd6IbiMz +L87zmNMDmHcGbfoRCj8OkhuggX9Lx1/CkhpXimuYsZOFQi5blr/u+v4mIbsgbmi9 +7j+cUHDP0zLycvSvxKHty51LwmaX9a4wkJl5zBU4O1sd/H9tWcEmwJ39ltKoBKBx +c94Zc3iMm5ytRWGj+0rKzLDAXEWpoZ5bE5PLJauA6UDCxDLfs3FwhbS7uDggxYvf +jySF5FCNET94oJ+m8s7VeHvoa8iPGKvXrIqdd7XDHnqJJlVKr7m9S0fMbyEB8ci2 +RtOXDt93ifY1uhoEtEykn4dqBSp8ezvNMnwoXdYPDvTd9uCAFeWFLVreBAWxd25h +PsBTkZA5hpa/rA+mKv6Af4VBViYr8cz4dZCsFChuioVebe9ighrfjB//qKepFjPF +CyjzKN1u0JKm/2x/ORqxkTONG8p3uDwoIOyimUcTtTMv42bfYD88RKakqSFXE9G+ +Z0LlaKABqfjK49o/tsAp+c5LoNlYllKhnetO3QAdraHwdmC36BhoghzR1jpX751A +cZn2VH3Q4XKyp01cJNCJIrua+A+bx6zh3RyW6zIIkbRCbET+UD+4mr8WIcSE3mtR +ZVlnhUDO4z9//WKMVzwS9Rh8/kuszrGFI1KQozXCHLrce3YP6RYZfOed79LXaRwX +dYY= +-----END CERTIFICATE----- diff --git a/packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml b/packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml new file mode 100644 index 0000000..ad5fe30 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/configs/logging/logback-spring.xml @@ -0,0 +1,199 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${errorPattern} + + + + + + + EXIT + + DENY + ACCEPT + + ${logs_dir:-.}/${auditLogName}.log + + ${logs_dir:-.}/${auditLogName}.%d{yyyy-MM-dd}.%i.log.zip + + ${maxFileSize} + ${maxHistory} + ${totalSizeCap} + + + ${auditPattern} + + + + + 256 + + + + + + + INVOKE-RETURN + + DENY + ACCEPT + + ${logs_dir:-.}/${metricsLogName}.log + + ${logs_dir:-.}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log.zip + + ${maxFileSize} + ${maxHistory} + ${totalSizeCap} + + + ${metricPattern} + + + + + + 256 + + + + + + ERROR + ACCEPT + DENY + + ${logs_dir:-.}/${errorLogName}.log + + ${logs_dir:-.}/${errorLogName}.%d{yyyy-MM-dd}.%i.log.zip + + ${maxFileSize} + ${maxHistory} + ${totalSizeCap} + + + ${errorPattern} + + + + + 256 + + + + + + + INVOKE + INVOKE-RETURN + ENTRY + EXIT + + ACCEPT + DENY + + ${logs_dir:-.}/${debugLogName}.log + + ${logs_dir:-.}/${debugLogName}.%d{yyyy-MM-dd}.%i.log.zip + + ${maxFileSize} + ${maxHistory} + ${totalSizeCap} + + + ${debugPattern} + + + + + 256 + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/scripts/start-app.sh b/packages/docker/src/main/docker/docker-files/scripts/start-app.sh new file mode 100755 index 0000000..618d55f --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/scripts/start-app.sh @@ -0,0 +1,95 @@ +#!/bin/sh + +if [ `id -u` = 0 ] +then + # Install certificates found in the /app/ca-certificates volume, if any. + + needUpdate=FALSE + + for certificate in `ls -1 /app/ca-certificates`; do + echo "Installing $certificate in /usr/local/share/ca-certificates" + cp /app/ca-certificates/$certificate /usr/local/share/ca-certificates/$certificate + needUpdate=TRUE + done + + if [ $needUpdate = TRUE ]; then + update-ca-certificates --fresh + fi + + # Re-exec this script as the 'onap' user. + this=`readlink -f $0` + exec su so -c "$this" +fi + +touch /app/app.jar + +if [ ! -z "$DB_HOST" -a -z "$DB_PORT" ]; then + export DB_PORT=3306 +fi + +if [ -z "${CONFIG_PATH}" ]; then + export CONFIG_PATH=/app/config/override.yaml +fi + +if [ -z "${LOG_PATH}" ]; then + export LOG_PATH="logs/${APP}" +fi + +if [ "${SSL_DEBUG}" = "log" ]; then + export SSL_DEBUG="-Djavax.net.debug=all" +else + export SSL_DEBUG= +fi + +# Set java keystore and truststore options, if specified in the environment. + +jksargs= + +if [ ! -z "${KEYSTORE}" ]; then + jksargs="$jksargs -Dmso.load.ssl.client.keystore=true" + jksargs="$jksargs -Djavax.net.ssl.keyStore=$KEYSTORE" + jksargs="$jksargs -Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASSWORD}" +fi + +if [ ! -z "${TRUSTSTORE}" ]; then + jksargs="$jksargs -Djavax.net.ssl.trustStore=${TRUSTSTORE}" + jksargs="$jksargs -Djavax.net.ssl.trustStorePassword=${TRUSTSTORE_PASSWORD}" +fi + +if [ -z "${ACTIVE_PROFILE}" ]; then + export ACTIVE_PROFILE="basic" +fi + +jvmargs="${JVM_ARGS} -Dspring.profiles.active=${ACTIVE_PROFILE} -Djava.security.egd=file:/dev/./urandom -Dlogs_dir=${LOG_PATH} -Dlogging.config=/app/logback-spring.xml $jksargs -Dspring.config.additional-location=$CONFIG_PATH ${SSL_DEBUG} ${DISABLE_SNI}" + + +read_properties(){ + while IFS="=" read -r key value; do + case "${key}" in + '#'*) ;; + *) + eKey=$(echo $key | tr '[:lower:]' '[:upper:]') + export "$eKey"="$value" + esac + done <<-EOF + $1 + EOF +} + +if [ -n "${AAF_SSL_CERTS_ENABLED}" ]; then +read_properties "$(head -n 4 /app/certs/.passphrases)" +fi + +echo "JVM Arguments: ${jvmargs}" + +java ${jvmargs} -jar app.jar +rc=$? + +echo "Application exiting with status code $rc" + +if [ ! -z "${EXIT_DELAY}" -a "${EXIT_DELAY}" != 0 ]; then + echo "Delaying $APP exit for $EXIT_DELAY seconds" + sleep $EXIT_DELAY +fi + +exit $rc \ No newline at end of file diff --git a/packages/docker/src/main/docker/docker-files/scripts/wait-for.sh b/packages/docker/src/main/docker/docker-files/scripts/wait-for.sh new file mode 100755 index 0000000..2525821 --- /dev/null +++ b/packages/docker/src/main/docker/docker-files/scripts/wait-for.sh @@ -0,0 +1,85 @@ +#!/bin/sh +# https://github.com/Eficode/wait-for.git +# MIT License + +TIMEOUT=15 +QUIET=0 + +echoerr() { + if [ "$QUIET" -ne 1 ]; then printf "%s\n" "$*" 1>&2; fi +} + +usage() { + exitcode="$1" + cat << USAGE >&2 +Usage: + $cmdname host:port [-t timeout] [-- command args] + -q | --quiet Do not output any status messages + -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout + -- COMMAND ARGS Execute command with args after the test finishes +USAGE + exit "$exitcode" +} + +wait_for() { + command="$*" + if [ "$QUIET" -ne 1 ]; then echo "$0: probing host $HOST port $PORT"; fi + for i in `seq $TIMEOUT` ; do + nc -z "$HOST" "$PORT" > /dev/null 2>&1 + result=$? + if [ $result -eq 0 ] ; then + if [ "$QUIET" -ne 1 ]; then echo "$0: operation succeeded on try $i"; fi + if [ -n "$command" ] ; then + if [ "$QUIET" -ne 1 ]; then echo "$0: exec-ing command $command"; fi + exec $command + fi + exit 0 + fi + if [ "$QUIET" -ne 1 ]; then echo "$0: sleeping after try $i"; fi + sleep 1 + done + echo "$0: Operation timed out" >&2 + exit 1 +} + +while [ $# -gt 0 ] +do + case "$1" in + *:* ) + HOST=$(printf "%s\n" "$1"| cut -d : -f 1) + PORT=$(printf "%s\n" "$1"| cut -d : -f 2) + shift 1 + ;; + -q | --quiet) + QUIET=1 + shift 1 + ;; + -t) + TIMEOUT="$2" + if [ "$TIMEOUT" = "" ]; then break; fi + shift 2 + ;; + --timeout=*) + TIMEOUT="${1#*=}" + shift 1 + ;; + --) + shift + break + ;; + --help) + usage 0 + ;; + *) + echoerr "Unknown argument: $1" + usage 1 + ;; + esac +done + +if [ "$HOST" = "" -o "$PORT" = "" ]; then + echoerr "Error: you need to provide a host and port to test." + usage 2 +fi + +wait_for "$@" diff --git a/packages/pom.xml b/packages/pom.xml new file mode 100644 index 0000000..5c94fcf --- /dev/null +++ b/packages/pom.xml @@ -0,0 +1,34 @@ + + 4.0.0 + + org.onap.so.adapters.so-cnf-adapter + so-cnf-adapter + 1.8.0-SNAPSHOT + + packages + pom + SO CNF Adapter Packages + + + + + + default + + true + + + + + + docker + + docker + + + false + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index c1250f4..7d7848e 100644 --- a/pom.xml +++ b/pom.xml @@ -1,234 +1,105 @@ - - - 4.0.0 - - org.onap.so - so + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + org.onap.so + so + 1.8.0-SNAPSHOT + + org.onap.so.adapters.so-cnf-adapter + so-cnf-adapter 1.8.0-SNAPSHOT - - - so-cnf-adapter - jar - so-cnf-adapter - Web service endpoint for cnf operations - - - - org.springframework.boot - spring-boot-dependencies - ${springboot.version} - pom - import - - - - - ${project.artifactId}-${project.version} - - - org.apache.maven.plugins - maven-deploy-plugin - - true - - - - org.springframework.boot - spring-boot-maven-plugin - - org.onap.so.adapters.cnf.MSOCnfApplication - - - - - repackage - - - - - - org.jacoco - jacoco-maven-plugin - - - net.revelc.code.formatter - formatter-maven-plugin - 2.9.0 - - - format-java - - format - - process-sources - - ${format.skipExecute} - ${project.basedir}/onap-eclipse-format.xml - - - - format-xml - - format - - process-sources - - ${format.skipExecute} - ${project.basedir} - ${project.basedir}/pom-format.properties - - pom.xml - - - - - validate-java - - validate - - - ${format.skipValidate} - ${project.basedir}/onap-eclipse-format.xml - - - - validate-poms - - validate - - - ${format.skipValidate} - ${project.basedir}/pom-format.properties - - pom.xml - - - - - - - com.fasterxml.jackson.core - jackson-annotations - 2.9.8 - - - - - org.codehaus.mojo - exec-maven-plugin - - - docker-build - install - - exec - - - Dockerfile - docker - ${project.basedir} - - build - -t - ${project.artifactId}:${project.version} - . - - - ${project.artifactId}-${project.version}.jar - ${project.artifactId} - - - - - - - - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-jdbc - - - org.apache.tomcat - tomcat-jdbc - - - - - org.apache.cxf - cxf-spring-boot-starter-jaxws - - - org.apache.cxf - cxf-spring-boot-starter-jaxrs - - - org.apache.httpcomponents - httpmime - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-test - test - - - org.apache.httpcomponents - httpclient - - - org.apache.httpcomponents - httpcore - - - org.springframework.cloud - spring-cloud-contract-wiremock - 1.2.4.RELEASE - - - org.onap.so - aai-client - ${project.version} - - - com.sun.xml.ws - jaxws-ri - 2.3.0 - pom - - - + SO CNF Adapter + pom + + + 11 + 11 + UTF-8 + UTF-8 + 2.3.1 + 1.8.2 + 2.7.2 + 1.3.5 + 1.0.1 + 1.5.21 + 3.14.0 + 2.7.5 + 1.13.0 + 2.3.6.RELEASE + 2.3.0 + 0.11 + 2.2 + 3.4.1 + 1.8.0-SNAPSHOT + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${version.java.compiler} + ${version.java.compiler} + + + + net.revelc.code.formatter + formatter-maven-plugin + 2.9.0 + + + format-java + + format + + process-sources + + true + + + + format-xml + + format + + process-sources + + true + + pom.xml + + + + + validate-java + + validate + + + true + + + + validate-poms + + validate + + + true + + pom.xml + + + + + + + + + + so-cnf-adapter-application + packages + + diff --git a/scripts/.gitattributes b/scripts/.gitattributes deleted file mode 100644 index b905d1d..0000000 --- a/scripts/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -# Default behavior -* text=auto - -# Files to have unix style line endings on checkout -*.sh text eol=lf \ No newline at end of file diff --git a/scripts/start-app.sh b/scripts/start-app.sh deleted file mode 100755 index 54ed9ed..0000000 --- a/scripts/start-app.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/bin/sh -#temprary condition -if [ `id -u` = 0 ] -then - # Install certificates found in the /app/ca-certificates volume, if any. - - needUpdate=FALSE - - for certificate in `ls -1 /app/ca-certificates`; do - echo "Installing $certificate in /usr/local/share/ca-certificates" - # cp /app/ca-certificates/$certificate /usr/local/share/ca-certificates/$certificate - needUpdate=FALSE - done - - # Re-exec this script as the 'onap' user. - this=`readlink -f $0` - # exec su so -c "$this" -fi - -touch /app/app.jar - -if [ ! -z "$DB_HOST" -a -z "$DB_PORT" ]; then - export DB_PORT=3306 -fi - -if [ -z "${CONFIG_PATH}" ]; then - export CONFIG_PATH=/app/config/override.yaml -fi - -if [ "${SSL_DEBUG}" = "log" ]; then - export SSL_DEBUG="-Djavax.net.debug=all" -else - export SSL_DEBUG= -fi - -# Set java keystore and truststore options, if specified in the environment. - -jksargs= - -if [ ! -z "${KEYSTORE}" ]; then - jksargs="$jksargs -Dmso.load.ssl.client.keystore=true" - jksargs="$jksargs -Djavax.net.ssl.keyStore=$KEYSTORE" - jksargs="$jksargs -Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASSWORD}" -fi - -if [ ! -z "${TRUSTSTORE}" ]; then - jksargs="$jksargs -Djavax.net.ssl.trustStore=${TRUSTSTORE}" - jksargs="$jksargs -Djavax.net.ssl.trustStorePassword=${TRUSTSTORE_PASSWORD}" -fi - -if [ -z "${ACTIVE_PROFILE}" ]; then - export ACTIVE_PROFILE="basic" -fi - -jvmargs="${JVM_ARGS} -Dspring.profiles.active=${ACTIVE_PROFILE} -Djava.security.egd=file:/dev/./urandom -Dlogs_dir=${LOG_PATH} -Dlogging.config=/app/logback-spring.xml $jksargs -Dspring.config.additional-location=$CONFIG_PATH ${SSL_DEBUG} ${DISABLE_SNI}" - - -read_properties(){ - while IFS="=" read -r key value; do - case "${key}" in - '#'*) ;; - *) - eKey=$(echo $key | tr '[:lower:]' '[:upper:]') - export "$eKey"="$value" - esac - done <<-EOF - $1 - EOF -} - - - -if [ -n "${AAF_SSL_CERTS_ENABLED}" ]; then -read_properties "$(head -n 4 /app/certs/.passphrases)" -fi - -echo "JVM Arguments: ${jvmargs}" - -java ${jvmargs} -jar app.jar -rc=$? - -echo "Application exiting with status code $rc" - -if [ ! -z "${EXIT_DELAY}" -a "${EXIT_DELAY}" != 0 ]; then - echo "Delaying $APP exit for $EXIT_DELAY seconds" - sleep $EXIT_DELAY -fi - -exit $rc diff --git a/scripts/wait-for.sh b/scripts/wait-for.sh deleted file mode 100755 index 2525821..0000000 --- a/scripts/wait-for.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/sh -# https://github.com/Eficode/wait-for.git -# MIT License - -TIMEOUT=15 -QUIET=0 - -echoerr() { - if [ "$QUIET" -ne 1 ]; then printf "%s\n" "$*" 1>&2; fi -} - -usage() { - exitcode="$1" - cat << USAGE >&2 -Usage: - $cmdname host:port [-t timeout] [-- command args] - -q | --quiet Do not output any status messages - -t TIMEOUT | --timeout=timeout Timeout in seconds, zero for no timeout - -- COMMAND ARGS Execute command with args after the test finishes -USAGE - exit "$exitcode" -} - -wait_for() { - command="$*" - if [ "$QUIET" -ne 1 ]; then echo "$0: probing host $HOST port $PORT"; fi - for i in `seq $TIMEOUT` ; do - nc -z "$HOST" "$PORT" > /dev/null 2>&1 - result=$? - if [ $result -eq 0 ] ; then - if [ "$QUIET" -ne 1 ]; then echo "$0: operation succeeded on try $i"; fi - if [ -n "$command" ] ; then - if [ "$QUIET" -ne 1 ]; then echo "$0: exec-ing command $command"; fi - exec $command - fi - exit 0 - fi - if [ "$QUIET" -ne 1 ]; then echo "$0: sleeping after try $i"; fi - sleep 1 - done - echo "$0: Operation timed out" >&2 - exit 1 -} - -while [ $# -gt 0 ] -do - case "$1" in - *:* ) - HOST=$(printf "%s\n" "$1"| cut -d : -f 1) - PORT=$(printf "%s\n" "$1"| cut -d : -f 2) - shift 1 - ;; - -q | --quiet) - QUIET=1 - shift 1 - ;; - -t) - TIMEOUT="$2" - if [ "$TIMEOUT" = "" ]; then break; fi - shift 2 - ;; - --timeout=*) - TIMEOUT="${1#*=}" - shift 1 - ;; - --) - shift - break - ;; - --help) - usage 0 - ;; - *) - echoerr "Unknown argument: $1" - usage 1 - ;; - esac -done - -if [ "$HOST" = "" -o "$PORT" = "" ]; then - echoerr "Error: you need to provide a host and port to test." - usage 2 -fi - -wait_for "$@" diff --git a/so-cnf-adapter-application/pom.xml b/so-cnf-adapter-application/pom.xml new file mode 100755 index 0000000..ae6cf96 --- /dev/null +++ b/so-cnf-adapter-application/pom.xml @@ -0,0 +1,182 @@ + + + + 4.0.0 + + org.onap.so.adapters.so-cnf-adapter + so-cnf-adapter + 1.8.0-SNAPSHOT + + so-cnf-adapter-application + so-cnf-adapter + jar + Web service endpoint for cnf operations + + + + org.springframework.boot + spring-boot-dependencies + ${springboot.version} + pom + import + + + + + ${project.artifactId}-${project.version} + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + org.springframework.boot + spring-boot-maven-plugin + + org.onap.so.adapters.cnf.MSOCnfApplication + + + + + repackage + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + original + + + + + org.jacoco + jacoco-maven-plugin + + + org.apache.maven.plugins + maven-surefire-plugin + + + DEBUG + + 2 + suites + false + 1 + + + + + + src/main/resources + true + + **/*.p12 + **/*.jks + + + + src/main/resources + false + + **/*.p12 + **/*.jks + + + + + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-jdbc + + + org.apache.tomcat + tomcat-jdbc + + + + + org.apache.cxf + cxf-spring-boot-starter-jaxws + + + org.apache.cxf + cxf-spring-boot-starter-jaxrs + + + org.apache.httpcomponents + httpmime + + + org.springframework.boot + spring-boot-starter-data-jpa + + + org.springframework.boot + spring-boot-starter-test + test + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpcore + + + org.springframework.cloud + spring-cloud-contract-wiremock + 1.2.4.RELEASE + + + org.onap.so + aai-client + ${project.version} + + + com.sun.xml.ws + jaxws-ri + 2.3.0 + pom + + + + diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java new file mode 100644 index 0000000..0ba40e2 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java @@ -0,0 +1,52 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; +import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.client.RestTemplate; + +@SpringBootApplication +@ComponentScan(basePackages = {"org.onap.so.adapters.cnf"}) +@EnableAutoConfiguration(exclude = {LiquibaseAutoConfiguration.class, HibernateJpaAutoConfiguration.class, + DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, + SecurityAutoConfiguration.class}) +@Configuration +public class MSOCnfApplication { + + public static void main(String... args) { + SpringApplication.run(MSOCnfApplication.class, args); + } + + @Bean + public RestTemplate restTemplate() { + return new RestTemplate(); + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java new file mode 100644 index 0000000..03bfd54 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java @@ -0,0 +1,35 @@ + +package org.onap.so.adapters.cnf; +/* + * ============LICENSE_START==================================================== === ONAP - SO + * ============================================================================= === Copyright (C) 2020 Huawei + * Technologies Co., Ltd. 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====================================================== === + * + */ + +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; + +@EnableWebSecurity + +@Configuration +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + + @Override + protected void configure(HttpSecurity http) throws Exception { + http.csrf().disable(); + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java new file mode 100644 index 0000000..c950cf6 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java @@ -0,0 +1,66 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.exceptions; + +import static org.onap.so.adapters.cnf.util.CNfAdapterUtil.marshal; +import org.onap.so.adapters.cnf.model.ErrorResponse; +import org.springframework.http.ResponseEntity; + +public class ApplicationException extends Exception { + + private static final long serialVersionUID = 1L; + + private int errorCode; + + private String errorMsg; + + public ApplicationException(int errorCode, String errorMsg) { + this.errorCode = errorCode; + this.errorMsg = errorMsg; + } + + public int getErrorCode() { + return errorCode; + } + + public void setErrorCode(int errorCode) { + this.errorCode = errorCode; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + + public ResponseEntity buildErrorResponse() { + String message; + try { + ErrorResponse err = new ErrorResponse(errorCode, errorMsg); + message = marshal(err); + } catch (ApplicationException e) { + return ResponseEntity.status(500).body("Internal Server Error"); + } + return ResponseEntity.status(errorCode).body(message); + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java new file mode 100644 index 0000000..2e76d51 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java @@ -0,0 +1,87 @@ +package org.onap.so.adapters.cnf.model; + +import java.util.Map; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class BpmnInstanceRequest { + + @JsonProperty(value = "modelInvariantId") + private String modelInvariantId; + + @JsonProperty(value = "modelVersionId") + private String modelVersionId; + + @JsonProperty(value = "k8sRBProfileName") + private String k8sRBProfileName; + + @JsonProperty(value = "cloudRegionId") + private String cloudRegionId; + + @JsonProperty(value = "vfModuleUUID") + private String vfModuleUUID; + + @JsonProperty(value = "labels") + private Map labels; + + @JsonProperty(value = "overrideValues") + private Map overrideValues; + + public String getModelInvariantId() { + return modelInvariantId; + } + + public void setModelInvariantId(String modelInvariantId) { + this.modelInvariantId = modelInvariantId; + } + + public String getModelVersionId() { + return modelVersionId; + } + + public void setModelVersionId(String modelVersionId) { + this.modelVersionId = modelVersionId; + } + + public String getK8sRBProfileName() { + return k8sRBProfileName; + } + + public void setK8sRBProfileName(String k8sRBProfileName) { + this.k8sRBProfileName = k8sRBProfileName; + } + + public String getCloudRegionId() { + return cloudRegionId; + } + + public void setCloudRegionId(String cloudRegionId) { + this.cloudRegionId = cloudRegionId; + } + + public String getVfModuleUUID() { + return vfModuleUUID; + } + + public void setVfModuleUUID(String vfModuleUUID) { + this.vfModuleUUID = vfModuleUUID; + } + + public Map getLabels() { + return labels; + } + + public void setLabels(Map labels) { + this.labels = labels; + } + + public Map getOverrideValues() { + return overrideValues; + } + + public void setOverrideValues(Map overrideValues) { + this.overrideValues = overrideValues; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Config.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Config.java new file mode 100644 index 0000000..b901a39 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Config.java @@ -0,0 +1,31 @@ +package org.onap.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class Config { + + @JsonProperty(value = "config-version") + private String configVersion; + + @JsonProperty(value = "config-tag") + private String configTag; + + public Object getConfigVersion() { + return configVersion; + } + + public void setConfigVersion(String configVersion) { + this.configVersion = configVersion; + } + + public Object getConfigTag() { + return configTag; + } + + public void setConfigTag(String configTag) { + this.configTag = configTag; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java new file mode 100644 index 0000000..2ed35b8 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java @@ -0,0 +1,42 @@ +package org.onap.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class ConfigTemplateEntity { + + @JsonProperty(value = "template-name") + private String templateName; + + @JsonProperty(value = "description") + private String description; + + @JsonProperty(value = "chart-name") + private String chartName; + + public String getTemplateName() { + return templateName; + } + + public void setTemplateName(String templateName) { + this.templateName = templateName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getChartName() { + return chartName; + } + + public void setChartName(String chartName) { + this.chartName = chartName; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java new file mode 100644 index 0000000..7f6ae86 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java @@ -0,0 +1,54 @@ +package org.onap.so.adapters.cnf.model; + +import java.util.Map; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class ConfigurationEntity { + + @JsonProperty(value = "template-name") + private String templateName; + + @JsonProperty(value = "config-name") + private String configName; + + @JsonProperty(value = "description") + private String description; + + @JsonProperty(value = "values") + private Map values; + + public String getTemplateName() { + return templateName; + } + + public void setTemplateName(String templateName) { + this.templateName = templateName; + } + + public String getConfigName() { + return configName; + } + + public void setConfigName(String configName) { + this.configName = configName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Map getValues() { + return values; + } + + public void setValues(Map values) { + this.values = values; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java new file mode 100644 index 0000000..bf78d9c --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java @@ -0,0 +1,22 @@ +package org.onap.so.adapters.cnf.model; + +import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class ConfigurationRollbackEntity { + + // TODO + @JsonProperty(value = "anyOf") + private List anyOf; + + public List getAnyOf() { + return anyOf; + } + + public void setAnyOf(List anyOf) { + this.anyOf = anyOf; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java new file mode 100644 index 0000000..a2554d1 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java @@ -0,0 +1,53 @@ +package org.onap.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class ConnectivityInfo { + + @JsonProperty(value = "cloud-region") + private String cloudRegion; + + @JsonProperty(value = "cloud-owner") + private String cloudOwner; + + @JsonProperty(value = "kubeconfig") + private String kubeconfig; + + @JsonProperty(value = "other-connectivity-list") + private OtherConnectivityListEntity otherConnectivityListEntity; + + public String getCloudRegion() { + return cloudRegion; + } + + public void setCloudRegion(String cloudRegion) { + this.cloudRegion = cloudRegion; + } + + public String getCloudOwner() { + return cloudOwner; + } + + public void setCloudOwner(String cloudOwner) { + this.cloudOwner = cloudOwner; + } + + public OtherConnectivityListEntity getOtherConnectivityListEntity() { + return otherConnectivityListEntity; + } + + public void setOtherConnectivityListEntity(OtherConnectivityListEntity otherConnectivityListEntity) { + this.otherConnectivityListEntity = otherConnectivityListEntity; + } + + public String getKubeconfig() { + return kubeconfig; + } + + public void setKubeconfig(String kubeconfig) { + this.kubeconfig = kubeconfig; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java new file mode 100644 index 0000000..06cfdf1 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java @@ -0,0 +1,23 @@ +package org.onap.so.adapters.cnf.model; + +import java.util.Map; + +public class ConnectivityRecords { + + /* + * private String connectivityRecordName; private String fQDNOrIP; private String caCertToVerifyServer; private + * String sslInitiator; private String userName; private String password; private String privateKey; private String + * certToPresent; + */ + + private Map records; + + public Map getRecords() { + return records; + } + + public void setRecords(Map records) { + this.records = records; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java new file mode 100644 index 0000000..135adcc --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +public class ErrorResponse { + + private int status; + + private String error; + + private String message; + + public ErrorResponse(int status, String message) { + this.status = status; + this.message = message; + this.error = "Bad Request"; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getError() { + if (status == 500) { + this.error = "Internal Server Error"; + } + return error; + } + + public void setError(String error) { + this.error = error; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java new file mode 100644 index 0000000..bfa5505 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java @@ -0,0 +1,66 @@ + +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({"Group", "Version", "Kind"}) +public class GroupVersionKind { + @JsonProperty("Group") + private String group; + @JsonProperty("Version") + private String version; + @JsonProperty("Kind") + private String kind; + + @JsonProperty("Group") + public String getGroup() { + return group; + } + + @JsonProperty("Group") + public void setGroup(String group) { + this.group = group; + } + + @JsonProperty("Version") + public String getVersion() { + return version; + } + + @JsonProperty("Version") + public void setVersion(String version) { + this.version = version; + } + + @JsonProperty("Kind") + public String getKind() { + return kind; + } + + @JsonProperty("Kind") + public void setKind(String kind) { + this.kind = kind; + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java new file mode 100644 index 0000000..5804082 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(value = "true") +public class InstanceMiniResponse extends Response { + + private String id; + private MulticloudInstanceRequest request; + private String nameSpace; + + public InstanceMiniResponse(String errorMsg) { + super(errorMsg); + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public MulticloudInstanceRequest getRequest() { + return request; + } + + public void setRequest(MulticloudInstanceRequest request) { + this.request = request; + } + + public String getNameSpace() { + return nameSpace; + } + + public void setNameSpace(String nameSpace) { + this.nameSpace = nameSpace; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java new file mode 100644 index 0000000..ad70fbb --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java @@ -0,0 +1,45 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(value = "true") +public class InstanceMiniResponseList extends Response { + + public InstanceMiniResponseList(String errorMsg) { + super(errorMsg); + } + + private List instancList; + + public List getInstancList() { + return instancList; + } + + public void setInstancList(List instancList) { + this.instancList = instancList; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java new file mode 100644 index 0000000..ae63f86 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java @@ -0,0 +1,99 @@ + +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({"id", "request", "namespace", "release-name", "resources"}) +@JsonIgnoreProperties(value = "true") +public class InstanceResponse { + + @JsonProperty("id") + private String id; + + @JsonProperty("request") + private MulticloudInstanceRequest request; + + @JsonProperty("namespace") + private String namespace; + + @JsonProperty("release-name") + private String releaseName; + + @JsonProperty("resources") + private List resources; + + @JsonProperty("id") + public String getId() { + return id; + } + + @JsonProperty("id") + public void setId(String id) { + this.id = id; + } + + @JsonProperty("request") + public MulticloudInstanceRequest getRequest() { + return request; + } + + @JsonProperty("request") + public void setRequest(MulticloudInstanceRequest request) { + this.request = request; + } + + @JsonProperty("namespace") + public String getNamespace() { + return namespace; + } + + @JsonProperty("namespace") + public void setNamespace(String namespace) { + this.namespace = namespace; + } + + @JsonProperty("resources") + public List getResources() { + return resources; + } + + @JsonProperty("resources") + public void setResources(List resources) { + this.resources = resources; + } + + @JsonProperty("release-name") + public String getReleaseName() { + return releaseName; + } + + @JsonProperty("release-name") + public void setReleaseName(String releaseName) { + this.releaseName = releaseName; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java new file mode 100644 index 0000000..2472684 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java @@ -0,0 +1,84 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +import java.util.List; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(value = "true") +public class InstanceStatusResponse extends Response { + + public InstanceStatusResponse(String errorMsg) { + super(errorMsg); + } + + private MulticloudInstanceRequest request; + + private boolean ready; + + private String resourceCount; + + private List podStatuses; + + private List servicesStatuses; + + public MulticloudInstanceRequest getRequest() { + return request; + } + + public void setRequest(MulticloudInstanceRequest request) { + this.request = request; + } + + public boolean isReady() { + return ready; + } + + public void setReady(boolean ready) { + this.ready = ready; + } + + public String getResourceCount() { + return resourceCount; + } + + public void setResourceCount(String resourceCount) { + this.resourceCount = resourceCount; + } + + public List getPodStatuses() { + return podStatuses; + } + + public void setPodStatuses(List podStatuses) { + this.podStatuses = podStatuses; + } + + public List getServicesStatuses() { + return servicesStatuses; + } + + public void setServicesStatuses(List servicesStatuses) { + this.servicesStatuses = servicesStatuses; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java new file mode 100644 index 0000000..b1719cb --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java @@ -0,0 +1,87 @@ +package org.onap.so.adapters.cnf.model; + +import java.util.Map; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class MulticloudInstanceRequest { + + @JsonProperty(value = "cloud-region") + private String cloudRegion; + + @JsonProperty(value = "rb-name") + private String rbName; + + @JsonProperty(value = "rb-version") + private String rbVersion; + + @JsonProperty(value = "profile-name") + private String profileName; + + @JsonProperty(value = "labels") + private Map labels; + + @JsonProperty(value = "override-values") + private Map overrideValues; + + @JsonProperty(value = "release-name") + private String vfModuleUuid; + + public String getCloudRegion() { + return cloudRegion; + } + + public void setCloudRegion(String cloudRegion) { + this.cloudRegion = cloudRegion; + } + + public String getRbName() { + return rbName; + } + + public void setRbName(String rbName) { + this.rbName = rbName; + } + + public String getRbVersion() { + return rbVersion; + } + + public void setRbVersion(String rbVersion) { + this.rbVersion = rbVersion; + } + + public String getProfileName() { + return profileName; + } + + public void setProfileName(String profileName) { + this.profileName = profileName; + } + + public Map getLabels() { + return labels; + } + + public void setLabels(Map labels) { + this.labels = labels; + } + + public Map getOverrideValues() { + return overrideValues; + } + + public void setOverrideValues(Map overrideValues) { + this.overrideValues = overrideValues; + } + + public String getVfModuleUuid() { + return vfModuleUuid; + } + + public void setVfModuleUuid(String vfModuleUuid) { + this.vfModuleUuid = vfModuleUuid; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java new file mode 100644 index 0000000..dd10252 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java @@ -0,0 +1,23 @@ +package org.onap.so.adapters.cnf.model; + +import java.util.List; +import java.util.Map; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class OtherConnectivityListEntity { + + @JsonProperty(value = "connectivity-records") + private List> connectivityRecordsList; + + public List> getConnectivityRecordsList() { + return connectivityRecordsList; + } + + public void setConnectivityRecordsList(List> connectivityRecordsList) { + this.connectivityRecordsList = connectivityRecordsList; + } + + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java new file mode 100644 index 0000000..ed04601 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +public class PodStatus { + + private String name; + private String nameSpace; + private boolean ready; + private String status; + private String[] ipAddresses; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getNameSpace() { + return nameSpace; + } + + public void setNameSpace(String nameSpace) { + this.nameSpace = nameSpace; + } + + public boolean isReady() { + return ready; + } + + public void setReady(boolean ready) { + this.ready = ready; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public String[] getIpAddresses() { + return ipAddresses; + } + + public void setIpAddresses(String[] ipAddresses) { + this.ipAddresses = ipAddresses; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java new file mode 100644 index 0000000..875ef0d --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java @@ -0,0 +1,74 @@ +package org.onap.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class ProfileEntity { + + @JsonProperty(value = "rb-name") + private String rbName; + + @JsonProperty(value = "rb-version") + private String rbVersion; + + @JsonProperty(value = "profile-name") + private String profileName; + + @JsonProperty(value = "release-name") + private String releaseName; + + @JsonProperty(value = "namespace") + private String nameSpace; + + @JsonProperty(value = "kubernetes-version") + private String kubernetesVersion; + + public String getRbName() { + return rbName; + } + + public void setRbName(String rbName) { + this.rbName = rbName; + } + + public String getRbVersion() { + return rbVersion; + } + + public void setRbVersion(String rbVersion) { + this.rbVersion = rbVersion; + } + + public String getProfileName() { + return profileName; + } + + public void setProfileName(String profileName) { + this.profileName = profileName; + } + + public String getReleaseName() { + return releaseName; + } + + public void setReleaseName(String releaseName) { + this.releaseName = releaseName; + } + + public String getNameSpace() { + return nameSpace; + } + + public void setNameSpace(String nameSpace) { + this.nameSpace = nameSpace; + } + + public String getKubernetesVersion() { + return kubernetesVersion; + } + + public void setKubernetesVersion(String kubernetesVersion) { + this.kubernetesVersion = kubernetesVersion; + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Resource.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Resource.java new file mode 100644 index 0000000..d18cd76 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Resource.java @@ -0,0 +1,54 @@ + +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonPropertyOrder({"GVK", "Name"}) +public class Resource { + @JsonProperty("GVK") + private GroupVersionKind gVK; + @JsonProperty("Name") + private String name; + + @JsonProperty("GVK") + public GroupVersionKind getGVK() { + return gVK; + } + + @JsonProperty("GVK") + public void setGVK(GroupVersionKind gVK) { + this.gVK = gVK; + } + + @JsonProperty("Name") + public String getName() { + return name; + } + + @JsonProperty("Name") + public void setName(String name) { + this.name = name; + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java new file mode 100644 index 0000000..bc3a8ad --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java @@ -0,0 +1,65 @@ +package org.onap.so.adapters.cnf.model; + +import java.util.Map; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class ResourceBundleEntity { + + @JsonProperty(value = "rb-name") + private String rbName; + + @JsonProperty(value = "rb-version") + private String rbVersion; + + @JsonProperty(value = "chart-name") + private String chartName; + + @JsonProperty(value = "description") + private String description; + + @JsonProperty(value = "labels") + private Map labels; + + public String getRbName() { + return rbName; + } + + public void setRbName(String rbName) { + this.rbName = rbName; + } + + public String getRbVersion() { + return rbVersion; + } + + public void setRbVersion(String rbVersion) { + this.rbVersion = rbVersion; + } + + public String getChartName() { + return chartName; + } + + public void setChartName(String chartName) { + this.chartName = chartName; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Map getLabels() { + return labels; + } + + public void setLabels(Map labels) { + this.labels = labels; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Response.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Response.java new file mode 100644 index 0000000..4230223 --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Response.java @@ -0,0 +1,39 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; + +public class Response { + + private String errorMsg; + + public Response(String errorMsg) { + this.errorMsg = errorMsg; + } + + public String getErrorMsg() { + return errorMsg; + } + + public void setErrorMsg(String errorMsg) { + this.errorMsg = errorMsg; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Tag.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Tag.java new file mode 100644 index 0000000..70faefa --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/model/Tag.java @@ -0,0 +1,20 @@ +package org.onap.so.adapters.cnf.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(value = "true") +public class Tag { + + @JsonProperty(value = "tag-name") + private String tagName; + + public String getTagName() { + return tagName; + } + + public void setTagName(String tagName) { + this.tagName = tagName; + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java new file mode 100644 index 0000000..c69b63f --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java @@ -0,0 +1,677 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.rest; + +import java.io.File; +import java.io.IOException; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpDelete; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; +import org.apache.http.entity.mime.HttpMultipartMode; +import org.apache.http.entity.mime.MultipartEntityBuilder; +import org.apache.http.entity.mime.content.FileBody; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; +import org.onap.so.adapters.cnf.model.ConfigTemplateEntity; +import org.onap.so.adapters.cnf.model.ConfigurationEntity; +import org.onap.so.adapters.cnf.model.ConfigurationRollbackEntity; +import org.onap.so.adapters.cnf.model.ConnectivityInfo; +import org.onap.so.adapters.cnf.model.ProfileEntity; +import org.onap.so.adapters.cnf.model.ResourceBundleEntity; +import org.onap.so.adapters.cnf.model.Tag; +import org.onap.so.adapters.cnf.service.CnfAdapterService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; + +@RestController +public class CnfAdapterRest { + + private static final Logger logger = LoggerFactory.getLogger(CnfAdapterRest.class); + private final CloseableHttpClient httpClient = HttpClients.createDefault(); + + @Autowired + private CnfAdapterService cnfAdapterService; + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/healthcheck"}, method = RequestMethod.GET, + produces = "application/json") + public String healthCheck() throws Exception { + + logger.info("healthCheck called."); + return cnfAdapterService.healthCheck(); + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/instance"}, method = RequestMethod.POST, + produces = "application/json", consumes = "application/json") + public String createInstance(@RequestBody BpmnInstanceRequest bpmnInstanceRequest) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("createInstance called."); + return cnfAdapterService.createInstance(bpmnInstanceRequest); + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}"}, method = RequestMethod.GET, + produces = "application/json") + public String getInstanceByInstanceId(@PathVariable("instID") String instanceId) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("getInstanceByInstanceId called."); + + return cnfAdapterService.getInstanceByInstanceId(instanceId); + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}/status"}, method = RequestMethod.GET, + produces = "application/json") + public String getInstanceStatusByInstanceId(@PathVariable("instID") String instanceId) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("getInstanceStatusByInstanceId called."); + + return cnfAdapterService.getInstanceStatusByInstanceId(instanceId); + + } + + @RequestMapping(value = {"/api/cnf-adapter/v1/instance"}, method = RequestMethod.GET, produces = "application/json") + public String getInstanceByRBNameOrRBVersionOrProfileName( + @RequestParam(value = "rb-name", required = false) String rbName, + @RequestParam(value = "rb-version", required = false) String rbVersion, + @RequestParam(value = "profile-name", required = false) String profileName) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("getInstanceByRBNameOrRBVersionOrProfileName called."); + return cnfAdapterService.getInstanceByRBNameOrRBVersionOrProfileName(rbName, rbVersion, profileName); + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}"}, method = RequestMethod.DELETE, + produces = "application/json") + public String deleteInstanceByInstanceId(@PathVariable("instID") String instanceID) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("deleteInstanceByInstanceId called."); + return cnfAdapterService.deleteInstanceByInstanceId(instanceID); + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition"}, method = RequestMethod.POST, + produces = "application/json") + public String createRB(@RequestBody ResourceBundleEntity rB) throws Exception { + + logger.info("ResourceBundleEntity:" + rB.toString()); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition"); + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + String requestBody = objectMapper.writeValueAsString(rB); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}"}, method = RequestMethod.GET, + produces = "application/json") + public String getRB(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion) + throws Exception { + + logger.info("get RB called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion); + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}"}, method = RequestMethod.DELETE, + produces = "application/json") + public String deleteRB(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion) + throws Exception { + + logger.info("delete RB called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}"}, method = RequestMethod.GET, + produces = "application/json") + public String getListOfRB(@PathVariable("rb-name") String rbName) throws Exception { + + logger.info("getListOfRB called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition"}, method = RequestMethod.GET, + produces = "application/json") + public String getListOfRBWithoutUsingRBName() throws Exception { + + logger.info("getListOfRBWithoutUsingRBName called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition"); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/content"}, + method = RequestMethod.POST, produces = "multipart/form-data") + public String uploadArtifactForRB(@RequestParam("file") MultipartFile file, @PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion) throws Exception { + + logger.info("Upload Artifact For RB called."); + + File convFile = new File(file.getOriginalFilename()); + file.transferTo(convFile); + FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + builder.addPart("file", fileBody); + HttpEntity entity = builder.build(); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = + new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/content"); + post.setHeader("Content-Type", "multipart/form-data"); + logger.info(String.valueOf(post)); + post.setEntity(entity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile"}, + method = RequestMethod.POST, produces = "application/json") + public String createProfile(@RequestBody ProfileEntity fE, @PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion) throws Exception { + + logger.info("create Profile called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = + new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile"); + ObjectMapper objectMapper = new ObjectMapper(); + String requestBody = objectMapper.writeValueAsString(fE); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}"}, + method = RequestMethod.GET, produces = "application/json") + public String getProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, + @PathVariable("pr-name") String prName) throws Exception { + + logger.info("get Profile called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = new HttpGet( + "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile/" + prName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile"}, + method = RequestMethod.GET, produces = "application/json") + public String getListOfProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion) + throws Exception { + + logger.info("getListOfProfile called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = + new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile"); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}"}, + method = RequestMethod.DELETE, produces = "application/json") + public String deleteProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, + @PathVariable("pr-name") String prName) throws Exception { + + logger.info("delete Profile called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpDelete req = new HttpDelete( + "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile/" + prName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}/content"}, + method = RequestMethod.POST, produces = "multipart/form-data") + public String uploadArtifactForProfile(@RequestParam("file") MultipartFile file, + @PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, + @PathVariable("pr-name") String prName) throws Exception { + + logger.info("Upload Artifact For Profile called."); + + File convFile = new File(file.getOriginalFilename()); + file.transferTo(convFile); + FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + builder.addPart("file", fileBody); + HttpEntity entity = builder.build(); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + + "/profile/" + prName + "/content"); + post.setHeader("Content-Type", "multipart/form-data"); + + logger.info(String.valueOf(post)); + post.setEntity(entity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config"}, + method = RequestMethod.POST, produces = "application/json") + public String createConfiguration(@RequestBody ConfigurationEntity cE, @PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName) + throws Exception { + + logger.info("create Configuration called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + + "/profile/" + prName + "/config"); + ObjectMapper objectMapper = new ObjectMapper(); + String requestBody = objectMapper.writeValueAsString(cE); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping( + value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"}, + method = RequestMethod.GET, produces = "application/json") + public String getConfiguration(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, + @PathVariable("profile-name") String prName, @PathVariable("cfg-name") String cfgName) throws Exception { + + logger.info("get Configuration called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + "/profile/" + + prName + "/config/" + cfgName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping( + value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"}, + method = RequestMethod.DELETE, produces = "application/json") + public String deleteConfiguration(@PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName, + @PathVariable("cfg-name") String cfgName) throws Exception { + + logger.info("delete Configuration called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + + "/profile/" + prName + "/config/" + cfgName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + + } + + @ResponseBody + @RequestMapping( + value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"}, + method = RequestMethod.PUT, produces = "application/json") + public String updateConfiguration(@RequestBody ConfigurationEntity cE, @PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName, + @PathVariable("cfg-name") String cfgName) throws Exception { + + logger.info("update Configuration called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPut post = new HttpPut("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + "/profile/" + + prName + "/config/" + cfgName); + ObjectMapper objectMapper = new ObjectMapper(); + String requestBody = objectMapper.writeValueAsString(cE); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/tagit"}, + method = RequestMethod.POST, produces = "application/json") + public String tagConfigurationValue(@RequestBody Tag tag, @PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion, @PathVariable("pr-name") String prName) throws Exception { + logger.info("Tag Configuration called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + + "/profile/" + prName + "/config/tagit"); + + ObjectMapper objectMapper = new ObjectMapper(); + String requestBody = objectMapper.writeValueAsString(tag); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info"}, method = RequestMethod.POST, + produces = "application/json") + public String createConnectivityInfo(@RequestBody ConnectivityInfo cIE) throws Exception { + + logger.info("create ConnectivityInfo called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/connectivity-info"); + ObjectMapper objectMapper = new ObjectMapper(); + String requestBody = objectMapper.writeValueAsString(cIE); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info/{connname}"}, method = RequestMethod.GET, + produces = "application/json") + public String getConnectivityInfo(@PathVariable("connname") String connName) throws Exception { + + logger.info("get Connectivity Info called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/connectivity-info/" + connName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info/{connname}"}, method = RequestMethod.DELETE, + produces = "application/json") + public String deleteConnectivityInfo(@PathVariable("connname") String connName) throws Exception { + + logger.info("delete Connectivity Info called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/connectivity-info/" + connName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template"}, + method = RequestMethod.POST, produces = "application/json") + public String createConfigTemplate(@RequestBody ConfigTemplateEntity tE, @PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion) throws Exception { + + logger.info("createConfigTemplate called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost( + "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/config-template"); + ObjectMapper objectMapper = new ObjectMapper(); + String requestBody = objectMapper.writeValueAsString(tE); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}"}, + method = RequestMethod.GET, produces = "application/json") + public String getConfigTemplate(@PathVariable("rb-name") String rbName, + @PathVariable("rb-version") String rbVersion, @PathVariable("tname") String tName) throws Exception { + + logger.info("getConfigTemplate called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + + "/config-template/" + tName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}"}, + method = RequestMethod.DELETE, produces = "application/json") + public String deleteTemplate(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, + @PathVariable("tname") String tName) throws Exception { + + logger.info("deleteTemplate called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + + "/config-template/" + tName); + + try (CloseableHttpResponse response = httpClient.execute(req)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + + } + + @ResponseBody + @RequestMapping( + value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}/content"}, + method = RequestMethod.POST, produces = "multipart/form-data") + public String uploadTarFileForTemplate(@RequestParam("file") MultipartFile file, + @PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, + @PathVariable("tname") String tName) throws Exception { + + logger.info("uploadTarFileForTemplate called."); + + File convFile = new File(file.getOriginalFilename()); + file.transferTo(convFile); + FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY); + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); + builder.addPart("file", fileBody); + HttpEntity entity = builder.build(); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + + "/config-template/" + tName + "/content"); + post.setHeader("Content-Type", "multipart/form-data"); + + logger.info(String.valueOf(post)); + post.setEntity(entity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + + @ResponseBody + @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rbName}/{rbVersion}/profile/{prName}/config/rollback"}, + method = RequestMethod.DELETE, produces = "application/json") + public String rollbackConfiguration(@RequestBody ConfigurationRollbackEntity rE, + @PathVariable("rbName") String rbName, @PathVariable("rbVersion") String rbVersion, + @PathVariable("prName") String prName) throws Exception { + logger.info("rollbackConfiguration called."); + + // TODO + // Below URL should be changed as appropriate multicloud URL. + HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + + "/profile/" + prName + "/config/rollback"); + + ObjectMapper objectMapper = new ObjectMapper(); + String requestBody = objectMapper.writeValueAsString(rE); + StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); + post.setEntity(requestEntity); + + try (CloseableHttpClient httpClient = HttpClients.createDefault(); + CloseableHttpResponse response = httpClient.execute(post)) { + logger.info("response:" + response.getEntity()); + return EntityUtils.toString(response.getEntity()); + } + } + +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java new file mode 100644 index 0000000..a134bac --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java @@ -0,0 +1,251 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import javax.persistence.EntityNotFoundException; +import javax.ws.rs.core.UriBuilder; +import org.apache.http.HttpStatus; +import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; +import org.onap.so.adapters.cnf.model.MulticloudInstanceRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.client.HttpStatusCodeException; +import org.springframework.web.client.RestTemplate; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; + +@Service +public class CnfAdapterService { + private static final Logger logger = LoggerFactory.getLogger(CnfAdapterService.class); + @Autowired + private RestTemplate restTemplate; + private static final String INSTANCE_CREATE_PATH = "/v1/instance"; + private static final String HEALTH_CHECK = "/v1/healthcheck"; + + public String healthCheck() { + + logger.info("CnfAdapterService healthCheck called"); + ResponseEntity result = null; + try { + + // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: + // This needs to be added as well + // for configuration + String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? + String endpoint = UriBuilder.fromUri(uri).path(HEALTH_CHECK).build().toString(); + HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); + result = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class); + return result.getBody(); + } catch (HttpClientErrorException e) { + logger.error("Error Calling Multicloud, e"); + if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { + throw new EntityNotFoundException(e.getResponseBodyAsString()); + } + throw e; + } catch (HttpStatusCodeException e) { + logger.error("Error in Multicloud, e"); + throw e; + } + } + + public String createInstance(BpmnInstanceRequest bpmnInstanceRequest) + throws JsonParseException, JsonMappingException, IOException { + try { + logger.info("CnfAdapterService createInstance called"); + MulticloudInstanceRequest multicloudInstanceRequest = new MulticloudInstanceRequest(); + ResponseEntity instanceResponse = null; + if (bpmnInstanceRequest.getK8sRBProfileName() != null) { + multicloudInstanceRequest.setCloudRegion(bpmnInstanceRequest.getCloudRegionId()); + multicloudInstanceRequest.setLabels(bpmnInstanceRequest.getLabels()); + multicloudInstanceRequest.setOverrideValues(bpmnInstanceRequest.getOverrideValues()); + multicloudInstanceRequest.setProfileName(bpmnInstanceRequest.getK8sRBProfileName()); + multicloudInstanceRequest.setRbName(bpmnInstanceRequest.getModelInvariantId()); + multicloudInstanceRequest.setRbVersion(bpmnInstanceRequest.getModelVersionId()); + multicloudInstanceRequest.setVfModuleUuid(bpmnInstanceRequest.getVfModuleUUID()); + } else { + logger.error("k8sProfileName should not be null"); + // return instanceResponse; + } + // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: + // This needs to be added as well + // for configuration + String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? + String endpoint = UriBuilder.fromUri(uri).path(INSTANCE_CREATE_PATH).build().toString(); + HttpEntity entity = getHttpEntity(multicloudInstanceRequest); + instanceResponse = restTemplate.exchange(endpoint, HttpMethod.POST, entity, String.class); + return instanceResponse.getBody(); + } catch (HttpClientErrorException e) { + logger.error("Error Calling Multicloud, e"); + if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { + throw new EntityNotFoundException(e.getResponseBodyAsString()); + } + throw e; + } catch (HttpStatusCodeException e) { + logger.error("Error in Multicloud, e"); + throw e; + } + } + + public String getInstanceByInstanceId(String instanceId) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("CnfAdapterService getInstanceByInstanceId called"); + ResponseEntity instanceResponse = null; + try { + + // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: + // This needs to be added as well + // for configuration + String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? + String path = "/v1/instance/" + instanceId; + String endpoint = UriBuilder.fromUri(uri).path(path).build().toString(); + HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); + instanceResponse = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class); + return instanceResponse.getBody(); + } catch (HttpClientErrorException e) { + logger.error("Error Calling Multicloud, e"); + if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { + throw new EntityNotFoundException(e.getResponseBodyAsString()); + } + throw e; + } catch (HttpStatusCodeException e) { + logger.error("Error in Multicloud, e"); + throw e; + } + } + + public String getInstanceStatusByInstanceId(String instanceId) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("CnfAdapterService getInstanceStatusByInstanceId called"); + ResponseEntity instanceResponse = null; + try { + + // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: + // This needs to be added as well + // for configuration + String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? + String path = "/v1/instance/" + instanceId + "/status"; + String endpoint = UriBuilder.fromUri(uri).path(path).build().toString(); + HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); + instanceResponse = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class); + return instanceResponse.getBody(); + } catch (HttpClientErrorException e) { + logger.error("Error Calling Multicloud, e"); + if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { + throw new EntityNotFoundException(e.getResponseBodyAsString()); + } + throw e; + } catch (HttpStatusCodeException e) { + logger.error("Error in Multicloud, e"); + throw e; + } + + } + + public String getInstanceByRBNameOrRBVersionOrProfileName(String rbName, String rbVersion, String profileName) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("CnfAdapterService getInstanceByRBNameOrRBVersionOrProfileName called"); + ResponseEntity instanceMiniResponseList = null; + try { + + // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: + // This needs to be added as well + // for configuration + String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? + String path = + "/v1/instance" + "?rb-name=" + rbName + "&rb-version=" + rbVersion + "&profile-name=" + profileName; + String endPoint = uri + path; + HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); + instanceMiniResponseList = restTemplate.exchange(endPoint, HttpMethod.GET, requestEntity, String.class); + return instanceMiniResponseList.getBody(); + } catch (HttpClientErrorException e) { + logger.error("Error Calling Multicloud, e"); + if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { + throw new EntityNotFoundException(e.getResponseBodyAsString()); + } + throw e; + } catch (HttpStatusCodeException e) { + logger.error("Error in Multicloud, e"); + throw e; + } + } + + public String deleteInstanceByInstanceId(String instanceId) + throws JsonParseException, JsonMappingException, IOException { + + logger.info("CnfAdapterService deleteInstanceByInstanceId called"); + ResponseEntity result = null; + try { + + // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: + // This needs to be added as well + // for configuration + String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? + String path = "/v1/instance/" + instanceId; + String endpoint = UriBuilder.fromUri(uri).path(path).build().toString(); + HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); + result = restTemplate.exchange(endpoint, HttpMethod.DELETE, requestEntity, String.class); + return result.getBody(); + } catch (HttpClientErrorException e) { + logger.error("Error Calling Multicloud, e"); + if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { + throw new EntityNotFoundException(e.getResponseBodyAsString()); + } + throw e; + } catch (HttpStatusCodeException e) { + logger.error("Error in Multicloud, e"); + throw e; + } + } + + protected HttpHeaders getHttpHeaders() { + HttpHeaders headers = new HttpHeaders(); + List acceptableMediaTypes = new ArrayList<>(); + acceptableMediaTypes.add(MediaType.APPLICATION_JSON); + headers.setAccept(acceptableMediaTypes); + headers.setContentType(MediaType.APPLICATION_JSON); + /* + * try { String userCredentials = CryptoUtils.decrypt(env.getRequiredProperty("mso.cnf.adapter.auth"), + * env.getRequiredProperty("mso.msoKey")); if (userCredentials != null) { headers.add(HttpHeaders.AUTHORIZATION, + * "Basic " + DatatypeConverter.printBase64Binary(userCredentials.getBytes())); } } catch + * (GeneralSecurityException e) { logger.error("Security exception", e); } + */ + return headers; + } + + protected HttpEntity getHttpEntity(MulticloudInstanceRequest request) { + HttpHeaders headers = getHttpHeaders(); + return new HttpEntity<>(request, headers); + } +} diff --git a/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java new file mode 100644 index 0000000..25e506c --- /dev/null +++ b/so-cnf-adapter-application/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java @@ -0,0 +1,94 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.util; + +import com.fasterxml.jackson.databind.ObjectMapper; +import java.io.IOException; +import org.onap.so.adapters.cnf.exceptions.ApplicationException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.onap.logging.filter.base.ErrorCode; +import static org.onap.so.logger.LoggingAnchor.THREE; +import static org.onap.so.logger.MessageEnum.RA_NS_EXC; + +public class CNfAdapterUtil { + + private static final Logger LOGGER = LoggerFactory.getLogger(CNfAdapterUtil.class); + + public static final int BAD_REQUEST = 400; + + private static final String UNMARSHAL_FAIL_MSG = "Failed to unmarshal json"; + + private static final String MARSHAL_FAIL_MSG = "Failed to marshal object"; + + private static final ObjectMapper MAPPER = new ObjectMapper(); + + public static class StatusDesc { + + public static final String ALLOCATE_NSS_SUCCESS = "Allocating nss is " + "successful"; + + public static final String CREATE_NSS_SUCCESS = "Creating nss is " + "successful"; + + public static final String DEALLOCATE_NSS_SUCCESS = "Deallocate nss " + "is successful"; + + public static final String ACTIVATE_NSS_SUCCESS = "Activate nss " + "is successful"; + + public static final String DEACTIVATE_NSS_SUCCESS = "Deactivate nss " + "is successful"; + + public static final String QUERY_JOB_STATUS_FAILED = "Query job " + "status failed"; + + public static final String QUERY_JOB_STATUS_SUCCESS = "Query job " + "status is successful"; + + private StatusDesc() { + + } + } + + private CNfAdapterUtil() { + + } + + public static void assertObjectNotNull(Object object) throws ApplicationException { + if (null == object) { + LOGGER.error("Object is null."); + throw new ApplicationException(BAD_REQUEST, "An object is null."); + } + } + + public static T unMarshal(String jsonstr, Class type) throws ApplicationException { + try { + return MAPPER.readValue(jsonstr, type); + } catch (IOException e) { + LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), UNMARSHAL_FAIL_MSG, e); + throw new ApplicationException(BAD_REQUEST, UNMARSHAL_FAIL_MSG); + } + } + + public static String marshal(Object srcObj) throws ApplicationException { + try { + return MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(srcObj); + } catch (IOException e) { + LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), MARSHAL_FAIL_MSG, e); + throw new ApplicationException(BAD_REQUEST, MARSHAL_FAIL_MSG); + } + } + +} diff --git a/so-cnf-adapter-application/src/main/resources/META-INF/services/org.onap.so.client.RestProperties b/so-cnf-adapter-application/src/main/resources/META-INF/services/org.onap.so.client.RestProperties new file mode 100644 index 0000000..bccd43a --- /dev/null +++ b/so-cnf-adapter-application/src/main/resources/META-INF/services/org.onap.so.client.RestProperties @@ -0,0 +1 @@ +org.onap.so.adapters.cnf.extclients.aai.AaiClientPropertiesImpl \ No newline at end of file diff --git a/so-cnf-adapter-application/src/main/resources/application.yaml b/so-cnf-adapter-application/src/main/resources/application.yaml new file mode 100644 index 0000000..5a9adbf --- /dev/null +++ b/so-cnf-adapter-application/src/main/resources/application.yaml @@ -0,0 +1,61 @@ +# +# ============LICENSE_START======================================================= +# ONAP - SO +# ================================================================================ +# Copyright (C) 2020 Huawei Technologies Co., Ltd. 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========================================================= +#/ +#aai: +# auth: 2A11B07DB6214A839394AA1EC5844695F5114FC407FF5422625FB00175A3DCB8A1FF745F22867EFA72D5369D599BBD88DA8BED4233CF5586 +# endpoint: https://aai.onap:30233 +#logging: +# path: logs + +#spring: +# datasource: + # driver-class-name: org.mariadb.jdbc.Driver +# jdbcUrl: jdbc:mariadb://192.168.235.44:30444/requestdb + # username: root + # password: secretpassword + + # jpa: + # show-sql: false + # hibernate: + # dialect: org.hibernate.dialect.MySQL5Dialect + # ddl-auto: validate + # naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy + # enable-lazy-load-no-trans: true +server: + port: 9012 + tomcat: + max-threads: 50 + +#mso: + # key: 07a7159d3bf51a0e53be7a8f89699be7 + # site-name: localSite +# logPath: ./logs/cnf + # msb-ip: msb-iag.{{ include "common.namespace" . }} + # msb-port: 80 + # adapters: + # requestDb: + # endpoint: https://so-request-db-adapter.{{ include "common.namespace" . }}:8083 + # auth: Basic YnBlbDpwYXNzd29yZDEk + +#Actuator +#management: +# security: + # enabled: false + # basic: +# enabled: false \ No newline at end of file diff --git a/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java b/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java new file mode 100644 index 0000000..ee7a771 --- /dev/null +++ b/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java @@ -0,0 +1,63 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - SO + * ================================================================================ + * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import java.util.HashMap; +import java.util.Map; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; +import org.onap.so.adapters.cnf.rest.CnfAdapterRest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +public class CnfAdapterRestTest { + + @InjectMocks + CnfAdapterRest cnfAdapterRest; + + @Test + public void createInstanceTest() throws Exception { + + Map labels = new HashMap(); + labels.put("custom-label-1", "label1"); + Map overrideValues = new HashMap(); + labels.put("image.tag", "latest"); + labels.put("dcae_collector_ip", "1.2.3.4"); + BpmnInstanceRequest bpmnInstanceRequest = new BpmnInstanceRequest(); + bpmnInstanceRequest.setCloudRegionId("v1"); + bpmnInstanceRequest.setLabels(labels); + bpmnInstanceRequest.setModelInvariantId("krd"); + bpmnInstanceRequest.setModelVersionId("p1"); + bpmnInstanceRequest.setOverrideValues(overrideValues); + bpmnInstanceRequest.setVfModuleUUID("20200824"); + + String mockedResponse = "K8sRBProfileName is required"; + String actualResponse = cnfAdapterRest.createInstance(bpmnInstanceRequest); + assertNotNull(actualResponse); + assertEquals(mockedResponse, actualResponse); + } + +} +*/ diff --git a/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java b/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java new file mode 100644 index 0000000..30197bc --- /dev/null +++ b/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java @@ -0,0 +1,106 @@ +// TODO +/* + * + * ============LICENSE_START==================================================== === ONAP - SO + * ============================================================================= === Copyright (C) 2020 Huawei + * Technologies Co., Ltd. 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.so.adapters.cnf.rest; + * + * + * import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import + * org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import + * org.mockito.Mock; import org.mockito.Mockito; import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; import + * org.onap.so.adapters.cnf.model.InstanceMiniResponse; import org.onap.so.adapters.cnf.model.InstanceMiniResponseList; + * import org.onap.so.adapters.cnf.model.InstanceResponse; import org.onap.so.adapters.cnf.model.InstanceStatusResponse; + * import org.onap.so.adapters.cnf.model.MulticloudInstanceRequest; import org.onap.so.adapters.cnf.model.Resource; + * import org.onap.so.adapters.cnf.service.CnfAdapterService; import org.springframework.http.HttpStatus; import + * org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner; + * + * + * @RunWith(SpringRunner.class) public class CnfAdapterRestTest { + * + * @InjectMocks CnfAdapterRest cnfAdapterRest; + * + * @Mock CnfAdapterService cnfAdapterService; + * + * @Mock ResponseEntity instacneMiniResponseList; + * + * @Mock ResponseEntity instanceStatusResponse; + * + * @Test public void healthCheckTest() throws Exception { + * + * ResponseEntity response = new ResponseEntity(HttpStatus.OK); CnfAdapterService cnfAdapterService = + * Mockito.mock(CnfAdapterService.class); Mockito.when(cnfAdapterService.healthCheck()).thenReturn(response); + * cnfAdapterRest.healthCheck(); Assert.assertNotNull(response); Assert.assertEquals(HttpStatus.OK, + * response.getStatusCode()); } + * + * @Test public void createInstanceTest() throws Exception { + * + * Map labels = new HashMap(); labels.put("custom-label-1", "label1"); Map overrideValues = new HashMap(); labels.put("image.tag", "latest"); + * labels.put("dcae_collector_ip", "1.2.3.4"); BpmnInstanceRequest bpmnInstanceRequest = new BpmnInstanceRequest(); + * bpmnInstanceRequest.setCloudRegionId("v1"); bpmnInstanceRequest.setLabels(labels); + * bpmnInstanceRequest.setModelInvariantId("krd"); bpmnInstanceRequest.setModelVersionId("p1"); + * bpmnInstanceRequest.setOverrideValues(overrideValues); bpmnInstanceRequest.setVfModuleUUID("20200824"); + * List resourceList = new ArrayList(); InstanceResponse instanceResponse = new InstanceResponse(); + * instanceResponse.setId("123"); instanceResponse.setNamespace("testNamespace"); instanceResponse.setRequest(new + * MulticloudInstanceRequest()); instanceResponse.setResources(resourceList); String createInstanceResponse = new + * ResponseEntity(instanceResponse, HttpStatus.CREATED); CnfAdapterService cnfAdapterService = + * Mockito.mock(CnfAdapterService.class); Mockito.when(cnfAdapterService.createInstance(bpmnInstanceRequest)). + * thenReturn(createInstanceResponse); cnfAdapterRest.createInstance(bpmnInstanceRequest); + * Assert.assertNotNull(createInstanceResponse); Assert.assertEquals(HttpStatus.CREATED, + * createInstanceResponse.getStatusCode()); } + * + * @Test public void getInstanceByInstanceIdTest() throws Exception { + * + * String instanceId = "123"; String createInstanceResponse = new ResponseEntity(HttpStatus.OK); + * CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); + * Mockito.when(cnfAdapterService.getInstanceByInstanceId(instanceId)). thenReturn(createInstanceResponse); + * cnfAdapterRest.getInstanceByInstanceId(instanceId); Assert.assertNotNull(createInstanceResponse); + * Assert.assertEquals(HttpStatus.OK, createInstanceResponse.getStatusCode()); } + * + * @Test public void deleteInstanceByInstanceIdTest() throws Exception { + * + * String instanceId = "123"; ResponseEntity response = new ResponseEntity(HttpStatus.OK); + * CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); + * Mockito.when(cnfAdapterService.deleteInstanceByInstanceId(instanceId)). thenReturn(response); + * cnfAdapterRest.deleteInstanceByInstanceId(instanceId); Assert.assertNotNull(response); + * Assert.assertEquals(HttpStatus.OK, response.getStatusCode()); } + * + * @Test public void getInstanceStatusByInstanceIdTest() throws Exception { + * + * String instanceId = "123"; instanceStatusResponse = new ResponseEntity(HttpStatus.OK); + * CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); + * Mockito.when(cnfAdapterService.getInstanceStatusByInstanceId(instanceId)). thenReturn(instanceStatusResponse); + * cnfAdapterRest.getInstanceStatusByInstanceId(instanceId); Assert.assertNotNull(instanceStatusResponse); + * Assert.assertEquals(HttpStatus.OK, instanceStatusResponse.getStatusCode()); } + * + * @Test public void getInstanceByRBNameOrRBVersionOrProfileNameTest() throws Exception { + * + * String rbName = "xyz"; String rbVersion = "v1"; String profileName = "p1"; InstanceMiniResponse instanceMiniResponse + * = new InstanceMiniResponse(HttpStatus.OK.toString()); List instancList = new + * ArrayList(); instancList.add(instanceMiniResponse); InstanceMiniResponseList + * instanceMiniRespList = new InstanceMiniResponseList(HttpStatus.OK.toString()); + * instanceMiniRespList.setInstancList(instancList); instanceMiniRespList.setErrorMsg(HttpStatus.OK.toString()); + * ResponseEntity respone = new ResponseEntity(instanceMiniRespList, + * HttpStatus.OK); CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); + * Mockito.when(cnfAdapterService.getInstanceByRBNameOrRBVersionOrProfileName( rbName, rbVersion, profileName)) + * .thenReturn(instacneMiniResponseList); cnfAdapterRest.getInstanceByRBNameOrRBVersionOrProfileName(rbName, rbVersion, + * profileName); Assert.assertNotNull(instacneMiniResponseList); Assert.assertEquals(HttpStatus.OK.toString(), + * instanceMiniRespList.getErrorMsg()); } + * + * } + * + */ diff --git a/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java b/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java new file mode 100644 index 0000000..e114f44 --- /dev/null +++ b/so-cnf-adapter-application/src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java @@ -0,0 +1,104 @@ +// TODO +/* + * package org.onap.so.adapters.cnf.service; + * + * import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; + * import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.Mockito; import + * org.onap.so.adapters.cnf.model.BpmnInstanceRequest; import org.onap.so.adapters.cnf.model.InstanceMiniResponseList; + * import org.onap.so.adapters.cnf.model.InstanceResponse; import org.onap.so.adapters.cnf.model.InstanceStatusResponse; + * import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import + * org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import + * org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; + * + * @RunWith(SpringRunner.class) public class CnfAdapterServiceTest { + * + * @InjectMocks CnfAdapterService cnfAdapterService; + * + * @Mock ResponseEntity createInstanceResponse; + * + * @Mock ResponseEntity instacneMiniResponseList; + * + * @Mock ResponseEntity instanceStatusResponse; + * + * @Mock private RestTemplate restTemplate; + * + * @Test public void healthCheckTest() throws Exception { + * + * ResponseEntity response = new ResponseEntity(HttpStatus.OK); + * + * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), + * Matchers.>any(), Matchers.>any())).thenReturn(response); + * + * ResponseEntity actualResponse = cnfAdapterService.healthCheck(); Assert.assertNotNull(actualResponse); + * Assert.assertEquals(HttpStatus.OK, actualResponse.getStatusCode()); + * + * } + * + * @Test public void createInstanceTest() throws Exception { + * + * ResponseEntity response = new ResponseEntity(HttpStatus.OK); BpmnInstanceRequest + * bpmnInstanceRequest = new BpmnInstanceRequest(); bpmnInstanceRequest.setK8sRBProfileName("k8sRBProfileName"); + * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), + * Matchers.>any(), Matchers.>any())).thenReturn(response); + * + * ResponseEntity actualResponse = cnfAdapterService.createInstance(bpmnInstanceRequest); + * Assert.assertNotNull(response); Assert.assertEquals(actualResponse.getStatusCode(), response.getStatusCode()); + * + * } + * + * @Test public void createInstanceExceptionTest() throws Exception { + * + * BpmnInstanceRequest bpmnInstanceRequest = new BpmnInstanceRequest(); ResponseEntity response = + * cnfAdapterService.createInstance(bpmnInstanceRequest); Assert.assertNull(response); + * + * } + * + * @Test public void getInstanceByInstanceIdTest() throws Exception { + * + * ResponseEntity response = new ResponseEntity(HttpStatus.OK); String instanceId = + * "123"; Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), + * Matchers.>any(), Matchers.>any())).thenReturn(response); + * + * ResponseEntity actualResponse = cnfAdapterService.getInstanceByInstanceId(instanceId); + * Assert.assertNotNull(actualResponse); Assert.assertEquals(HttpStatus.OK, actualResponse.getStatusCode()); + * + * } + * + * @Test public void getInstanceStatusByInstanceIdTest() throws Exception { + * + * ResponseEntity response = new ResponseEntity(HttpStatus.OK); String + * instanceId = "123"; Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), + * Matchers.>any(), Matchers.>any())).thenReturn(response); + * + * ResponseEntity actualResponse = cnfAdapterService .getInstanceStatusByInstanceId(instanceId); + * Assert.assertNotNull(actualResponse); Assert.assertEquals(HttpStatus.OK, response.getStatusCode()); + * + * } + * + * @Test public void getInstanceByRBNameOrRBVersionOrProfileNameTest() throws Exception { + * + * ResponseEntity response = new ResponseEntity(HttpStatus.OK); + * String rbName = "xyz"; String rbVersion = "v1"; String profileName = "p1"; + * + * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), + * Matchers.>any(), Matchers.>any())).thenReturn(response); + * + * ResponseEntity actualResponse = cnfAdapterService + * .getInstanceByRBNameOrRBVersionOrProfileName(rbName, rbVersion, profileName); Assert.assertNotNull(actualResponse); + * Assert.assertEquals(HttpStatus.OK, actualResponse.getStatusCode()); + * + * } + * + * @Test public void deleteInstanceByInstanceIdTest() throws Exception { + * + * ResponseEntity response = new ResponseEntity(HttpStatus.OK); String instanceId = "123"; + * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), + * Matchers.>any(), Matchers.>any())).thenReturn(response); + * + * ResponseEntity actualResponse = cnfAdapterService.deleteInstanceByInstanceId(instanceId); + * Assert.assertNotNull(response); Assert.assertEquals(HttpStatus.OK, response.getStatusCode()); + * + * } + * + * } + */ diff --git a/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java b/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java deleted file mode 100644 index 0ba40e2..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/MSOCnfApplication.java +++ /dev/null @@ -1,52 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; -import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; -import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration; -import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; -import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.client.RestTemplate; - -@SpringBootApplication -@ComponentScan(basePackages = {"org.onap.so.adapters.cnf"}) -@EnableAutoConfiguration(exclude = {LiquibaseAutoConfiguration.class, HibernateJpaAutoConfiguration.class, - DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, - SecurityAutoConfiguration.class}) -@Configuration -public class MSOCnfApplication { - - public static void main(String... args) { - SpringApplication.run(MSOCnfApplication.class, args); - } - - @Bean - public RestTemplate restTemplate() { - return new RestTemplate(); - } -} diff --git a/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java b/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java deleted file mode 100644 index 03bfd54..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/WebSecurityConfig.java +++ /dev/null @@ -1,35 +0,0 @@ - -package org.onap.so.adapters.cnf; -/* - * ============LICENSE_START==================================================== === ONAP - SO - * ============================================================================= === Copyright (C) 2020 Huawei - * Technologies Co., Ltd. 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====================================================== === - * - */ - -import org.springframework.context.annotation.Configuration; -import org.springframework.security.config.annotation.web.builders.HttpSecurity; -import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; -import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; - -@EnableWebSecurity - -@Configuration -public class WebSecurityConfig extends WebSecurityConfigurerAdapter { - - @Override - protected void configure(HttpSecurity http) throws Exception { - http.csrf().disable(); - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java b/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java deleted file mode 100644 index c950cf6..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/exceptions/ApplicationException.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.exceptions; - -import static org.onap.so.adapters.cnf.util.CNfAdapterUtil.marshal; -import org.onap.so.adapters.cnf.model.ErrorResponse; -import org.springframework.http.ResponseEntity; - -public class ApplicationException extends Exception { - - private static final long serialVersionUID = 1L; - - private int errorCode; - - private String errorMsg; - - public ApplicationException(int errorCode, String errorMsg) { - this.errorCode = errorCode; - this.errorMsg = errorMsg; - } - - public int getErrorCode() { - return errorCode; - } - - public void setErrorCode(int errorCode) { - this.errorCode = errorCode; - } - - public String getErrorMsg() { - return errorMsg; - } - - public void setErrorMsg(String errorMsg) { - this.errorMsg = errorMsg; - } - - public ResponseEntity buildErrorResponse() { - String message; - try { - ErrorResponse err = new ErrorResponse(errorCode, errorMsg); - message = marshal(err); - } catch (ApplicationException e) { - return ResponseEntity.status(500).body("Internal Server Error"); - } - return ResponseEntity.status(errorCode).body(message); - } -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java b/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java deleted file mode 100644 index 2e76d51..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/BpmnInstanceRequest.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class BpmnInstanceRequest { - - @JsonProperty(value = "modelInvariantId") - private String modelInvariantId; - - @JsonProperty(value = "modelVersionId") - private String modelVersionId; - - @JsonProperty(value = "k8sRBProfileName") - private String k8sRBProfileName; - - @JsonProperty(value = "cloudRegionId") - private String cloudRegionId; - - @JsonProperty(value = "vfModuleUUID") - private String vfModuleUUID; - - @JsonProperty(value = "labels") - private Map labels; - - @JsonProperty(value = "overrideValues") - private Map overrideValues; - - public String getModelInvariantId() { - return modelInvariantId; - } - - public void setModelInvariantId(String modelInvariantId) { - this.modelInvariantId = modelInvariantId; - } - - public String getModelVersionId() { - return modelVersionId; - } - - public void setModelVersionId(String modelVersionId) { - this.modelVersionId = modelVersionId; - } - - public String getK8sRBProfileName() { - return k8sRBProfileName; - } - - public void setK8sRBProfileName(String k8sRBProfileName) { - this.k8sRBProfileName = k8sRBProfileName; - } - - public String getCloudRegionId() { - return cloudRegionId; - } - - public void setCloudRegionId(String cloudRegionId) { - this.cloudRegionId = cloudRegionId; - } - - public String getVfModuleUUID() { - return vfModuleUUID; - } - - public void setVfModuleUUID(String vfModuleUUID) { - this.vfModuleUUID = vfModuleUUID; - } - - public Map getLabels() { - return labels; - } - - public void setLabels(Map labels) { - this.labels = labels; - } - - public Map getOverrideValues() { - return overrideValues; - } - - public void setOverrideValues(Map overrideValues) { - this.overrideValues = overrideValues; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Config.java b/src/main/java/org/onap/so/adapters/cnf/model/Config.java deleted file mode 100644 index b901a39..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/Config.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class Config { - - @JsonProperty(value = "config-version") - private String configVersion; - - @JsonProperty(value = "config-tag") - private String configTag; - - public Object getConfigVersion() { - return configVersion; - } - - public void setConfigVersion(String configVersion) { - this.configVersion = configVersion; - } - - public Object getConfigTag() { - return configTag; - } - - public void setConfigTag(String configTag) { - this.configTag = configTag; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java deleted file mode 100644 index 2ed35b8..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ConfigTemplateEntity.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class ConfigTemplateEntity { - - @JsonProperty(value = "template-name") - private String templateName; - - @JsonProperty(value = "description") - private String description; - - @JsonProperty(value = "chart-name") - private String chartName; - - public String getTemplateName() { - return templateName; - } - - public void setTemplateName(String templateName) { - this.templateName = templateName; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public String getChartName() { - return chartName; - } - - public void setChartName(String chartName) { - this.chartName = chartName; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java deleted file mode 100644 index 7f6ae86..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationEntity.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class ConfigurationEntity { - - @JsonProperty(value = "template-name") - private String templateName; - - @JsonProperty(value = "config-name") - private String configName; - - @JsonProperty(value = "description") - private String description; - - @JsonProperty(value = "values") - private Map values; - - public String getTemplateName() { - return templateName; - } - - public void setTemplateName(String templateName) { - this.templateName = templateName; - } - - public String getConfigName() { - return configName; - } - - public void setConfigName(String configName) { - this.configName = configName; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Map getValues() { - return values; - } - - public void setValues(Map values) { - this.values = values; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java deleted file mode 100644 index bf78d9c..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ConfigurationRollbackEntity.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import java.util.List; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class ConfigurationRollbackEntity { - - // TODO - @JsonProperty(value = "anyOf") - private List anyOf; - - public List getAnyOf() { - return anyOf; - } - - public void setAnyOf(List anyOf) { - this.anyOf = anyOf; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java b/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java deleted file mode 100644 index a2554d1..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityInfo.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class ConnectivityInfo { - - @JsonProperty(value = "cloud-region") - private String cloudRegion; - - @JsonProperty(value = "cloud-owner") - private String cloudOwner; - - @JsonProperty(value = "kubeconfig") - private String kubeconfig; - - @JsonProperty(value = "other-connectivity-list") - private OtherConnectivityListEntity otherConnectivityListEntity; - - public String getCloudRegion() { - return cloudRegion; - } - - public void setCloudRegion(String cloudRegion) { - this.cloudRegion = cloudRegion; - } - - public String getCloudOwner() { - return cloudOwner; - } - - public void setCloudOwner(String cloudOwner) { - this.cloudOwner = cloudOwner; - } - - public OtherConnectivityListEntity getOtherConnectivityListEntity() { - return otherConnectivityListEntity; - } - - public void setOtherConnectivityListEntity(OtherConnectivityListEntity otherConnectivityListEntity) { - this.otherConnectivityListEntity = otherConnectivityListEntity; - } - - public String getKubeconfig() { - return kubeconfig; - } - - public void setKubeconfig(String kubeconfig) { - this.kubeconfig = kubeconfig; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java b/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java deleted file mode 100644 index 06cfdf1..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ConnectivityRecords.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import java.util.Map; - -public class ConnectivityRecords { - - /* - * private String connectivityRecordName; private String fQDNOrIP; private String caCertToVerifyServer; private - * String sslInitiator; private String userName; private String password; private String privateKey; private String - * certToPresent; - */ - - private Map records; - - public Map getRecords() { - return records; - } - - public void setRecords(Map records) { - this.records = records; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java deleted file mode 100644 index 135adcc..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ErrorResponse.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -public class ErrorResponse { - - private int status; - - private String error; - - private String message; - - public ErrorResponse(int status, String message) { - this.status = status; - this.message = message; - this.error = "Bad Request"; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public String getError() { - if (status == 500) { - this.error = "Internal Server Error"; - } - return error; - } - - public void setError(String error) { - this.error = error; - } - - public String getMessage() { - return message; - } - - public void setMessage(String message) { - this.message = message; - } -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java b/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java deleted file mode 100644 index bfa5505..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/GroupVersionKind.java +++ /dev/null @@ -1,66 +0,0 @@ - -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({"Group", "Version", "Kind"}) -public class GroupVersionKind { - @JsonProperty("Group") - private String group; - @JsonProperty("Version") - private String version; - @JsonProperty("Kind") - private String kind; - - @JsonProperty("Group") - public String getGroup() { - return group; - } - - @JsonProperty("Group") - public void setGroup(String group) { - this.group = group; - } - - @JsonProperty("Version") - public String getVersion() { - return version; - } - - @JsonProperty("Version") - public void setVersion(String version) { - this.version = version; - } - - @JsonProperty("Kind") - public String getKind() { - return kind; - } - - @JsonProperty("Kind") - public void setKind(String kind) { - this.kind = kind; - } -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java deleted file mode 100644 index 5804082..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponse.java +++ /dev/null @@ -1,62 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(value = "true") -public class InstanceMiniResponse extends Response { - - private String id; - private MulticloudInstanceRequest request; - private String nameSpace; - - public InstanceMiniResponse(String errorMsg) { - super(errorMsg); - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public MulticloudInstanceRequest getRequest() { - return request; - } - - public void setRequest(MulticloudInstanceRequest request) { - this.request = request; - } - - public String getNameSpace() { - return nameSpace; - } - - public void setNameSpace(String nameSpace) { - this.nameSpace = nameSpace; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java deleted file mode 100644 index ad70fbb..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/InstanceMiniResponseList.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -import java.util.List; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(value = "true") -public class InstanceMiniResponseList extends Response { - - public InstanceMiniResponseList(String errorMsg) { - super(errorMsg); - } - - private List instancList; - - public List getInstancList() { - return instancList; - } - - public void setInstancList(List instancList) { - this.instancList = instancList; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java deleted file mode 100644 index ae63f86..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/InstanceResponse.java +++ /dev/null @@ -1,99 +0,0 @@ - -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -import java.util.List; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({"id", "request", "namespace", "release-name", "resources"}) -@JsonIgnoreProperties(value = "true") -public class InstanceResponse { - - @JsonProperty("id") - private String id; - - @JsonProperty("request") - private MulticloudInstanceRequest request; - - @JsonProperty("namespace") - private String namespace; - - @JsonProperty("release-name") - private String releaseName; - - @JsonProperty("resources") - private List resources; - - @JsonProperty("id") - public String getId() { - return id; - } - - @JsonProperty("id") - public void setId(String id) { - this.id = id; - } - - @JsonProperty("request") - public MulticloudInstanceRequest getRequest() { - return request; - } - - @JsonProperty("request") - public void setRequest(MulticloudInstanceRequest request) { - this.request = request; - } - - @JsonProperty("namespace") - public String getNamespace() { - return namespace; - } - - @JsonProperty("namespace") - public void setNamespace(String namespace) { - this.namespace = namespace; - } - - @JsonProperty("resources") - public List getResources() { - return resources; - } - - @JsonProperty("resources") - public void setResources(List resources) { - this.resources = resources; - } - - @JsonProperty("release-name") - public String getReleaseName() { - return releaseName; - } - - @JsonProperty("release-name") - public void setReleaseName(String releaseName) { - this.releaseName = releaseName; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java b/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java deleted file mode 100644 index 2472684..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/InstanceStatusResponse.java +++ /dev/null @@ -1,84 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -import java.util.List; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonIgnoreProperties(value = "true") -public class InstanceStatusResponse extends Response { - - public InstanceStatusResponse(String errorMsg) { - super(errorMsg); - } - - private MulticloudInstanceRequest request; - - private boolean ready; - - private String resourceCount; - - private List podStatuses; - - private List servicesStatuses; - - public MulticloudInstanceRequest getRequest() { - return request; - } - - public void setRequest(MulticloudInstanceRequest request) { - this.request = request; - } - - public boolean isReady() { - return ready; - } - - public void setReady(boolean ready) { - this.ready = ready; - } - - public String getResourceCount() { - return resourceCount; - } - - public void setResourceCount(String resourceCount) { - this.resourceCount = resourceCount; - } - - public List getPodStatuses() { - return podStatuses; - } - - public void setPodStatuses(List podStatuses) { - this.podStatuses = podStatuses; - } - - public List getServicesStatuses() { - return servicesStatuses; - } - - public void setServicesStatuses(List servicesStatuses) { - this.servicesStatuses = servicesStatuses; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java b/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java deleted file mode 100644 index b1719cb..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/MulticloudInstanceRequest.java +++ /dev/null @@ -1,87 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class MulticloudInstanceRequest { - - @JsonProperty(value = "cloud-region") - private String cloudRegion; - - @JsonProperty(value = "rb-name") - private String rbName; - - @JsonProperty(value = "rb-version") - private String rbVersion; - - @JsonProperty(value = "profile-name") - private String profileName; - - @JsonProperty(value = "labels") - private Map labels; - - @JsonProperty(value = "override-values") - private Map overrideValues; - - @JsonProperty(value = "release-name") - private String vfModuleUuid; - - public String getCloudRegion() { - return cloudRegion; - } - - public void setCloudRegion(String cloudRegion) { - this.cloudRegion = cloudRegion; - } - - public String getRbName() { - return rbName; - } - - public void setRbName(String rbName) { - this.rbName = rbName; - } - - public String getRbVersion() { - return rbVersion; - } - - public void setRbVersion(String rbVersion) { - this.rbVersion = rbVersion; - } - - public String getProfileName() { - return profileName; - } - - public void setProfileName(String profileName) { - this.profileName = profileName; - } - - public Map getLabels() { - return labels; - } - - public void setLabels(Map labels) { - this.labels = labels; - } - - public Map getOverrideValues() { - return overrideValues; - } - - public void setOverrideValues(Map overrideValues) { - this.overrideValues = overrideValues; - } - - public String getVfModuleUuid() { - return vfModuleUuid; - } - - public void setVfModuleUuid(String vfModuleUuid) { - this.vfModuleUuid = vfModuleUuid; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java deleted file mode 100644 index dd10252..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/OtherConnectivityListEntity.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import java.util.List; -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class OtherConnectivityListEntity { - - @JsonProperty(value = "connectivity-records") - private List> connectivityRecordsList; - - public List> getConnectivityRecordsList() { - return connectivityRecordsList; - } - - public void setConnectivityRecordsList(List> connectivityRecordsList) { - this.connectivityRecordsList = connectivityRecordsList; - } - - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java b/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java deleted file mode 100644 index ed04601..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/PodStatus.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -public class PodStatus { - - private String name; - private String nameSpace; - private boolean ready; - private String status; - private String[] ipAddresses; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getNameSpace() { - return nameSpace; - } - - public void setNameSpace(String nameSpace) { - this.nameSpace = nameSpace; - } - - public boolean isReady() { - return ready; - } - - public void setReady(boolean ready) { - this.ready = ready; - } - - public String getStatus() { - return status; - } - - public void setStatus(String status) { - this.status = status; - } - - public String[] getIpAddresses() { - return ipAddresses; - } - - public void setIpAddresses(String[] ipAddresses) { - this.ipAddresses = ipAddresses; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java deleted file mode 100644 index 875ef0d..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ProfileEntity.java +++ /dev/null @@ -1,74 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class ProfileEntity { - - @JsonProperty(value = "rb-name") - private String rbName; - - @JsonProperty(value = "rb-version") - private String rbVersion; - - @JsonProperty(value = "profile-name") - private String profileName; - - @JsonProperty(value = "release-name") - private String releaseName; - - @JsonProperty(value = "namespace") - private String nameSpace; - - @JsonProperty(value = "kubernetes-version") - private String kubernetesVersion; - - public String getRbName() { - return rbName; - } - - public void setRbName(String rbName) { - this.rbName = rbName; - } - - public String getRbVersion() { - return rbVersion; - } - - public void setRbVersion(String rbVersion) { - this.rbVersion = rbVersion; - } - - public String getProfileName() { - return profileName; - } - - public void setProfileName(String profileName) { - this.profileName = profileName; - } - - public String getReleaseName() { - return releaseName; - } - - public void setReleaseName(String releaseName) { - this.releaseName = releaseName; - } - - public String getNameSpace() { - return nameSpace; - } - - public void setNameSpace(String nameSpace) { - this.nameSpace = nameSpace; - } - - public String getKubernetesVersion() { - return kubernetesVersion; - } - - public void setKubernetesVersion(String kubernetesVersion) { - this.kubernetesVersion = kubernetesVersion; - } -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Resource.java b/src/main/java/org/onap/so/adapters/cnf/model/Resource.java deleted file mode 100644 index d18cd76..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/Resource.java +++ /dev/null @@ -1,54 +0,0 @@ - -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonPropertyOrder; - -@JsonInclude(JsonInclude.Include.NON_NULL) -@JsonPropertyOrder({"GVK", "Name"}) -public class Resource { - @JsonProperty("GVK") - private GroupVersionKind gVK; - @JsonProperty("Name") - private String name; - - @JsonProperty("GVK") - public GroupVersionKind getGVK() { - return gVK; - } - - @JsonProperty("GVK") - public void setGVK(GroupVersionKind gVK) { - this.gVK = gVK; - } - - @JsonProperty("Name") - public String getName() { - return name; - } - - @JsonProperty("Name") - public void setName(String name) { - this.name = name; - } -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java b/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java deleted file mode 100644 index bc3a8ad..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/ResourceBundleEntity.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import java.util.Map; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class ResourceBundleEntity { - - @JsonProperty(value = "rb-name") - private String rbName; - - @JsonProperty(value = "rb-version") - private String rbVersion; - - @JsonProperty(value = "chart-name") - private String chartName; - - @JsonProperty(value = "description") - private String description; - - @JsonProperty(value = "labels") - private Map labels; - - public String getRbName() { - return rbName; - } - - public void setRbName(String rbName) { - this.rbName = rbName; - } - - public String getRbVersion() { - return rbVersion; - } - - public void setRbVersion(String rbVersion) { - this.rbVersion = rbVersion; - } - - public String getChartName() { - return chartName; - } - - public void setChartName(String chartName) { - this.chartName = chartName; - } - - public String getDescription() { - return description; - } - - public void setDescription(String description) { - this.description = description; - } - - public Map getLabels() { - return labels; - } - - public void setLabels(Map labels) { - this.labels = labels; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Response.java b/src/main/java/org/onap/so/adapters/cnf/model/Response.java deleted file mode 100644 index 4230223..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/Response.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.model; - -public class Response { - - private String errorMsg; - - public Response(String errorMsg) { - this.errorMsg = errorMsg; - } - - public String getErrorMsg() { - return errorMsg; - } - - public void setErrorMsg(String errorMsg) { - this.errorMsg = errorMsg; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/model/Tag.java b/src/main/java/org/onap/so/adapters/cnf/model/Tag.java deleted file mode 100644 index 70faefa..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/model/Tag.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.onap.so.adapters.cnf.model; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; - -@JsonIgnoreProperties(value = "true") -public class Tag { - - @JsonProperty(value = "tag-name") - private String tagName; - - public String getTagName() { - return tagName; - } - - public void setTagName(String tagName) { - this.tagName = tagName; - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java b/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java deleted file mode 100644 index c69b63f..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/rest/CnfAdapterRest.java +++ /dev/null @@ -1,677 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.rest; - -import java.io.File; -import java.io.IOException; -import org.apache.http.HttpEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpDelete; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.methods.HttpPut; -import org.apache.http.entity.ContentType; -import org.apache.http.entity.StringEntity; -import org.apache.http.entity.mime.HttpMultipartMode; -import org.apache.http.entity.mime.MultipartEntityBuilder; -import org.apache.http.entity.mime.content.FileBody; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.util.EntityUtils; -import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; -import org.onap.so.adapters.cnf.model.ConfigTemplateEntity; -import org.onap.so.adapters.cnf.model.ConfigurationEntity; -import org.onap.so.adapters.cnf.model.ConfigurationRollbackEntity; -import org.onap.so.adapters.cnf.model.ConnectivityInfo; -import org.onap.so.adapters.cnf.model.ProfileEntity; -import org.onap.so.adapters.cnf.model.ResourceBundleEntity; -import org.onap.so.adapters.cnf.model.Tag; -import org.onap.so.adapters.cnf.service.CnfAdapterService; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializationFeature; - -@RestController -public class CnfAdapterRest { - - private static final Logger logger = LoggerFactory.getLogger(CnfAdapterRest.class); - private final CloseableHttpClient httpClient = HttpClients.createDefault(); - - @Autowired - private CnfAdapterService cnfAdapterService; - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/healthcheck"}, method = RequestMethod.GET, - produces = "application/json") - public String healthCheck() throws Exception { - - logger.info("healthCheck called."); - return cnfAdapterService.healthCheck(); - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/instance"}, method = RequestMethod.POST, - produces = "application/json", consumes = "application/json") - public String createInstance(@RequestBody BpmnInstanceRequest bpmnInstanceRequest) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("createInstance called."); - return cnfAdapterService.createInstance(bpmnInstanceRequest); - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}"}, method = RequestMethod.GET, - produces = "application/json") - public String getInstanceByInstanceId(@PathVariable("instID") String instanceId) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("getInstanceByInstanceId called."); - - return cnfAdapterService.getInstanceByInstanceId(instanceId); - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}/status"}, method = RequestMethod.GET, - produces = "application/json") - public String getInstanceStatusByInstanceId(@PathVariable("instID") String instanceId) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("getInstanceStatusByInstanceId called."); - - return cnfAdapterService.getInstanceStatusByInstanceId(instanceId); - - } - - @RequestMapping(value = {"/api/cnf-adapter/v1/instance"}, method = RequestMethod.GET, produces = "application/json") - public String getInstanceByRBNameOrRBVersionOrProfileName( - @RequestParam(value = "rb-name", required = false) String rbName, - @RequestParam(value = "rb-version", required = false) String rbVersion, - @RequestParam(value = "profile-name", required = false) String profileName) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("getInstanceByRBNameOrRBVersionOrProfileName called."); - return cnfAdapterService.getInstanceByRBNameOrRBVersionOrProfileName(rbName, rbVersion, profileName); - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/instance/{instID}"}, method = RequestMethod.DELETE, - produces = "application/json") - public String deleteInstanceByInstanceId(@PathVariable("instID") String instanceID) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("deleteInstanceByInstanceId called."); - return cnfAdapterService.deleteInstanceByInstanceId(instanceID); - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition"}, method = RequestMethod.POST, - produces = "application/json") - public String createRB(@RequestBody ResourceBundleEntity rB) throws Exception { - - logger.info("ResourceBundleEntity:" + rB.toString()); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition"); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); - String requestBody = objectMapper.writeValueAsString(rB); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}"}, method = RequestMethod.GET, - produces = "application/json") - public String getRB(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion) - throws Exception { - - logger.info("get RB called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion); - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}"}, method = RequestMethod.DELETE, - produces = "application/json") - public String deleteRB(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion) - throws Exception { - - logger.info("delete RB called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}"}, method = RequestMethod.GET, - produces = "application/json") - public String getListOfRB(@PathVariable("rb-name") String rbName) throws Exception { - - logger.info("getListOfRB called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition"}, method = RequestMethod.GET, - produces = "application/json") - public String getListOfRBWithoutUsingRBName() throws Exception { - - logger.info("getListOfRBWithoutUsingRBName called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition"); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/content"}, - method = RequestMethod.POST, produces = "multipart/form-data") - public String uploadArtifactForRB(@RequestParam("file") MultipartFile file, @PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion) throws Exception { - - logger.info("Upload Artifact For RB called."); - - File convFile = new File(file.getOriginalFilename()); - file.transferTo(convFile); - FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY); - MultipartEntityBuilder builder = MultipartEntityBuilder.create(); - builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); - builder.addPart("file", fileBody); - HttpEntity entity = builder.build(); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = - new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/content"); - post.setHeader("Content-Type", "multipart/form-data"); - logger.info(String.valueOf(post)); - post.setEntity(entity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile"}, - method = RequestMethod.POST, produces = "application/json") - public String createProfile(@RequestBody ProfileEntity fE, @PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion) throws Exception { - - logger.info("create Profile called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = - new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile"); - ObjectMapper objectMapper = new ObjectMapper(); - String requestBody = objectMapper.writeValueAsString(fE); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}"}, - method = RequestMethod.GET, produces = "application/json") - public String getProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, - @PathVariable("pr-name") String prName) throws Exception { - - logger.info("get Profile called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = new HttpGet( - "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile/" + prName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile"}, - method = RequestMethod.GET, produces = "application/json") - public String getListOfProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion) - throws Exception { - - logger.info("getListOfProfile called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = - new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile"); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}"}, - method = RequestMethod.DELETE, produces = "application/json") - public String deleteProfile(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, - @PathVariable("pr-name") String prName) throws Exception { - - logger.info("delete Profile called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpDelete req = new HttpDelete( - "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/profile/" + prName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/profile/{pr-name}/content"}, - method = RequestMethod.POST, produces = "multipart/form-data") - public String uploadArtifactForProfile(@RequestParam("file") MultipartFile file, - @PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, - @PathVariable("pr-name") String prName) throws Exception { - - logger.info("Upload Artifact For Profile called."); - - File convFile = new File(file.getOriginalFilename()); - file.transferTo(convFile); - FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY); - MultipartEntityBuilder builder = MultipartEntityBuilder.create(); - builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); - builder.addPart("file", fileBody); - HttpEntity entity = builder.build(); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion - + "/profile/" + prName + "/content"); - post.setHeader("Content-Type", "multipart/form-data"); - - logger.info(String.valueOf(post)); - post.setEntity(entity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config"}, - method = RequestMethod.POST, produces = "application/json") - public String createConfiguration(@RequestBody ConfigurationEntity cE, @PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName) - throws Exception { - - logger.info("create Configuration called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion - + "/profile/" + prName + "/config"); - ObjectMapper objectMapper = new ObjectMapper(); - String requestBody = objectMapper.writeValueAsString(cE); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping( - value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"}, - method = RequestMethod.GET, produces = "application/json") - public String getConfiguration(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, - @PathVariable("profile-name") String prName, @PathVariable("cfg-name") String cfgName) throws Exception { - - logger.info("get Configuration called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + "/profile/" - + prName + "/config/" + cfgName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping( - value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"}, - method = RequestMethod.DELETE, produces = "application/json") - public String deleteConfiguration(@PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName, - @PathVariable("cfg-name") String cfgName) throws Exception { - - logger.info("delete Configuration called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion - + "/profile/" + prName + "/config/" + cfgName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - - } - - @ResponseBody - @RequestMapping( - value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/config/{cfg-name}"}, - method = RequestMethod.PUT, produces = "application/json") - public String updateConfiguration(@RequestBody ConfigurationEntity cE, @PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion, @PathVariable("profile-name") String prName, - @PathVariable("cfg-name") String cfgName) throws Exception { - - logger.info("update Configuration called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPut post = new HttpPut("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion + "/profile/" - + prName + "/config/" + cfgName); - ObjectMapper objectMapper = new ObjectMapper(); - String requestBody = objectMapper.writeValueAsString(cE); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rb-name}/{rb-version}/profile/{profile-name}/tagit"}, - method = RequestMethod.POST, produces = "application/json") - public String tagConfigurationValue(@RequestBody Tag tag, @PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion, @PathVariable("pr-name") String prName) throws Exception { - logger.info("Tag Configuration called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion - + "/profile/" + prName + "/config/tagit"); - - ObjectMapper objectMapper = new ObjectMapper(); - String requestBody = objectMapper.writeValueAsString(tag); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info"}, method = RequestMethod.POST, - produces = "application/json") - public String createConnectivityInfo(@RequestBody ConnectivityInfo cIE) throws Exception { - - logger.info("create ConnectivityInfo called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/connectivity-info"); - ObjectMapper objectMapper = new ObjectMapper(); - String requestBody = objectMapper.writeValueAsString(cIE); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info/{connname}"}, method = RequestMethod.GET, - produces = "application/json") - public String getConnectivityInfo(@PathVariable("connname") String connName) throws Exception { - - logger.info("get Connectivity Info called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/connectivity-info/" + connName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/connectivity-info/{connname}"}, method = RequestMethod.DELETE, - produces = "application/json") - public String deleteConnectivityInfo(@PathVariable("connname") String connName) throws Exception { - - logger.info("delete Connectivity Info called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/connectivity-info/" + connName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template"}, - method = RequestMethod.POST, produces = "application/json") - public String createConfigTemplate(@RequestBody ConfigTemplateEntity tE, @PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion) throws Exception { - - logger.info("createConfigTemplate called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost( - "http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion + "/config-template"); - ObjectMapper objectMapper = new ObjectMapper(); - String requestBody = objectMapper.writeValueAsString(tE); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}"}, - method = RequestMethod.GET, produces = "application/json") - public String getConfigTemplate(@PathVariable("rb-name") String rbName, - @PathVariable("rb-version") String rbVersion, @PathVariable("tname") String tName) throws Exception { - - logger.info("getConfigTemplate called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpGet req = new HttpGet("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion - + "/config-template/" + tName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}"}, - method = RequestMethod.DELETE, produces = "application/json") - public String deleteTemplate(@PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, - @PathVariable("tname") String tName) throws Exception { - - logger.info("deleteTemplate called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpDelete req = new HttpDelete("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion - + "/config-template/" + tName); - - try (CloseableHttpResponse response = httpClient.execute(req)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - - } - - @ResponseBody - @RequestMapping( - value = {"/api/cnf-adapter/v1/rb/definition/{rb-name}/{rb-version}/config-template/{tname}/content"}, - method = RequestMethod.POST, produces = "multipart/form-data") - public String uploadTarFileForTemplate(@RequestParam("file") MultipartFile file, - @PathVariable("rb-name") String rbName, @PathVariable("rb-version") String rbVersion, - @PathVariable("tname") String tName) throws Exception { - - logger.info("uploadTarFileForTemplate called."); - - File convFile = new File(file.getOriginalFilename()); - file.transferTo(convFile); - FileBody fileBody = new FileBody(convFile, ContentType.DEFAULT_BINARY); - MultipartEntityBuilder builder = MultipartEntityBuilder.create(); - builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); - builder.addPart("file", fileBody); - HttpEntity entity = builder.build(); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/rb/definition/" + rbName + "/" + rbVersion - + "/config-template/" + tName + "/content"); - post.setHeader("Content-Type", "multipart/form-data"); - - logger.info(String.valueOf(post)); - post.setEntity(entity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - - @ResponseBody - @RequestMapping(value = {"/api/cnf-adapter/v1/definition/{rbName}/{rbVersion}/profile/{prName}/config/rollback"}, - method = RequestMethod.DELETE, produces = "application/json") - public String rollbackConfiguration(@RequestBody ConfigurationRollbackEntity rE, - @PathVariable("rbName") String rbName, @PathVariable("rbVersion") String rbVersion, - @PathVariable("prName") String prName) throws Exception { - logger.info("rollbackConfiguration called."); - - // TODO - // Below URL should be changed as appropriate multicloud URL. - HttpPost post = new HttpPost("http://multicloud-k8s:9015/v1/definition/" + rbName + "/" + rbVersion - + "/profile/" + prName + "/config/rollback"); - - ObjectMapper objectMapper = new ObjectMapper(); - String requestBody = objectMapper.writeValueAsString(rE); - StringEntity requestEntity = new StringEntity(requestBody, ContentType.APPLICATION_JSON); - post.setEntity(requestEntity); - - try (CloseableHttpClient httpClient = HttpClients.createDefault(); - CloseableHttpResponse response = httpClient.execute(post)) { - logger.info("response:" + response.getEntity()); - return EntityUtils.toString(response.getEntity()); - } - } - -} diff --git a/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java b/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java deleted file mode 100644 index a134bac..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/service/CnfAdapterService.java +++ /dev/null @@ -1,251 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.service; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import javax.persistence.EntityNotFoundException; -import javax.ws.rs.core.UriBuilder; -import org.apache.http.HttpStatus; -import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; -import org.onap.so.adapters.cnf.model.MulticloudInstanceRequest; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.HttpStatusCodeException; -import org.springframework.web.client.RestTemplate; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.databind.JsonMappingException; - -@Service -public class CnfAdapterService { - private static final Logger logger = LoggerFactory.getLogger(CnfAdapterService.class); - @Autowired - private RestTemplate restTemplate; - private static final String INSTANCE_CREATE_PATH = "/v1/instance"; - private static final String HEALTH_CHECK = "/v1/healthcheck"; - - public String healthCheck() { - - logger.info("CnfAdapterService healthCheck called"); - ResponseEntity result = null; - try { - - // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: - // This needs to be added as well - // for configuration - String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? - String endpoint = UriBuilder.fromUri(uri).path(HEALTH_CHECK).build().toString(); - HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); - result = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class); - return result.getBody(); - } catch (HttpClientErrorException e) { - logger.error("Error Calling Multicloud, e"); - if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { - throw new EntityNotFoundException(e.getResponseBodyAsString()); - } - throw e; - } catch (HttpStatusCodeException e) { - logger.error("Error in Multicloud, e"); - throw e; - } - } - - public String createInstance(BpmnInstanceRequest bpmnInstanceRequest) - throws JsonParseException, JsonMappingException, IOException { - try { - logger.info("CnfAdapterService createInstance called"); - MulticloudInstanceRequest multicloudInstanceRequest = new MulticloudInstanceRequest(); - ResponseEntity instanceResponse = null; - if (bpmnInstanceRequest.getK8sRBProfileName() != null) { - multicloudInstanceRequest.setCloudRegion(bpmnInstanceRequest.getCloudRegionId()); - multicloudInstanceRequest.setLabels(bpmnInstanceRequest.getLabels()); - multicloudInstanceRequest.setOverrideValues(bpmnInstanceRequest.getOverrideValues()); - multicloudInstanceRequest.setProfileName(bpmnInstanceRequest.getK8sRBProfileName()); - multicloudInstanceRequest.setRbName(bpmnInstanceRequest.getModelInvariantId()); - multicloudInstanceRequest.setRbVersion(bpmnInstanceRequest.getModelVersionId()); - multicloudInstanceRequest.setVfModuleUuid(bpmnInstanceRequest.getVfModuleUUID()); - } else { - logger.error("k8sProfileName should not be null"); - // return instanceResponse; - } - // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: - // This needs to be added as well - // for configuration - String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? - String endpoint = UriBuilder.fromUri(uri).path(INSTANCE_CREATE_PATH).build().toString(); - HttpEntity entity = getHttpEntity(multicloudInstanceRequest); - instanceResponse = restTemplate.exchange(endpoint, HttpMethod.POST, entity, String.class); - return instanceResponse.getBody(); - } catch (HttpClientErrorException e) { - logger.error("Error Calling Multicloud, e"); - if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { - throw new EntityNotFoundException(e.getResponseBodyAsString()); - } - throw e; - } catch (HttpStatusCodeException e) { - logger.error("Error in Multicloud, e"); - throw e; - } - } - - public String getInstanceByInstanceId(String instanceId) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("CnfAdapterService getInstanceByInstanceId called"); - ResponseEntity instanceResponse = null; - try { - - // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: - // This needs to be added as well - // for configuration - String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? - String path = "/v1/instance/" + instanceId; - String endpoint = UriBuilder.fromUri(uri).path(path).build().toString(); - HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); - instanceResponse = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class); - return instanceResponse.getBody(); - } catch (HttpClientErrorException e) { - logger.error("Error Calling Multicloud, e"); - if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { - throw new EntityNotFoundException(e.getResponseBodyAsString()); - } - throw e; - } catch (HttpStatusCodeException e) { - logger.error("Error in Multicloud, e"); - throw e; - } - } - - public String getInstanceStatusByInstanceId(String instanceId) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("CnfAdapterService getInstanceStatusByInstanceId called"); - ResponseEntity instanceResponse = null; - try { - - // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: - // This needs to be added as well - // for configuration - String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? - String path = "/v1/instance/" + instanceId + "/status"; - String endpoint = UriBuilder.fromUri(uri).path(path).build().toString(); - HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); - instanceResponse = restTemplate.exchange(endpoint, HttpMethod.GET, requestEntity, String.class); - return instanceResponse.getBody(); - } catch (HttpClientErrorException e) { - logger.error("Error Calling Multicloud, e"); - if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { - throw new EntityNotFoundException(e.getResponseBodyAsString()); - } - throw e; - } catch (HttpStatusCodeException e) { - logger.error("Error in Multicloud, e"); - throw e; - } - - } - - public String getInstanceByRBNameOrRBVersionOrProfileName(String rbName, String rbVersion, String profileName) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("CnfAdapterService getInstanceByRBNameOrRBVersionOrProfileName called"); - ResponseEntity instanceMiniResponseList = null; - try { - - // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: - // This needs to be added as well - // for configuration - String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? - String path = - "/v1/instance" + "?rb-name=" + rbName + "&rb-version=" + rbVersion + "&profile-name=" + profileName; - String endPoint = uri + path; - HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); - instanceMiniResponseList = restTemplate.exchange(endPoint, HttpMethod.GET, requestEntity, String.class); - return instanceMiniResponseList.getBody(); - } catch (HttpClientErrorException e) { - logger.error("Error Calling Multicloud, e"); - if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { - throw new EntityNotFoundException(e.getResponseBodyAsString()); - } - throw e; - } catch (HttpStatusCodeException e) { - logger.error("Error in Multicloud, e"); - throw e; - } - } - - public String deleteInstanceByInstanceId(String instanceId) - throws JsonParseException, JsonMappingException, IOException { - - logger.info("CnfAdapterService deleteInstanceByInstanceId called"); - ResponseEntity result = null; - try { - - // String uri = env.getRequiredProperty("multicloud.endpoint"); //TODO: - // This needs to be added as well - // for configuration - String uri = "http://multicloud-k8s:9015"; // TODO: What is the correct uri? - String path = "/v1/instance/" + instanceId; - String endpoint = UriBuilder.fromUri(uri).path(path).build().toString(); - HttpEntity requestEntity = new HttpEntity<>(getHttpHeaders()); - result = restTemplate.exchange(endpoint, HttpMethod.DELETE, requestEntity, String.class); - return result.getBody(); - } catch (HttpClientErrorException e) { - logger.error("Error Calling Multicloud, e"); - if (HttpStatus.SC_NOT_FOUND == e.getStatusCode().value()) { - throw new EntityNotFoundException(e.getResponseBodyAsString()); - } - throw e; - } catch (HttpStatusCodeException e) { - logger.error("Error in Multicloud, e"); - throw e; - } - } - - protected HttpHeaders getHttpHeaders() { - HttpHeaders headers = new HttpHeaders(); - List acceptableMediaTypes = new ArrayList<>(); - acceptableMediaTypes.add(MediaType.APPLICATION_JSON); - headers.setAccept(acceptableMediaTypes); - headers.setContentType(MediaType.APPLICATION_JSON); - /* - * try { String userCredentials = CryptoUtils.decrypt(env.getRequiredProperty("mso.cnf.adapter.auth"), - * env.getRequiredProperty("mso.msoKey")); if (userCredentials != null) { headers.add(HttpHeaders.AUTHORIZATION, - * "Basic " + DatatypeConverter.printBase64Binary(userCredentials.getBytes())); } } catch - * (GeneralSecurityException e) { logger.error("Security exception", e); } - */ - return headers; - } - - protected HttpEntity getHttpEntity(MulticloudInstanceRequest request) { - HttpHeaders headers = getHttpHeaders(); - return new HttpEntity<>(request, headers); - } -} diff --git a/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java b/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java deleted file mode 100644 index 25e506c..0000000 --- a/src/main/java/org/onap/so/adapters/cnf/util/CNfAdapterUtil.java +++ /dev/null @@ -1,94 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf.util; - -import com.fasterxml.jackson.databind.ObjectMapper; -import java.io.IOException; -import org.onap.so.adapters.cnf.exceptions.ApplicationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.onap.logging.filter.base.ErrorCode; -import static org.onap.so.logger.LoggingAnchor.THREE; -import static org.onap.so.logger.MessageEnum.RA_NS_EXC; - -public class CNfAdapterUtil { - - private static final Logger LOGGER = LoggerFactory.getLogger(CNfAdapterUtil.class); - - public static final int BAD_REQUEST = 400; - - private static final String UNMARSHAL_FAIL_MSG = "Failed to unmarshal json"; - - private static final String MARSHAL_FAIL_MSG = "Failed to marshal object"; - - private static final ObjectMapper MAPPER = new ObjectMapper(); - - public static class StatusDesc { - - public static final String ALLOCATE_NSS_SUCCESS = "Allocating nss is " + "successful"; - - public static final String CREATE_NSS_SUCCESS = "Creating nss is " + "successful"; - - public static final String DEALLOCATE_NSS_SUCCESS = "Deallocate nss " + "is successful"; - - public static final String ACTIVATE_NSS_SUCCESS = "Activate nss " + "is successful"; - - public static final String DEACTIVATE_NSS_SUCCESS = "Deactivate nss " + "is successful"; - - public static final String QUERY_JOB_STATUS_FAILED = "Query job " + "status failed"; - - public static final String QUERY_JOB_STATUS_SUCCESS = "Query job " + "status is successful"; - - private StatusDesc() { - - } - } - - private CNfAdapterUtil() { - - } - - public static void assertObjectNotNull(Object object) throws ApplicationException { - if (null == object) { - LOGGER.error("Object is null."); - throw new ApplicationException(BAD_REQUEST, "An object is null."); - } - } - - public static T unMarshal(String jsonstr, Class type) throws ApplicationException { - try { - return MAPPER.readValue(jsonstr, type); - } catch (IOException e) { - LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), UNMARSHAL_FAIL_MSG, e); - throw new ApplicationException(BAD_REQUEST, UNMARSHAL_FAIL_MSG); - } - } - - public static String marshal(Object srcObj) throws ApplicationException { - try { - return MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(srcObj); - } catch (IOException e) { - LOGGER.error(THREE, RA_NS_EXC.toString(), ErrorCode.BusinessProcessError.getValue(), MARSHAL_FAIL_MSG, e); - throw new ApplicationException(BAD_REQUEST, MARSHAL_FAIL_MSG); - } - } - -} diff --git a/src/main/resources/META-INF/services/org.onap.so.client.RestProperties b/src/main/resources/META-INF/services/org.onap.so.client.RestProperties deleted file mode 100644 index bccd43a..0000000 --- a/src/main/resources/META-INF/services/org.onap.so.client.RestProperties +++ /dev/null @@ -1 +0,0 @@ -org.onap.so.adapters.cnf.extclients.aai.AaiClientPropertiesImpl \ No newline at end of file diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml deleted file mode 100644 index 5a9adbf..0000000 --- a/src/main/resources/application.yaml +++ /dev/null @@ -1,61 +0,0 @@ -# -# ============LICENSE_START======================================================= -# ONAP - SO -# ================================================================================ -# Copyright (C) 2020 Huawei Technologies Co., Ltd. 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========================================================= -#/ -#aai: -# auth: 2A11B07DB6214A839394AA1EC5844695F5114FC407FF5422625FB00175A3DCB8A1FF745F22867EFA72D5369D599BBD88DA8BED4233CF5586 -# endpoint: https://aai.onap:30233 -#logging: -# path: logs - -#spring: -# datasource: - # driver-class-name: org.mariadb.jdbc.Driver -# jdbcUrl: jdbc:mariadb://192.168.235.44:30444/requestdb - # username: root - # password: secretpassword - - # jpa: - # show-sql: false - # hibernate: - # dialect: org.hibernate.dialect.MySQL5Dialect - # ddl-auto: validate - # naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy - # enable-lazy-load-no-trans: true -server: - port: 9012 - tomcat: - max-threads: 50 - -#mso: - # key: 07a7159d3bf51a0e53be7a8f89699be7 - # site-name: localSite -# logPath: ./logs/cnf - # msb-ip: msb-iag.{{ include "common.namespace" . }} - # msb-port: 80 - # adapters: - # requestDb: - # endpoint: https://so-request-db-adapter.{{ include "common.namespace" . }}:8083 - # auth: Basic YnBlbDpwYXNzd29yZDEk - -#Actuator -#management: -# security: - # enabled: false - # basic: -# enabled: false \ No newline at end of file diff --git a/src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java b/src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java deleted file mode 100644 index ee7a771..0000000 --- a/src/test/java/org/onap/so/adapters/cnf/CnfAdapterRestTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - SO - * ================================================================================ - * Copyright (C) 2020 Huawei Technologies Co., Ltd. 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.so.adapters.cnf; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import java.util.HashMap; -import java.util.Map; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; -import org.onap.so.adapters.cnf.rest.CnfAdapterRest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -public class CnfAdapterRestTest { - - @InjectMocks - CnfAdapterRest cnfAdapterRest; - - @Test - public void createInstanceTest() throws Exception { - - Map labels = new HashMap(); - labels.put("custom-label-1", "label1"); - Map overrideValues = new HashMap(); - labels.put("image.tag", "latest"); - labels.put("dcae_collector_ip", "1.2.3.4"); - BpmnInstanceRequest bpmnInstanceRequest = new BpmnInstanceRequest(); - bpmnInstanceRequest.setCloudRegionId("v1"); - bpmnInstanceRequest.setLabels(labels); - bpmnInstanceRequest.setModelInvariantId("krd"); - bpmnInstanceRequest.setModelVersionId("p1"); - bpmnInstanceRequest.setOverrideValues(overrideValues); - bpmnInstanceRequest.setVfModuleUUID("20200824"); - - String mockedResponse = "K8sRBProfileName is required"; - String actualResponse = cnfAdapterRest.createInstance(bpmnInstanceRequest); - assertNotNull(actualResponse); - assertEquals(mockedResponse, actualResponse); - } - -} -*/ diff --git a/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java b/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java deleted file mode 100644 index 30197bc..0000000 --- a/src/test/java/org/onap/so/adapters/cnf/rest/CnfAdapterRestTest.java +++ /dev/null @@ -1,106 +0,0 @@ -// TODO -/* - * - * ============LICENSE_START==================================================== === ONAP - SO - * ============================================================================= === Copyright (C) 2020 Huawei - * Technologies Co., Ltd. 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.so.adapters.cnf.rest; - * - * - * import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import - * org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import - * org.mockito.Mock; import org.mockito.Mockito; import org.onap.so.adapters.cnf.model.BpmnInstanceRequest; import - * org.onap.so.adapters.cnf.model.InstanceMiniResponse; import org.onap.so.adapters.cnf.model.InstanceMiniResponseList; - * import org.onap.so.adapters.cnf.model.InstanceResponse; import org.onap.so.adapters.cnf.model.InstanceStatusResponse; - * import org.onap.so.adapters.cnf.model.MulticloudInstanceRequest; import org.onap.so.adapters.cnf.model.Resource; - * import org.onap.so.adapters.cnf.service.CnfAdapterService; import org.springframework.http.HttpStatus; import - * org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner; - * - * - * @RunWith(SpringRunner.class) public class CnfAdapterRestTest { - * - * @InjectMocks CnfAdapterRest cnfAdapterRest; - * - * @Mock CnfAdapterService cnfAdapterService; - * - * @Mock ResponseEntity instacneMiniResponseList; - * - * @Mock ResponseEntity instanceStatusResponse; - * - * @Test public void healthCheckTest() throws Exception { - * - * ResponseEntity response = new ResponseEntity(HttpStatus.OK); CnfAdapterService cnfAdapterService = - * Mockito.mock(CnfAdapterService.class); Mockito.when(cnfAdapterService.healthCheck()).thenReturn(response); - * cnfAdapterRest.healthCheck(); Assert.assertNotNull(response); Assert.assertEquals(HttpStatus.OK, - * response.getStatusCode()); } - * - * @Test public void createInstanceTest() throws Exception { - * - * Map labels = new HashMap(); labels.put("custom-label-1", "label1"); Map overrideValues = new HashMap(); labels.put("image.tag", "latest"); - * labels.put("dcae_collector_ip", "1.2.3.4"); BpmnInstanceRequest bpmnInstanceRequest = new BpmnInstanceRequest(); - * bpmnInstanceRequest.setCloudRegionId("v1"); bpmnInstanceRequest.setLabels(labels); - * bpmnInstanceRequest.setModelInvariantId("krd"); bpmnInstanceRequest.setModelVersionId("p1"); - * bpmnInstanceRequest.setOverrideValues(overrideValues); bpmnInstanceRequest.setVfModuleUUID("20200824"); - * List resourceList = new ArrayList(); InstanceResponse instanceResponse = new InstanceResponse(); - * instanceResponse.setId("123"); instanceResponse.setNamespace("testNamespace"); instanceResponse.setRequest(new - * MulticloudInstanceRequest()); instanceResponse.setResources(resourceList); String createInstanceResponse = new - * ResponseEntity(instanceResponse, HttpStatus.CREATED); CnfAdapterService cnfAdapterService = - * Mockito.mock(CnfAdapterService.class); Mockito.when(cnfAdapterService.createInstance(bpmnInstanceRequest)). - * thenReturn(createInstanceResponse); cnfAdapterRest.createInstance(bpmnInstanceRequest); - * Assert.assertNotNull(createInstanceResponse); Assert.assertEquals(HttpStatus.CREATED, - * createInstanceResponse.getStatusCode()); } - * - * @Test public void getInstanceByInstanceIdTest() throws Exception { - * - * String instanceId = "123"; String createInstanceResponse = new ResponseEntity(HttpStatus.OK); - * CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); - * Mockito.when(cnfAdapterService.getInstanceByInstanceId(instanceId)). thenReturn(createInstanceResponse); - * cnfAdapterRest.getInstanceByInstanceId(instanceId); Assert.assertNotNull(createInstanceResponse); - * Assert.assertEquals(HttpStatus.OK, createInstanceResponse.getStatusCode()); } - * - * @Test public void deleteInstanceByInstanceIdTest() throws Exception { - * - * String instanceId = "123"; ResponseEntity response = new ResponseEntity(HttpStatus.OK); - * CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); - * Mockito.when(cnfAdapterService.deleteInstanceByInstanceId(instanceId)). thenReturn(response); - * cnfAdapterRest.deleteInstanceByInstanceId(instanceId); Assert.assertNotNull(response); - * Assert.assertEquals(HttpStatus.OK, response.getStatusCode()); } - * - * @Test public void getInstanceStatusByInstanceIdTest() throws Exception { - * - * String instanceId = "123"; instanceStatusResponse = new ResponseEntity(HttpStatus.OK); - * CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); - * Mockito.when(cnfAdapterService.getInstanceStatusByInstanceId(instanceId)). thenReturn(instanceStatusResponse); - * cnfAdapterRest.getInstanceStatusByInstanceId(instanceId); Assert.assertNotNull(instanceStatusResponse); - * Assert.assertEquals(HttpStatus.OK, instanceStatusResponse.getStatusCode()); } - * - * @Test public void getInstanceByRBNameOrRBVersionOrProfileNameTest() throws Exception { - * - * String rbName = "xyz"; String rbVersion = "v1"; String profileName = "p1"; InstanceMiniResponse instanceMiniResponse - * = new InstanceMiniResponse(HttpStatus.OK.toString()); List instancList = new - * ArrayList(); instancList.add(instanceMiniResponse); InstanceMiniResponseList - * instanceMiniRespList = new InstanceMiniResponseList(HttpStatus.OK.toString()); - * instanceMiniRespList.setInstancList(instancList); instanceMiniRespList.setErrorMsg(HttpStatus.OK.toString()); - * ResponseEntity respone = new ResponseEntity(instanceMiniRespList, - * HttpStatus.OK); CnfAdapterService cnfAdapterService = Mockito.mock(CnfAdapterService.class); - * Mockito.when(cnfAdapterService.getInstanceByRBNameOrRBVersionOrProfileName( rbName, rbVersion, profileName)) - * .thenReturn(instacneMiniResponseList); cnfAdapterRest.getInstanceByRBNameOrRBVersionOrProfileName(rbName, rbVersion, - * profileName); Assert.assertNotNull(instacneMiniResponseList); Assert.assertEquals(HttpStatus.OK.toString(), - * instanceMiniRespList.getErrorMsg()); } - * - * } - * - */ diff --git a/src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java b/src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java deleted file mode 100644 index e114f44..0000000 --- a/src/test/java/org/onap/so/adapters/cnf/service/CnfAdapterServiceTest.java +++ /dev/null @@ -1,104 +0,0 @@ -// TODO -/* - * package org.onap.so.adapters.cnf.service; - * - * import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; - * import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.Mockito; import - * org.onap.so.adapters.cnf.model.BpmnInstanceRequest; import org.onap.so.adapters.cnf.model.InstanceMiniResponseList; - * import org.onap.so.adapters.cnf.model.InstanceResponse; import org.onap.so.adapters.cnf.model.InstanceStatusResponse; - * import org.springframework.http.HttpEntity; import org.springframework.http.HttpMethod; import - * org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import - * org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; - * - * @RunWith(SpringRunner.class) public class CnfAdapterServiceTest { - * - * @InjectMocks CnfAdapterService cnfAdapterService; - * - * @Mock ResponseEntity createInstanceResponse; - * - * @Mock ResponseEntity instacneMiniResponseList; - * - * @Mock ResponseEntity instanceStatusResponse; - * - * @Mock private RestTemplate restTemplate; - * - * @Test public void healthCheckTest() throws Exception { - * - * ResponseEntity response = new ResponseEntity(HttpStatus.OK); - * - * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), - * Matchers.>any(), Matchers.>any())).thenReturn(response); - * - * ResponseEntity actualResponse = cnfAdapterService.healthCheck(); Assert.assertNotNull(actualResponse); - * Assert.assertEquals(HttpStatus.OK, actualResponse.getStatusCode()); - * - * } - * - * @Test public void createInstanceTest() throws Exception { - * - * ResponseEntity response = new ResponseEntity(HttpStatus.OK); BpmnInstanceRequest - * bpmnInstanceRequest = new BpmnInstanceRequest(); bpmnInstanceRequest.setK8sRBProfileName("k8sRBProfileName"); - * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), - * Matchers.>any(), Matchers.>any())).thenReturn(response); - * - * ResponseEntity actualResponse = cnfAdapterService.createInstance(bpmnInstanceRequest); - * Assert.assertNotNull(response); Assert.assertEquals(actualResponse.getStatusCode(), response.getStatusCode()); - * - * } - * - * @Test public void createInstanceExceptionTest() throws Exception { - * - * BpmnInstanceRequest bpmnInstanceRequest = new BpmnInstanceRequest(); ResponseEntity response = - * cnfAdapterService.createInstance(bpmnInstanceRequest); Assert.assertNull(response); - * - * } - * - * @Test public void getInstanceByInstanceIdTest() throws Exception { - * - * ResponseEntity response = new ResponseEntity(HttpStatus.OK); String instanceId = - * "123"; Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), - * Matchers.>any(), Matchers.>any())).thenReturn(response); - * - * ResponseEntity actualResponse = cnfAdapterService.getInstanceByInstanceId(instanceId); - * Assert.assertNotNull(actualResponse); Assert.assertEquals(HttpStatus.OK, actualResponse.getStatusCode()); - * - * } - * - * @Test public void getInstanceStatusByInstanceIdTest() throws Exception { - * - * ResponseEntity response = new ResponseEntity(HttpStatus.OK); String - * instanceId = "123"; Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), - * Matchers.>any(), Matchers.>any())).thenReturn(response); - * - * ResponseEntity actualResponse = cnfAdapterService .getInstanceStatusByInstanceId(instanceId); - * Assert.assertNotNull(actualResponse); Assert.assertEquals(HttpStatus.OK, response.getStatusCode()); - * - * } - * - * @Test public void getInstanceByRBNameOrRBVersionOrProfileNameTest() throws Exception { - * - * ResponseEntity response = new ResponseEntity(HttpStatus.OK); - * String rbName = "xyz"; String rbVersion = "v1"; String profileName = "p1"; - * - * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), - * Matchers.>any(), Matchers.>any())).thenReturn(response); - * - * ResponseEntity actualResponse = cnfAdapterService - * .getInstanceByRBNameOrRBVersionOrProfileName(rbName, rbVersion, profileName); Assert.assertNotNull(actualResponse); - * Assert.assertEquals(HttpStatus.OK, actualResponse.getStatusCode()); - * - * } - * - * @Test public void deleteInstanceByInstanceIdTest() throws Exception { - * - * ResponseEntity response = new ResponseEntity(HttpStatus.OK); String instanceId = "123"; - * Mockito.when(restTemplate.exchange(Matchers.anyString(), Matchers.any(HttpMethod.class), - * Matchers.>any(), Matchers.>any())).thenReturn(response); - * - * ResponseEntity actualResponse = cnfAdapterService.deleteInstanceByInstanceId(instanceId); - * Assert.assertNotNull(response); Assert.assertEquals(HttpStatus.OK, response.getStatusCode()); - * - * } - * - * } - */ -- cgit 1.2.3-korg