From 4ddd6ac987341285d5f10636018e84afb9751b27 Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Thu, 4 Jun 2020 15:10:06 -0400 Subject: Refactor sliapi springboot Move springboot implementation of sliapi from sli/core to apps repository. Change-Id: I6e1dfdc39704935ba7e46d047149071defc101a6 Issue-ID: CCSDK-2096 Signed-off-by: Dan Timoney --- sliapi/model/pom.xml | 17 +- .../model/src/main/resources/sli-api.20161110.json | 554 --------------------- sliapi/model/src/main/yang/sliapi.yang | 130 ----- sliapi/model/swagger/pom.xml | 222 +++++++++ sliapi/model/swagger/src/main/json/sliapi.json | 1 + sliapi/model/swagger/src/main/yaml/sliapi.yaml | 378 ++++++++++++++ sliapi/model/yang/pom.xml | 27 + .../yang/src/main/resources/sli-api.20161110.json | 554 +++++++++++++++++++++ .../yang/src/main/resources/sli-api.20161110.yaml | 254 ++++++++++ sliapi/model/yang/src/main/yang/sliapi.yang | 117 +++++ sliapi/pom.xml | 1 - sliapi/provider/pom.xml | 2 +- sliapi/springboot/.swagger-codegen-ignore | 1 - sliapi/springboot/README.md | 33 -- sliapi/springboot/pom.xml | 179 ------- .../onap/ccsdk/sli/core/sliapi/springboot/App.java | 80 --- .../controllers/ExecuteGraphController.java | 112 ----- .../controllers/data/TestResultConfig.java | 50 -- .../controllers/data/TestResultOperational.java | 51 -- .../data/TestResultsConfigRepository.java | 12 - .../data/TestResultsOperationalRepository.java | 12 - .../controllers/swagger/RestconfApiController.java | 364 -------------- .../sliapi/springboot/core/SvcLogicFactory.java | 150 ------ .../sli/core/sliapi/springboot/core/WebConfig.java | 55 -- sliapi/springboot/src/main/resources/DEMO_DEMO.xml | 35 -- .../src/main/resources/application.properties | 18 - .../springboot/src/main/resources/graph.versions | 3 - .../src/main/resources/log4j2.properties | 160 ------ .../src/main/resources/shiro-users.properties | 3 - .../src/main/resources/sli_healthcheck.xml | 27 - .../springboot/src/main/resources/sli_vlbcheck.xml | 27 - .../src/main/resources/svclogic.properties | 29 -- .../ccsdk/sli/core/sliapi/springboot/AppTest.java | 40 -- .../springboot/RestconfApiControllerTest.java | 162 ------ sliapi/springboot/src/test/resources/DEMO_DEMO.xml | 35 -- .../src/test/resources/application.properties | 18 - .../springboot/src/test/resources/graph.versions | 3 - .../src/test/resources/log4j2.properties | 160 ------ .../src/test/resources/shiro-users.properties | 3 - .../src/test/resources/sli_healthcheck.xml | 27 - .../springboot/src/test/resources/sli_vlbcheck.xml | 27 - .../src/test/resources/svclogic.properties | 29 -- 42 files changed, 1561 insertions(+), 2601 deletions(-) delete mode 100644 sliapi/model/src/main/resources/sli-api.20161110.json delete mode 100755 sliapi/model/src/main/yang/sliapi.yang create mode 100644 sliapi/model/swagger/pom.xml create mode 100644 sliapi/model/swagger/src/main/json/sliapi.json create mode 100644 sliapi/model/swagger/src/main/yaml/sliapi.yaml create mode 100755 sliapi/model/yang/pom.xml create mode 100644 sliapi/model/yang/src/main/resources/sli-api.20161110.json create mode 100644 sliapi/model/yang/src/main/resources/sli-api.20161110.yaml create mode 100755 sliapi/model/yang/src/main/yang/sliapi.yang delete mode 100644 sliapi/springboot/.swagger-codegen-ignore delete mode 100644 sliapi/springboot/README.md delete mode 100644 sliapi/springboot/pom.xml delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/App.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/ExecuteGraphController.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultConfig.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultOperational.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsConfigRepository.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsOperationalRepository.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/swagger/RestconfApiController.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java delete mode 100644 sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/WebConfig.java delete mode 100755 sliapi/springboot/src/main/resources/DEMO_DEMO.xml delete mode 100644 sliapi/springboot/src/main/resources/application.properties delete mode 100644 sliapi/springboot/src/main/resources/graph.versions delete mode 100644 sliapi/springboot/src/main/resources/log4j2.properties delete mode 100644 sliapi/springboot/src/main/resources/shiro-users.properties delete mode 100644 sliapi/springboot/src/main/resources/sli_healthcheck.xml delete mode 100644 sliapi/springboot/src/main/resources/sli_vlbcheck.xml delete mode 100644 sliapi/springboot/src/main/resources/svclogic.properties delete mode 100644 sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/AppTest.java delete mode 100644 sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/RestconfApiControllerTest.java delete mode 100755 sliapi/springboot/src/test/resources/DEMO_DEMO.xml delete mode 100644 sliapi/springboot/src/test/resources/application.properties delete mode 100644 sliapi/springboot/src/test/resources/graph.versions delete mode 100644 sliapi/springboot/src/test/resources/log4j2.properties delete mode 100644 sliapi/springboot/src/test/resources/shiro-users.properties delete mode 100644 sliapi/springboot/src/test/resources/sli_healthcheck.xml delete mode 100644 sliapi/springboot/src/test/resources/sli_vlbcheck.xml delete mode 100644 sliapi/springboot/src/test/resources/svclogic.properties diff --git a/sliapi/model/pom.xml b/sliapi/model/pom.xml index dfe7753a6..4ac5a8510 100755 --- a/sliapi/model/pom.xml +++ b/sliapi/model/pom.xml @@ -4,7 +4,7 @@ org.onap.ccsdk.parent - binding-parent + odlparent-lite 2.0.0-SNAPSHOT @@ -12,16 +12,13 @@ org.onap.ccsdk.sli.core sliapi-model 1.0.0-SNAPSHOT - bundle + pom - ccsdk-sli-core :: sliapi :: ${project.artifactId} + ccsdk-sli-core :: sliapi - - - org.opendaylight.mdsal.binding.model.ietf - rfc6991 - + + yang + swagger + - - diff --git a/sliapi/model/src/main/resources/sli-api.20161110.json b/sliapi/model/src/main/resources/sli-api.20161110.json deleted file mode 100644 index 1c6cdabfe..000000000 --- a/sliapi/model/src/main/resources/sli-api.20161110.json +++ /dev/null @@ -1,554 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "version": "1.0.0" - }, - "basePath": "/restconf", - "paths": { - "/config": { - "post": { - "consumes": [ - "application/json", - "application/xml" - ], - "produces": [ - "application/json", - "application/xml" - ], - "parameters": [ - { - "in": "body", - "name": "**(config)test-results", - "required": false, - "schema": { - "$ref": "#/definitions/SLI-API(config)test-results-TOP" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(config)SLI-API_modulePOST" - } - } - }, - "description": "Defines API to service logic interpreter", - "operationId": "POST-SLI-API_module" - } - }, - "/config/SLI-API:test-results": { - "delete": { - "produces": [ - "application/json", - "application/xml" - ], - "responses": { - "200": { - "description": "No response was specified" - } - }, - "description": "Test results", - "operationId": "DELETE-test-results" - }, - "get": { - "produces": [ - "application/json", - "application/xml" - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(config)test-results" - } - } - }, - "description": "Test results", - "operationId": "GET-test-results" - }, - "post": { - "consumes": [ - "application/json", - "application/xml" - ], - "produces": [ - "application/json", - "application/xml" - ], - "parameters": [ - { - "in": "body", - "name": "**(config)test-result", - "required": false, - "schema": { - "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(config)test-resultsPOST" - } - } - }, - "description": "Test results", - "operationId": "POST-test-results" - }, - "put": { - "consumes": [ - "application/json", - "application/xml" - ], - "produces": [ - "application/json", - "application/xml" - ], - "parameters": [ - { - "in": "body", - "name": "(config)test-results", - "required": false, - "schema": { - "$ref": "#/definitions/SLI-API(config)test-results-TOP" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/SLI-API(config)test-results-TOP" - } - } - }, - "description": "Test results", - "operationId": "PUT-test-results" - } - }, - "/config/SLI-API:test-results/test-result/{test-identifier}": { - "delete": { - "produces": [ - "application/json", - "application/xml" - ], - "parameters": [ - { - "in": "path", - "name": "test-identifier", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified" - } - }, - "operationId": "DELETE-test-result" - }, - "get": { - "produces": [ - "application/json", - "application/xml" - ], - "parameters": [ - { - "in": "path", - "name": "test-identifier", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(config)test-result" - } - } - }, - "operationId": "GET-test-result" - }, - "put": { - "consumes": [ - "application/json", - "application/xml" - ], - "produces": [ - "application/json", - "application/xml" - ], - "parameters": [ - { - "in": "path", - "name": "test-identifier", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "(config)test-result", - "required": false, - "schema": { - "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" - } - } - }, - "operationId": "PUT-test-result" - } - }, - "/operational/SLI-API:test-results": { - "get": { - "produces": [ - "application/json", - "application/xml" - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(operational)test-results" - } - } - }, - "description": "Test results", - "operationId": "GET-test-results" - } - }, - "/operations/SLI-API:execute-graph": { - "post": { - "consumes": [ - "application/json", - "application/xml" - ], - "produces": [ - "application/json", - "application/xml" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "required": false, - "schema": { - "$ref": "#/definitions/(execute-graph)input-TOP" - } - } - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(execute-graph)output-TOP" - } - } - }, - "description": " Method to add a new parameter.", - "operationId": "execute-graph" - } - }, - "/operations/SLI-API:healthcheck": { - "post": { - "produces": [ - "application/json", - "application/xml" - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(healthcheck)output-TOP" - } - } - }, - "operationId": "healthcheck" - } - }, - "/operations/SLI-API:vlbcheck": { - "post": { - "produces": [ - "application/json", - "application/xml" - ], - "responses": { - "200": { - "description": "No response was specified", - "schema": { - "$ref": "#/definitions/(vlbcheck)output-TOP" - } - } - }, - "operationId": "vlbcheck" - } - } - }, - "definitions": { - "(config)SLI-API_modulePOST": { - "properties": { - "test-results": { - "items": { - "$ref": "#/definitions/SLI-API(config)test-results" - }, - "type": "object" - } - }, - "type": "object" - }, - "(config)sli-parameterPOST": { - "properties": { - "boolean-value": { - "$ref": "#/definitions/Optional.empty" - }, - "int-value": { - "$ref": "#/definitions/Optional.empty" - }, - "parameter-name": { - "$ref": "#/definitions/Optional.empty", - "description": "Parameter name" - }, - "string-value": { - "$ref": "#/definitions/Optional.empty" - } - }, - "type": "object" - }, - "(config)test-resultPOST": { - "properties": { - "test-identifier": { - "$ref": "#/definitions/Optional.empty" - } - }, - "type": "object" - }, - "(config)test-resultsPOST": { - "properties": { - "test-result": { - "items": { - "$ref": "#/definitions/SLI-API/test-results(config)test-result" - }, - "type": "array" - } - }, - "type": "object" - }, - "(execute-graph)input": { - "properties": { - "SLI-API:mode": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:module-name": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:rpc-name": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:sli-parameter": { - "items": { - "$ref": "#/definitions/SLI-API(config)sli-parameter" - }, - "type": "array" - } - }, - "type": "object" - }, - "(execute-graph)input-TOP": { - "properties": { - "SLI-API:input": { - "items": { - "$ref": "#/definitions/(execute-graph)input" - }, - "type": "object" - } - }, - "type": "object" - }, - "(execute-graph)output": { - "properties": { - "SLI-API:ack-final-indicator": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:context-memory-json": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:response-code": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:response-message": { - "$ref": "#/definitions/Optional.empty" - } - }, - "type": "object" - }, - "(execute-graph)output-TOP": { - "properties": { - "SLI-API:output": { - "items": { - "$ref": "#/definitions/(execute-graph)output" - }, - "type": "object" - } - }, - "type": "object" - }, - "(healthcheck)output": { - "properties": { - "SLI-API:ack-final-indicator": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:context-memory-json": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:response-code": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:response-message": { - "$ref": "#/definitions/Optional.empty" - } - }, - "type": "object" - }, - "(healthcheck)output-TOP": { - "properties": { - "SLI-API:output": { - "items": { - "$ref": "#/definitions/(healthcheck)output" - }, - "type": "object" - } - }, - "type": "object" - }, - "(vlbcheck)output": { - "properties": { - "SLI-API:ack-final-indicator": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:context-memory-json": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:response-code": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:response-message": { - "$ref": "#/definitions/Optional.empty" - } - }, - "type": "object" - }, - "(vlbcheck)output-TOP": { - "properties": { - "SLI-API:output": { - "items": { - "$ref": "#/definitions/(vlbcheck)output" - }, - "type": "object" - } - }, - "type": "object" - }, - "SLI-API(config)sli-parameter": { - "properties": { - "SLI-API:boolean-value": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:int-value": { - "$ref": "#/definitions/Optional.empty" - }, - "SLI-API:parameter-name": { - "$ref": "#/definitions/Optional.empty", - "description": "Parameter name" - }, - "SLI-API:string-value": { - "$ref": "#/definitions/Optional.empty" - } - }, - "type": "object" - }, - "SLI-API(config)sli-parameter-TOP": { - "properties": { - "SLI-API:sli-parameter": { - "items": { - "$ref": "#/definitions/SLI-API(config)sli-parameter" - }, - "type": "array" - } - }, - "type": "object" - }, - "SLI-API(config)test-results": { - "properties": { - "SLI-API:test-result": { - "items": { - "$ref": "#/definitions/SLI-API/test-results(config)test-result" - }, - "type": "array" - } - }, - "type": "object" - }, - "SLI-API(config)test-results-TOP": { - "properties": { - "SLI-API:test-results": { - "description": "Test results", - "items": { - "$ref": "#/definitions/SLI-API(config)test-results" - }, - "type": "object" - } - }, - "type": "object" - }, - "SLI-API(operational)test-results": { - "type": "object" - }, - "SLI-API(operational)test-results-TOP": { - "properties": { - "SLI-API:test-results": { - "description": "Test results", - "items": { - "$ref": "#/definitions/SLI-API(operational)test-results" - }, - "type": "object" - } - }, - "type": "object" - }, - "SLI-API/test-results(config)test-result": { - "properties": { - "SLI-API:results": { - "items": { - "$ref": "#/definitions/Optional.empty" - }, - "type": "array" - }, - "SLI-API:test-identifier": { - "$ref": "#/definitions/Optional.empty" - } - }, - "type": "object" - }, - "SLI-API/test-results(config)test-result-TOP": { - "properties": { - "SLI-API:test-result": { - "items": { - "$ref": "#/definitions/SLI-API/test-results(config)test-result" - }, - "type": "array" - } - }, - "type": "object" - }, - "unique_empty_identifier": {} - } -} diff --git a/sliapi/model/src/main/yang/sliapi.yang b/sliapi/model/src/main/yang/sliapi.yang deleted file mode 100755 index b3272be80..000000000 --- a/sliapi/model/src/main/yang/sliapi.yang +++ /dev/null @@ -1,130 +0,0 @@ -module SLI-API { - - yang-version 1; - - namespace "org:onap:ccsdk:sli:core:sliapi"; - - prefix sample; - - import ietf-inet-types { prefix "inet"; revision-date 2013-07-15; } - - organization "ONAP"; - - contact - "Dan Timoney"; - - description - "Defines API to service logic interpreter"; - - revision "2016-11-10" { - description - "REST API to Service Logic Interpreter"; - } - - grouping parameter-setting { - description - "Parameter setting"; - - leaf parameter-name { - type string; - description "Parameter name"; - } - - leaf int-value { - type int32; - } - leaf string-value { - type string; - } - leaf boolean-value { - type boolean; - } - } - - grouping response-fields { - leaf response-code { - type string; - } - leaf ack-final-indicator { - type string; - } - leaf response-message { - type string; - } - leaf context-memory-json { - type string; - } - } - - container test-results { - description "Test results"; - - list test-result { - key "test-identifier"; - - leaf test-identifier { - type string; - } - - leaf-list results { - type string; - } - } - } - - rpc execute-graph { - description " Method to add a new parameter."; - input { - - leaf module-name { - type string; - } - - leaf rpc-name { - type string; - } - - leaf mode { - type enumeration { - enum sync; - enum async; - } - } - - list sli-parameter { - key "parameter-name"; - uses parameter-setting; - } - } - - output { - uses response-fields; - } - } - - rpc healthcheck { - // OpenDaylight Fluorine version of restconf cannot handle RPCs with no input - input { - leaf dummy { - type string; - } - } - output { - uses response-fields; - } - } - - rpc vlbcheck { - // OpenDaylight Fluorine version of restconf cannot handle RPCs with no input - input { - leaf dummy - { - type string; - } - } - output { - uses response-fields; - } - } - -} diff --git a/sliapi/model/swagger/pom.xml b/sliapi/model/swagger/pom.xml new file mode 100644 index 000000000..544f4f9e5 --- /dev/null +++ b/sliapi/model/swagger/pom.xml @@ -0,0 +1,222 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + oparent + 2.0.0-SNAPSHOT + + + org.onap.ccsdk.sli.core + sliapi-model-swagger + 1.0.0-SNAPSHOT + jar + + ccsdk-sli-core :: sliapi :: ${project.artifactId} + Generates swagger model from yang model + http://wiki.onap.org + + + sliapi + 2.9.5 + + + + + + ${project.groupId} + sliapi-model-yang + ${project.version} + + + + + + + >bintray-yang2swagger-yang2swagge + bintray + https://dl.bintray.com/yang2swagger/yang2swagger + + false + + + + + + + + org.apache.maven.plugins + maven-dependency-plugin + 2.10 + + ${project.build.directory}/dependency + **\/*.yang + org.opendaylight.mdsal.model,org.opendaylight.mdsal.binding.model.ietf,org.onap.ccsdk.sli.core + + + + unpack-shared-resources + + unpack-dependencies + + initialize + + + + + maven-antrun-plugin + 1.8 + + + initialize + + run + + + + + + + + + + + + + + + + + + + + org.opendaylight.yangtools + yang-maven-plugin + 1.2.3 + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + ${jackson.version} + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-base + ${jackson.version} + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + ${jackson.version} + + + com.mrv.yangtools + swagger-maven-plugin + 1.1.12 + + + com.github.romix + java-concurrent-hash-trie-map + 0.2.23 + + + + + yang2swagger-json + + generate-sources + + + + + com.mrv.yangtools.maven.gen.swagger.MavenSwaggerGenerator + ${project.basedir}/src/main/json + ${project.build.directory}/yang + + ${project.version} + ${api.name} + json + odl + true + + + + false + ${project.build.directory}/yang + + + + yang2swagger-yaml + + generate-sources + + + + + com.mrv.yangtools.maven.gen.swagger.MavenSwaggerGenerator + ${project.basedir}/src/main/yaml + ${project.build.directory}/yang + + ${project.version} + ${api.name} + yaml + odl + true + + + + false + ${project.build.directory}/yang + + + + + + org.apache.maven.plugins + maven-source-plugin + + + org.codehaus.mojo + build-helper-maven-plugin + 1.10 + + + attach-artifacts + package + + attach-artifact + + + + + src/main/json/${api.name}.json + json + + + src/main/yaml/${api.name}.yaml + yaml + + + + + + + + + diff --git a/sliapi/model/swagger/src/main/json/sliapi.json b/sliapi/model/swagger/src/main/json/sliapi.json new file mode 100644 index 000000000..99a69861e --- /dev/null +++ b/sliapi/model/swagger/src/main/json/sliapi.json @@ -0,0 +1 @@ +{"swagger":"2.0","info":{"description":"Defines API to service logic interpreter,This module contains a collection of generally useful derived\nYANG data types.\n\nCopyright (c) 2013 IETF Trust and the persons identified as\nauthors of the code. All rights reserved.\n\nRedistribution and use in source and binary forms, with or\nwithout modification, is permitted pursuant to, and subject\nto the license terms contained in, the Simplified BSD License\nset forth in Section 4.c of the IETF Trust's Legal Provisions\nRelating to IETF Documents\n(http://trustee.ietf.org/license-info).\n\nThis version of this YANG module is part of RFC 6991; see\nthe RFC itself for full legal notices.,This module contains a collection of generally useful derived\nYANG data types for Internet addresses and related things.\n\nCopyright (c) 2013 IETF Trust and the persons identified as\nauthors of the code. All rights reserved.\n\nRedistribution and use in source and binary forms, with or\nwithout modification, is permitted pursuant to, and subject\nto the license terms contained in, the Simplified BSD License\nset forth in Section 4.c of the IETF Trust's Legal Provisions\nRelating to IETF Documents\n(http://trustee.ietf.org/license-info).\n\nThis version of this YANG module is part of RFC 6991; see\nthe RFC itself for full legal notices.","version":"1.0.0-SNAPSHOT","title":"SLI-API,ietf-yang-types,ietf-inet-types API"},"consumes":["application/json","application/xml"],"produces":["application/json","application/xml"],"paths":{"/config/SLI-API:test-results/":{"get":{"tags":["SLI-API"],"description":"returns sli.api.TestResults","parameters":[],"responses":{"400":{"description":"Internal error"},"200":{"description":"sli.api.TestResults","schema":{"$ref":"#/definitions/sli.api.TestResults","originalRef":"#/definitions/sli.api.TestResults"},"responseSchema":{"$ref":"#/definitions/sli.api.TestResults","originalRef":"#/definitions/sli.api.TestResults"}}}},"post":{"tags":["SLI-API"],"description":"creates sli.api.TestResults","parameters":[{"in":"body","name":"sli.api.TestResults.body-param","description":"sli.api.TestResults to be added to list","required":false,"schema":{"$ref":"#/definitions/sli.api.TestResults","originalRef":"#/definitions/sli.api.TestResults"}}],"responses":{"400":{"description":"Internal error"},"201":{"description":"Object created"},"409":{"description":"Object already exists"}}},"put":{"tags":["SLI-API"],"description":"creates or updates sli.api.TestResults","parameters":[{"in":"body","name":"sli.api.TestResults.body-param","description":"sli.api.TestResults to be added or updated","required":false,"schema":{"$ref":"#/definitions/sli.api.TestResults","originalRef":"#/definitions/sli.api.TestResults"}}],"responses":{"400":{"description":"Internal error"},"201":{"description":"Object created"},"204":{"description":"Object modified"}}},"delete":{"tags":["SLI-API"],"description":"removes sli.api.TestResults","parameters":[],"responses":{"400":{"description":"Internal error"},"204":{"description":"Object deleted"}}}},"/config/SLI-API:test-results/SLI-API:test-result/":{"post":{"description":"creates sli.api.testresults.TestResult","parameters":[{"in":"body","name":"sli.api.testresults.TestResult.body-param","description":"sli.api.testresults.TestResult to be added to list","required":false,"schema":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"}}],"responses":{"400":{"description":"Internal error"},"201":{"description":"Object created"},"409":{"description":"Object already exists"}}}},"/config/SLI-API:test-results/SLI-API:test-result/{test-identifier}/":{"get":{"tags":["SLI-API"],"description":"returns sli.api.testresults.TestResult","parameters":[{"name":"test-identifier","in":"path","description":"Id of test-result","required":true,"type":"string"}],"responses":{"400":{"description":"Internal error"},"200":{"description":"sli.api.testresults.TestResult","schema":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"},"responseSchema":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"}}}},"post":{"tags":["SLI-API"],"description":"creates sli.api.testresults.TestResult","parameters":[{"name":"test-identifier","in":"path","description":"Id of test-result","required":true,"type":"string"},{"in":"body","name":"sli.api.testresults.TestResult.body-param","description":"sli.api.testresults.TestResult to be added to list","required":false,"schema":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"}}],"responses":{"400":{"description":"Internal error"},"201":{"description":"Object created"},"409":{"description":"Object already exists"}}},"put":{"tags":["SLI-API"],"description":"creates or updates sli.api.testresults.TestResult","parameters":[{"name":"test-identifier","in":"path","description":"Id of test-result","required":true,"type":"string"},{"in":"body","name":"sli.api.testresults.TestResult.body-param","description":"sli.api.testresults.TestResult to be added or updated","required":false,"schema":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"}}],"responses":{"400":{"description":"Internal error"},"201":{"description":"Object created"},"204":{"description":"Object modified"}}},"delete":{"tags":["SLI-API"],"description":"removes sli.api.testresults.TestResult","parameters":[{"name":"test-identifier","in":"path","description":"Id of test-result","required":true,"type":"string"}],"responses":{"400":{"description":"Internal error"},"204":{"description":"Object deleted"}}}},"/operational/SLI-API:test-results/":{"get":{"tags":["SLI-API"],"description":"returns sli.api.TestResults","parameters":[],"responses":{"400":{"description":"Internal error"},"200":{"description":"sli.api.TestResults","schema":{"$ref":"#/definitions/sli.api.TestResults","originalRef":"#/definitions/sli.api.TestResults"},"responseSchema":{"$ref":"#/definitions/sli.api.TestResults","originalRef":"#/definitions/sli.api.TestResults"}}}}},"/operational/SLI-API:test-results/SLI-API:test-result/{test-identifier}/":{"get":{"tags":["SLI-API"],"description":"returns sli.api.testresults.TestResult","parameters":[{"name":"test-identifier","in":"path","description":"Id of test-result","required":true,"type":"string"}],"responses":{"400":{"description":"Internal error"},"200":{"description":"sli.api.testresults.TestResult","schema":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"},"responseSchema":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"}}}}},"/operations/SLI-API:execute-graph/":{"post":{"tags":["SLI-API"],"parameters":[{"in":"body","name":"sli.api.executegraph.Input.body-param","required":false,"schema":{"properties":{"input":{"$ref":"#/definitions/sli.api.executegraph.Input","originalRef":"#/definitions/sli.api.executegraph.Input"}}}}],"responses":{"400":{"description":"Internal error"},"200":{"description":"Correct response","schema":{"$ref":"#/definitions/sli.api.ExecuteGraph","originalRef":"#/definitions/sli.api.ExecuteGraph"},"responseSchema":{"$ref":"#/definitions/sli.api.ExecuteGraph","originalRef":"#/definitions/sli.api.ExecuteGraph"}},"201":{"description":"No response"}}}},"/operations/SLI-API:healthcheck/":{"post":{"tags":["SLI-API"],"parameters":[],"responses":{"400":{"description":"Internal error"},"200":{"description":"Correct response","schema":{"$ref":"#/definitions/sli.api.Healthcheck","originalRef":"#/definitions/sli.api.Healthcheck"},"responseSchema":{"$ref":"#/definitions/sli.api.Healthcheck","originalRef":"#/definitions/sli.api.Healthcheck"}},"201":{"description":"No response"}}}},"/operations/SLI-API:vlbcheck/":{"post":{"tags":["SLI-API"],"parameters":[],"responses":{"400":{"description":"Internal error"},"200":{"description":"Correct response","schema":{"$ref":"#/definitions/sli.api.Vlbcheck","originalRef":"#/definitions/sli.api.Vlbcheck"},"responseSchema":{"$ref":"#/definitions/sli.api.Vlbcheck","originalRef":"#/definitions/sli.api.Vlbcheck"}},"201":{"description":"No response"}}}}},"definitions":{"sli.api.ExecuteGraph":{"type":"object","properties":{"output":{"$ref":"#/definitions/sli.api.ResponseFields","originalRef":"#/definitions/sli.api.ResponseFields"}}},"sli.api.Healthcheck":{"type":"object","properties":{"output":{"$ref":"#/definitions/sli.api.ResponseFields","originalRef":"#/definitions/sli.api.ResponseFields"}}},"sli.api.ModeEnumeration":{"type":"string","enum":["sync","async"]},"sli.api.ParameterSetting":{"type":"object","properties":{"string-value":{"type":"string"},"boolean-value":{"type":"boolean"},"parameter-name":{"type":"string","description":"Parameter name"},"int-value":{"type":"integer","format":"int32"}}},"sli.api.ResponseFields":{"type":"object","properties":{"response-code":{"type":"string"},"response-message":{"type":"string"},"context-memory-json":{"type":"string"},"ack-final-indicator":{"type":"string"}}},"sli.api.TestResults":{"type":"object","properties":{"test-result":{"type":"array","items":{"$ref":"#/definitions/sli.api.testresults.TestResult","originalRef":"#/definitions/sli.api.testresults.TestResult"}}}},"sli.api.Vlbcheck":{"type":"object","properties":{"output":{"$ref":"#/definitions/sli.api.ResponseFields","originalRef":"#/definitions/sli.api.ResponseFields"}}},"sli.api.executegraph.Input":{"type":"object","properties":{"mode":{"$ref":"#/definitions/sli.api.ModeEnumeration","originalRef":"#/definitions/sli.api.ModeEnumeration"},"module-name":{"type":"string"},"sli-parameter":{"type":"array","items":{"$ref":"#/definitions/sli.api.ParameterSetting","originalRef":"#/definitions/sli.api.ParameterSetting"}},"rpc-name":{"type":"string"}}},"sli.api.testresults.TestResult":{"type":"object","properties":{"results":{"type":"array","items":{"type":"string"}},"test-identifier":{"type":"string"}}}}} \ No newline at end of file diff --git a/sliapi/model/swagger/src/main/yaml/sliapi.yaml b/sliapi/model/swagger/src/main/yaml/sliapi.yaml new file mode 100644 index 000000000..c8f2997eb --- /dev/null +++ b/sliapi/model/swagger/src/main/yaml/sliapi.yaml @@ -0,0 +1,378 @@ +--- +swagger: "2.0" +info: + description: "Defines API to service logic interpreter,This module contains a collection\ + \ of generally useful derived\nYANG data types.\n\nCopyright (c) 2013 IETF Trust\ + \ and the persons identified as\nauthors of the code. All rights reserved.\n\n\ + Redistribution and use in source and binary forms, with or\nwithout modification,\ + \ is permitted pursuant to, and subject\nto the license terms contained in, the\ + \ Simplified BSD License\nset forth in Section 4.c of the IETF Trust's Legal Provisions\n\ + Relating to IETF Documents\n(http://trustee.ietf.org/license-info).\n\nThis version\ + \ of this YANG module is part of RFC 6991; see\nthe RFC itself for full legal\ + \ notices.,This module contains a collection of generally useful derived\nYANG\ + \ data types for Internet addresses and related things.\n\nCopyright (c) 2013\ + \ IETF Trust and the persons identified as\nauthors of the code. All rights reserved.\n\ + \nRedistribution and use in source and binary forms, with or\nwithout modification,\ + \ is permitted pursuant to, and subject\nto the license terms contained in, the\ + \ Simplified BSD License\nset forth in Section 4.c of the IETF Trust's Legal Provisions\n\ + Relating to IETF Documents\n(http://trustee.ietf.org/license-info).\n\nThis version\ + \ of this YANG module is part of RFC 6991; see\nthe RFC itself for full legal\ + \ notices." + version: "1.0.0-SNAPSHOT" + title: "SLI-API,ietf-yang-types,ietf-inet-types API" +consumes: +- "application/json" +- "application/xml" +produces: +- "application/json" +- "application/xml" +paths: + /config/SLI-API:test-results/: + get: + tags: + - "SLI-API" + description: "returns sli.api.TestResults" + parameters: [] + responses: + 400: + description: "Internal error" + 200: + description: "sli.api.TestResults" + schema: + $ref: "#/definitions/sli.api.TestResults" + originalRef: "#/definitions/sli.api.TestResults" + responseSchema: + $ref: "#/definitions/sli.api.TestResults" + originalRef: "#/definitions/sli.api.TestResults" + post: + tags: + - "SLI-API" + description: "creates sli.api.TestResults" + parameters: + - in: "body" + name: "sli.api.TestResults.body-param" + description: "sli.api.TestResults to be added to list" + required: false + schema: + $ref: "#/definitions/sli.api.TestResults" + originalRef: "#/definitions/sli.api.TestResults" + responses: + 400: + description: "Internal error" + 201: + description: "Object created" + 409: + description: "Object already exists" + put: + tags: + - "SLI-API" + description: "creates or updates sli.api.TestResults" + parameters: + - in: "body" + name: "sli.api.TestResults.body-param" + description: "sli.api.TestResults to be added or updated" + required: false + schema: + $ref: "#/definitions/sli.api.TestResults" + originalRef: "#/definitions/sli.api.TestResults" + responses: + 400: + description: "Internal error" + 201: + description: "Object created" + 204: + description: "Object modified" + delete: + tags: + - "SLI-API" + description: "removes sli.api.TestResults" + parameters: [] + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /config/SLI-API:test-results/SLI-API:test-result/: + post: + description: "creates sli.api.testresults.TestResult" + parameters: + - in: "body" + name: "sli.api.testresults.TestResult.body-param" + description: "sli.api.testresults.TestResult to be added to list" + required: false + schema: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + responses: + 400: + description: "Internal error" + 201: + description: "Object created" + 409: + description: "Object already exists" + /config/SLI-API:test-results/SLI-API:test-result/{test-identifier}/: + get: + tags: + - "SLI-API" + description: "returns sli.api.testresults.TestResult" + parameters: + - name: "test-identifier" + in: "path" + description: "Id of test-result" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 200: + description: "sli.api.testresults.TestResult" + schema: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + responseSchema: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + post: + tags: + - "SLI-API" + description: "creates sli.api.testresults.TestResult" + parameters: + - name: "test-identifier" + in: "path" + description: "Id of test-result" + required: true + type: "string" + - in: "body" + name: "sli.api.testresults.TestResult.body-param" + description: "sli.api.testresults.TestResult to be added to list" + required: false + schema: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + responses: + 400: + description: "Internal error" + 201: + description: "Object created" + 409: + description: "Object already exists" + put: + tags: + - "SLI-API" + description: "creates or updates sli.api.testresults.TestResult" + parameters: + - name: "test-identifier" + in: "path" + description: "Id of test-result" + required: true + type: "string" + - in: "body" + name: "sli.api.testresults.TestResult.body-param" + description: "sli.api.testresults.TestResult to be added or updated" + required: false + schema: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + responses: + 400: + description: "Internal error" + 201: + description: "Object created" + 204: + description: "Object modified" + delete: + tags: + - "SLI-API" + description: "removes sli.api.testresults.TestResult" + parameters: + - name: "test-identifier" + in: "path" + description: "Id of test-result" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 204: + description: "Object deleted" + /operational/SLI-API:test-results/: + get: + tags: + - "SLI-API" + description: "returns sli.api.TestResults" + parameters: [] + responses: + 400: + description: "Internal error" + 200: + description: "sli.api.TestResults" + schema: + $ref: "#/definitions/sli.api.TestResults" + originalRef: "#/definitions/sli.api.TestResults" + responseSchema: + $ref: "#/definitions/sli.api.TestResults" + originalRef: "#/definitions/sli.api.TestResults" + /operational/SLI-API:test-results/SLI-API:test-result/{test-identifier}/: + get: + tags: + - "SLI-API" + description: "returns sli.api.testresults.TestResult" + parameters: + - name: "test-identifier" + in: "path" + description: "Id of test-result" + required: true + type: "string" + responses: + 400: + description: "Internal error" + 200: + description: "sli.api.testresults.TestResult" + schema: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + responseSchema: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + /operations/SLI-API:execute-graph/: + post: + tags: + - "SLI-API" + parameters: + - in: "body" + name: "sli.api.executegraph.Input.body-param" + required: false + schema: + properties: + input: + $ref: "#/definitions/sli.api.executegraph.Input" + originalRef: "#/definitions/sli.api.executegraph.Input" + responses: + 400: + description: "Internal error" + 200: + description: "Correct response" + schema: + $ref: "#/definitions/sli.api.ExecuteGraph" + originalRef: "#/definitions/sli.api.ExecuteGraph" + responseSchema: + $ref: "#/definitions/sli.api.ExecuteGraph" + originalRef: "#/definitions/sli.api.ExecuteGraph" + 201: + description: "No response" + /operations/SLI-API:healthcheck/: + post: + tags: + - "SLI-API" + parameters: [] + responses: + 400: + description: "Internal error" + 200: + description: "Correct response" + schema: + $ref: "#/definitions/sli.api.Healthcheck" + originalRef: "#/definitions/sli.api.Healthcheck" + responseSchema: + $ref: "#/definitions/sli.api.Healthcheck" + originalRef: "#/definitions/sli.api.Healthcheck" + 201: + description: "No response" + /operations/SLI-API:vlbcheck/: + post: + tags: + - "SLI-API" + parameters: [] + responses: + 400: + description: "Internal error" + 200: + description: "Correct response" + schema: + $ref: "#/definitions/sli.api.Vlbcheck" + originalRef: "#/definitions/sli.api.Vlbcheck" + responseSchema: + $ref: "#/definitions/sli.api.Vlbcheck" + originalRef: "#/definitions/sli.api.Vlbcheck" + 201: + description: "No response" +definitions: + sli.api.ExecuteGraph: + type: "object" + properties: + output: + $ref: "#/definitions/sli.api.ResponseFields" + originalRef: "#/definitions/sli.api.ResponseFields" + sli.api.Healthcheck: + type: "object" + properties: + output: + $ref: "#/definitions/sli.api.ResponseFields" + originalRef: "#/definitions/sli.api.ResponseFields" + sli.api.ModeEnumeration: + type: "string" + enum: + - "sync" + - "async" + sli.api.ParameterSetting: + type: "object" + properties: + string-value: + type: "string" + boolean-value: + type: "boolean" + parameter-name: + type: "string" + description: "Parameter name" + int-value: + type: "integer" + format: "int32" + sli.api.ResponseFields: + type: "object" + properties: + response-code: + type: "string" + response-message: + type: "string" + context-memory-json: + type: "string" + ack-final-indicator: + type: "string" + sli.api.TestResults: + type: "object" + properties: + test-result: + type: "array" + items: + $ref: "#/definitions/sli.api.testresults.TestResult" + originalRef: "#/definitions/sli.api.testresults.TestResult" + sli.api.Vlbcheck: + type: "object" + properties: + output: + $ref: "#/definitions/sli.api.ResponseFields" + originalRef: "#/definitions/sli.api.ResponseFields" + sli.api.executegraph.Input: + type: "object" + properties: + mode: + $ref: "#/definitions/sli.api.ModeEnumeration" + originalRef: "#/definitions/sli.api.ModeEnumeration" + module-name: + type: "string" + sli-parameter: + type: "array" + items: + $ref: "#/definitions/sli.api.ParameterSetting" + originalRef: "#/definitions/sli.api.ParameterSetting" + rpc-name: + type: "string" + sli.api.testresults.TestResult: + type: "object" + properties: + results: + type: "array" + items: + type: "string" + test-identifier: + type: "string" diff --git a/sliapi/model/yang/pom.xml b/sliapi/model/yang/pom.xml new file mode 100755 index 000000000..420d2ee0d --- /dev/null +++ b/sliapi/model/yang/pom.xml @@ -0,0 +1,27 @@ + + + 4.0.0 + + + org.onap.ccsdk.parent + binding-parent + 2.0.0-SNAPSHOT + + + + org.onap.ccsdk.sli.core + sliapi-model-yang + 1.0.0-SNAPSHOT + bundle + + ccsdk-sli-core :: sliapi :: ${project.artifactId} + + + + org.opendaylight.mdsal.binding.model.ietf + rfc6991 + + + + + diff --git a/sliapi/model/yang/src/main/resources/sli-api.20161110.json b/sliapi/model/yang/src/main/resources/sli-api.20161110.json new file mode 100644 index 000000000..1c6cdabfe --- /dev/null +++ b/sliapi/model/yang/src/main/resources/sli-api.20161110.json @@ -0,0 +1,554 @@ +{ + "swagger": "2.0", + "info": { + "version": "1.0.0" + }, + "basePath": "/restconf", + "paths": { + "/config": { + "post": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "**(config)test-results", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API(config)test-results-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)SLI-API_modulePOST" + } + } + }, + "description": "Defines API to service logic interpreter", + "operationId": "POST-SLI-API_module" + } + }, + "/config/SLI-API:test-results": { + "delete": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified" + } + }, + "description": "Test results", + "operationId": "DELETE-test-results" + }, + "get": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)test-results" + } + } + }, + "description": "Test results", + "operationId": "GET-test-results" + }, + "post": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "**(config)test-result", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)test-resultsPOST" + } + } + }, + "description": "Test results", + "operationId": "POST-test-results" + }, + "put": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "(config)test-results", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API(config)test-results-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/SLI-API(config)test-results-TOP" + } + } + }, + "description": "Test results", + "operationId": "PUT-test-results" + } + }, + "/config/SLI-API:test-results/test-result/{test-identifier}": { + "delete": { + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "path", + "name": "test-identifier", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified" + } + }, + "operationId": "DELETE-test-result" + }, + "get": { + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "path", + "name": "test-identifier", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(config)test-result" + } + } + }, + "operationId": "GET-test-result" + }, + "put": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "path", + "name": "test-identifier", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "(config)test-result", + "required": false, + "schema": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result-TOP" + } + } + }, + "operationId": "PUT-test-result" + } + }, + "/operational/SLI-API:test-results": { + "get": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(operational)test-results" + } + } + }, + "description": "Test results", + "operationId": "GET-test-results" + } + }, + "/operations/SLI-API:execute-graph": { + "post": { + "consumes": [ + "application/json", + "application/xml" + ], + "produces": [ + "application/json", + "application/xml" + ], + "parameters": [ + { + "in": "body", + "name": "body", + "required": false, + "schema": { + "$ref": "#/definitions/(execute-graph)input-TOP" + } + } + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(execute-graph)output-TOP" + } + } + }, + "description": " Method to add a new parameter.", + "operationId": "execute-graph" + } + }, + "/operations/SLI-API:healthcheck": { + "post": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(healthcheck)output-TOP" + } + } + }, + "operationId": "healthcheck" + } + }, + "/operations/SLI-API:vlbcheck": { + "post": { + "produces": [ + "application/json", + "application/xml" + ], + "responses": { + "200": { + "description": "No response was specified", + "schema": { + "$ref": "#/definitions/(vlbcheck)output-TOP" + } + } + }, + "operationId": "vlbcheck" + } + } + }, + "definitions": { + "(config)SLI-API_modulePOST": { + "properties": { + "test-results": { + "items": { + "$ref": "#/definitions/SLI-API(config)test-results" + }, + "type": "object" + } + }, + "type": "object" + }, + "(config)sli-parameterPOST": { + "properties": { + "boolean-value": { + "$ref": "#/definitions/Optional.empty" + }, + "int-value": { + "$ref": "#/definitions/Optional.empty" + }, + "parameter-name": { + "$ref": "#/definitions/Optional.empty", + "description": "Parameter name" + }, + "string-value": { + "$ref": "#/definitions/Optional.empty" + } + }, + "type": "object" + }, + "(config)test-resultPOST": { + "properties": { + "test-identifier": { + "$ref": "#/definitions/Optional.empty" + } + }, + "type": "object" + }, + "(config)test-resultsPOST": { + "properties": { + "test-result": { + "items": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result" + }, + "type": "array" + } + }, + "type": "object" + }, + "(execute-graph)input": { + "properties": { + "SLI-API:mode": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:module-name": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:rpc-name": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:sli-parameter": { + "items": { + "$ref": "#/definitions/SLI-API(config)sli-parameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "(execute-graph)input-TOP": { + "properties": { + "SLI-API:input": { + "items": { + "$ref": "#/definitions/(execute-graph)input" + }, + "type": "object" + } + }, + "type": "object" + }, + "(execute-graph)output": { + "properties": { + "SLI-API:ack-final-indicator": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:context-memory-json": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:response-code": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:response-message": { + "$ref": "#/definitions/Optional.empty" + } + }, + "type": "object" + }, + "(execute-graph)output-TOP": { + "properties": { + "SLI-API:output": { + "items": { + "$ref": "#/definitions/(execute-graph)output" + }, + "type": "object" + } + }, + "type": "object" + }, + "(healthcheck)output": { + "properties": { + "SLI-API:ack-final-indicator": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:context-memory-json": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:response-code": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:response-message": { + "$ref": "#/definitions/Optional.empty" + } + }, + "type": "object" + }, + "(healthcheck)output-TOP": { + "properties": { + "SLI-API:output": { + "items": { + "$ref": "#/definitions/(healthcheck)output" + }, + "type": "object" + } + }, + "type": "object" + }, + "(vlbcheck)output": { + "properties": { + "SLI-API:ack-final-indicator": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:context-memory-json": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:response-code": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:response-message": { + "$ref": "#/definitions/Optional.empty" + } + }, + "type": "object" + }, + "(vlbcheck)output-TOP": { + "properties": { + "SLI-API:output": { + "items": { + "$ref": "#/definitions/(vlbcheck)output" + }, + "type": "object" + } + }, + "type": "object" + }, + "SLI-API(config)sli-parameter": { + "properties": { + "SLI-API:boolean-value": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:int-value": { + "$ref": "#/definitions/Optional.empty" + }, + "SLI-API:parameter-name": { + "$ref": "#/definitions/Optional.empty", + "description": "Parameter name" + }, + "SLI-API:string-value": { + "$ref": "#/definitions/Optional.empty" + } + }, + "type": "object" + }, + "SLI-API(config)sli-parameter-TOP": { + "properties": { + "SLI-API:sli-parameter": { + "items": { + "$ref": "#/definitions/SLI-API(config)sli-parameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "SLI-API(config)test-results": { + "properties": { + "SLI-API:test-result": { + "items": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result" + }, + "type": "array" + } + }, + "type": "object" + }, + "SLI-API(config)test-results-TOP": { + "properties": { + "SLI-API:test-results": { + "description": "Test results", + "items": { + "$ref": "#/definitions/SLI-API(config)test-results" + }, + "type": "object" + } + }, + "type": "object" + }, + "SLI-API(operational)test-results": { + "type": "object" + }, + "SLI-API(operational)test-results-TOP": { + "properties": { + "SLI-API:test-results": { + "description": "Test results", + "items": { + "$ref": "#/definitions/SLI-API(operational)test-results" + }, + "type": "object" + } + }, + "type": "object" + }, + "SLI-API/test-results(config)test-result": { + "properties": { + "SLI-API:results": { + "items": { + "$ref": "#/definitions/Optional.empty" + }, + "type": "array" + }, + "SLI-API:test-identifier": { + "$ref": "#/definitions/Optional.empty" + } + }, + "type": "object" + }, + "SLI-API/test-results(config)test-result-TOP": { + "properties": { + "SLI-API:test-result": { + "items": { + "$ref": "#/definitions/SLI-API/test-results(config)test-result" + }, + "type": "array" + } + }, + "type": "object" + }, + "unique_empty_identifier": {} + } +} diff --git a/sliapi/model/yang/src/main/resources/sli-api.20161110.yaml b/sliapi/model/yang/src/main/resources/sli-api.20161110.yaml new file mode 100644 index 000000000..3420c66b5 --- /dev/null +++ b/sliapi/model/yang/src/main/resources/sli-api.20161110.yaml @@ -0,0 +1,254 @@ +--- +swagger: '2.0' +info: + version: 1.0.0 + title: "SLI API" +basePath: '/restconf' +schemes: + - http + - https +paths: + '/restconf/config/SLI-API:test-results': + delete: + produces: + - application/json + - application/xml + responses: + '200': + description: No response was specified + description: Test results + operationId: delete-test-results + get: + produces: + - application/json + - application/xml + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/test-results' + description: Test results + operationId: get-test-results + post: + consumes: + - application/json + - application/xml + produces: + - application/json + - application/xml + parameters: + - in: body + name: testResults + required: false + schema: + $ref: '#/definitions/test-results' + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/test-results' + description: Test results + operationId: post-test-results + put: + consumes: + - application/json + - application/xml + produces: + - application/json + - application/xml + parameters: + - in: body + name: testResults + required: false + schema: + $ref: '#/definitions/test-results' + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/test-results' + description: Test results + operationId: put-test-results + + '/restconf/config/SLI-API:test-results/test-result/{test-identifier}': + delete: + produces: + - application/json + - application/xml + parameters: + - in: path + name: test-identifier + required: true + type: string + responses: + '200': + description: No response was specified + operationId: delete-test-result + get: + produces: + - application/json + - application/xml + parameters: + - in: path + name: test-identifier + required: true + type: string + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/test-result' + operationId: get-test-result + put: + consumes: + - application/json + - application/xml + produces: + - application/json + - application/xml + parameters: + - in: path + name: test-identifier + required: true + type: string + - in: body + name: testResult + required: false + schema: + $ref: '#/definitions/test-result' + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/test-result' + operationId: PUT-test-result + + '/restconf/operational/SLI-API:test-results': + get: + produces: + - application/json + - application/xml + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/test-results' + description: Test results + operationId: GET-test-results + '/restconf/operations/SLI-API:execute-graph': + post: + consumes: + - application/json + - application/xml + produces: + - application/json + - application/xml + parameters: + - in: body + name: executeGraphInput + required: false + schema: + $ref: '#/definitions/execute-graph-input' + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/response-fields' + description: ' Method to add a new parameter.' + operationId: execute-graph + '/restconf/operations/SLI-API:healthcheck': + post: + consumes: + - application/json + - application/xml + produces: + - application/json + - application/xml + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/response-fields' + operationId: healthcheck + '/restconf/operations/SLI-API:vlbcheck': + post: + consumes: + - application/json + - application/xml + produces: + - application/json + - application/xml + responses: + '200': + description: No response was specified + schema: + $ref: '#/definitions/response-fields' + operationId: vlbcheck + +definitions: + parameter-setting: + type: object + properties: + parameter-name: + type: string + int-value: + type: integer + string-value: + type: string + boolean-value: + type: boolean + + response-fields: + type: object + properties: + response-code: + type: string + ack-final-indicator: + type: string + response-message: + type: string + context-memory-json: + type: string + + test-results: + type: object + properties: + test-results: + type: array + items: + $ref: '#/definitions/test-result' + + test-result: + type: object + properties: + test-identifier: + type: string + results: + type: array + items: + type: string + + execute-graph-input: + properties: + 'input': + type: object + properties: + 'mode': + type: string + 'module-name': + type: string + 'rpc-name': + type: string + 'sli-parameter': + items: + $ref: '#/definitions/parameter-setting' + type: array + type: object + + + + + + + unique_empty_identifier: {} + diff --git a/sliapi/model/yang/src/main/yang/sliapi.yang b/sliapi/model/yang/src/main/yang/sliapi.yang new file mode 100755 index 000000000..98cbb2aa7 --- /dev/null +++ b/sliapi/model/yang/src/main/yang/sliapi.yang @@ -0,0 +1,117 @@ +module SLI-API { + + yang-version 1; + + namespace "org:onap:ccsdk:sli:core:sliapi"; + + prefix sample; + + import ietf-inet-types { prefix "inet"; revision-date 2013-07-15; } + + organization "ONAP"; + + contact + "Dan Timoney"; + + description + "Defines API to service logic interpreter"; + + revision "2016-11-10" { + description + "REST API to Service Logic Interpreter"; + } + + grouping parameter-setting { + description + "Parameter setting"; + + leaf parameter-name { + type string; + description "Parameter name"; + } + + leaf int-value { + type int32; + } + leaf string-value { + type string; + } + leaf boolean-value { + type boolean; + } + } + + grouping response-fields { + leaf response-code { + type string; + } + leaf ack-final-indicator { + type string; + } + leaf response-message { + type string; + } + leaf context-memory-json { + type string; + } + } + + container test-results { + description "Test results"; + + list test-result { + key "test-identifier"; + + leaf test-identifier { + type string; + } + + leaf-list results { + type string; + } + } + } + + rpc execute-graph { + description " Method to add a new parameter."; + input { + + leaf module-name { + type string; + } + + leaf rpc-name { + type string; + } + + leaf mode { + type enumeration { + enum sync; + enum async; + } + } + + list sli-parameter { + key "parameter-name"; + uses parameter-setting; + } + } + + output { + uses response-fields; + } + } + + rpc healthcheck { + output { + uses response-fields; + } + } + + rpc vlbcheck { + output { + uses response-fields; + } + } + +} diff --git a/sliapi/pom.xml b/sliapi/pom.xml index e2c910801..367d82cf2 100755 --- a/sliapi/pom.xml +++ b/sliapi/pom.xml @@ -19,7 +19,6 @@ model provider - springboot installer diff --git a/sliapi/provider/pom.xml b/sliapi/provider/pom.xml index e726b24f2..f80003766 100755 --- a/sliapi/provider/pom.xml +++ b/sliapi/provider/pom.xml @@ -28,7 +28,7 @@ org.onap.ccsdk.sli.core - sliapi-model + sliapi-model-yang ${project.version} diff --git a/sliapi/springboot/.swagger-codegen-ignore b/sliapi/springboot/.swagger-codegen-ignore deleted file mode 100644 index d14d7b944..000000000 --- a/sliapi/springboot/.swagger-codegen-ignore +++ /dev/null @@ -1 +0,0 @@ -**/RestconfApiController.java diff --git a/sliapi/springboot/README.md b/sliapi/springboot/README.md deleted file mode 100644 index 38be1c2f9..000000000 --- a/sliapi/springboot/README.md +++ /dev/null @@ -1,33 +0,0 @@ -This directory contains a demo springboot implementation of the SLI-API healthcheck method. - -To start this server with out AAF authentication, run: -mvn -DserviceLogicDirectory=src/main/resources spring-boot:run - -To start this server with AAF authentication, run: -mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dcadi_prop_files=/opt/onap/sdnc/data/properties/org.onap.sdnc.props -DserviceLogicDirectory=src/main/resources" - - -This will start a servlet on port 8080. To test to that servlet, post a blank -message to that port: - -curl http://127.0.0.1:8080/restconf/operations/SLI-API:healthcheck -X POST -H "Content-Type: application/json" - -Requests can also be sent to `http://localhost:8080/executeGraph` - -The graph details need to match a graph which has been loaded and activated - -An example request -``` -{ - "graphDetails": { - "module": "prov", - "rpc": "test", - "mode": "sync" - }, - "input": { - "name": "Hello World", - "test": "one", - "mixed": "cAsE" - } -} -``` diff --git a/sliapi/springboot/pom.xml b/sliapi/springboot/pom.xml deleted file mode 100644 index 269caa47f..000000000 --- a/sliapi/springboot/pom.xml +++ /dev/null @@ -1,179 +0,0 @@ - - - 4.0.0 - - - org.onap.ccsdk.parent - spring-boot-starter-parent - 2.0.0-SNAPSHOT - - - - org.onap.ccsdk.sli.core - sliapi-springboot - 1.0.0-SNAPSHOT - jar - - ccsdk-sli-core :: sliapi :: ${project.artifactId} - - - org.onap.ccsdk.sli.core.sliapi.springboot.App - 1.5.0 - 2.1.13 - - - - - io.swagger - swagger-annotations - - - org.apache.shiro - shiro-spring-boot-web-starter - ${shiro.version} - - - org.springframework.boot - spring-boot-starter-logging - - - - - org.springframework.boot - spring-boot-starter-log4j2 - - - org.onap.aaf.cadi - aaf-cadi-shiro - ${aaf-shiro-bundle.version} - - - - org.springframework.boot - spring-boot-starter-test - test - - - org.springframework.boot - spring-boot-starter-data-jpa - - - io.springfox - springfox-swagger2 - 2.9.2 - - - io.springfox - springfox-swagger-ui - 2.9.2 - - - - - ${project.groupId} - dblib-provider - ${project.version} - - - ${project.groupId} - sli-common - ${project.version} - - - ${project.groupId} - sli-provider-base - ${project.version} - - - com.google.code.gson - gson - - - org.apache.derby - derby - test - - - org.mariadb.jdbc - mariadb-java-client - - - junit - junit - test - - - org.onap.logging-analytics - logging-filter-spring - 1.6.6 - - - javax.ws.rs - javax.ws.rs-api - - - org.onap.ccsdk.sli.core - sliPluginUtils-provider - ${project.version} - - - org.onap.ccsdk.sli.plugins - restapi-call-node-provider - ${project.version} - - - org.onap.ccsdk.sli.plugins - properties-node-provider - ${project.version} - - - - org.glassfish.jersey.inject - jersey-hk2 - - - - - - - io.swagger - swagger-codegen-maven-plugin - 2.3.1 - - - - generate - - - target/generated-sources - ${project.basedir}/../model/src/main/resources/sli-api.20161110.yaml - spring - org.onap.ccsdk.sli.core.sliapi.springboot.controllers.swagger - org.onap.ccsdk.sli.core.sliapi.model - org.onap.ccsdk.sli.core.sliapi.springboot.controllers.swagger - true - true - ${project.basedir}/.swagger-codegen-ignore - true - - true - 2.2.4-RELEASE - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - - - - - diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/App.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/App.java deleted file mode 100644 index f4e78bebe..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/App.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - CCSDK - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.sliapi.springboot; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.ComponentScan; -import springfox.documentation.swagger2.annotations.EnableSwagger2; -import org.apache.shiro.realm.Realm; -import org.apache.shiro.realm.text.PropertiesRealm; -import org.apache.shiro.realm.text.TextConfigurationRealm; -import org.apache.shiro.spring.web.config.DefaultShiroFilterChainDefinition; -import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition; -import org.springframework.context.annotation.Bean; -import org.onap.aaf.cadi.shiro.AAFRealm; - -@SpringBootApplication -@EnableSwagger2 -@ComponentScan(basePackages = { "org.onap.ccsdk.sli.core.sliapi.springboot.*" }) - -public class App { - - private static final Logger log = LoggerFactory.getLogger(App.class); - - public static void main(String[] args) throws Exception { - SpringApplication.run(App.class, args); - } - - @Bean - public Realm realm() { - - // If cadi prop files is not defined use local properties realm - // src/main/resources/shiro-users.properties - if ("none".equals(System.getProperty("cadi_prop_files", "none"))) { - log.info("cadi_prop_files undefined, AAF Realm will not be set"); - PropertiesRealm realm = new PropertiesRealm(); - return realm; - } else { - AAFRealm realm = new AAFRealm(); - return realm; - } - - } - - @Bean - public ShiroFilterChainDefinition shiroFilterChainDefinition() { - DefaultShiroFilterChainDefinition chainDefinition = new DefaultShiroFilterChainDefinition(); - - // if cadi prop files is not set disable authentication - if ("none".equals(System.getProperty("cadi_prop_files", "none"))) { - chainDefinition.addPathDefinition("/**", "anon"); - } else { - log.info("Loaded property cadi_prop_files, AAF REALM set"); - chainDefinition.addPathDefinition("/**", "authcBasic, rest[org.onap.sdnc.odl:odl-api]"); - } - - return chainDefinition; - } - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/ExecuteGraphController.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/ExecuteGraphController.java deleted file mode 100644 index 809cfe59c..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/ExecuteGraphController.java +++ /dev/null @@ -1,112 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - CCSDK - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.sliapi.springboot.controllers; - -import java.util.HashMap; -import java.util.Map.Entry; -import java.util.Properties; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceBase; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.stereotype.Controller; -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.ResponseBody; -import com.google.gson.Gson; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -@Controller -@EnableAutoConfiguration -public class ExecuteGraphController { - @Autowired - protected SvcLogicServiceBase svc; - - @RequestMapping(value = "/executeGraph", method = RequestMethod.POST) - @ResponseBody - public HashMap executeGraph(@RequestBody String input) { - HashMap hash = new HashMap(); - Properties parms = new Properties(); - - hash.put("status", "success"); - JsonObject jsonInput = new Gson().fromJson(input, JsonObject.class); - JsonObject passthroughObj = jsonInput.get("input").getAsJsonObject(); - - writeResponseToCtx(passthroughObj.toString(), parms, "input"); - - JsonObject inputObject = jsonInput.get("graphDetails").getAsJsonObject(); - try { - // Any of these can throw a nullpointer exception - String calledModule = inputObject.get("module").getAsString(); - String calledRpc = inputObject.get("rpc").getAsString(); - String modeStr = inputObject.get("mode").getAsString(); - // execute should only throw a SvcLogicException - Properties respProps = svc.execute(calledModule, calledRpc, null, modeStr, parms); - for (Entry prop : respProps.entrySet()) { - hash.put((String) prop.getKey(), (String) prop.getValue()); - } - } catch (NullPointerException npe) { - HashMap errorHash = new HashMap(); - errorHash.put("error-message", "check that you populated module, rpc and or mode correctly."); - return errorHash; - } catch (SvcLogicException e) { - HashMap errorHash = new HashMap(); - errorHash.put("status", "failure"); - errorHash.put("message", e.getMessage()); - return errorHash; - } - return hash; - } - - public static void writeResponseToCtx(String resp, Properties ctx, String prefix) { - JsonParser jp = new JsonParser(); - JsonElement element = jp.parse(resp); - writeJsonObject(element.getAsJsonObject(), ctx, prefix + "."); - } - - public static void writeJsonObject(JsonObject obj, Properties ctx, String root) { - for (Entry entry : obj.entrySet()) { - if (entry.getValue().isJsonObject()) { - writeJsonObject(entry.getValue().getAsJsonObject(), ctx, root + entry.getKey() + "."); - } else if (entry.getValue().isJsonArray()) { - JsonArray array = entry.getValue().getAsJsonArray(); - ctx.put(root + entry.getKey() + "_length", String.valueOf(array.size())); - Integer arrayIdx = 0; - for (JsonElement element : array) { - if (element.isJsonObject()) { - writeJsonObject(element.getAsJsonObject(), ctx, root + entry.getKey() + "[" + arrayIdx + "]."); - } - arrayIdx++; - } - } else { - ctx.put(root + entry.getKey(), entry.getValue().getAsString()); - } - } - } - - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultConfig.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultConfig.java deleted file mode 100644 index f8ed1b4ce..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultConfig.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.onap.ccsdk.sli.core.sliapi.springboot.controllers.data; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -@Entity -public class TestResultConfig { - - - @Id - @GeneratedValue(strategy= GenerationType.AUTO) - private Long id; - - private String testIdentifier; - private String results; - - public TestResultConfig() - { - - } - public TestResultConfig(String testIdentifier, String results) { - this.testIdentifier = testIdentifier; - this.results = results; - } - - public String getTestIdentifier() { - return testIdentifier; - } - - public void setTestIdentifier(String testIdentifier) { - this.testIdentifier = testIdentifier; - } - - public String getResults() { - return results; - } - - public void setResults(String results) { - this.results = results; - } - - - - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultOperational.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultOperational.java deleted file mode 100644 index 4c3709e6e..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultOperational.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.onap.ccsdk.sli.core.sliapi.springboot.controllers.data; - -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -@Entity -public class TestResultOperational { - - - @Id - @GeneratedValue(strategy= GenerationType.AUTO) - private Long id; - - private String testIdentifier; - private String results; - - public TestResultOperational() - { - - } - - public TestResultOperational(String testIdentifier, String results) { - this.testIdentifier = testIdentifier; - this.results = results; - } - - public String getTestIdentifier() { - return testIdentifier; - } - - public void setTestIdentifier(String testIdentifier) { - this.testIdentifier = testIdentifier; - } - - public String getResults() { - return results; - } - - public void setResults(String results) { - this.results = results; - } - - - - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsConfigRepository.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsConfigRepository.java deleted file mode 100644 index 1a73b3f50..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsConfigRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.onap.ccsdk.sli.core.sliapi.springboot.controllers.data; - -import org.springframework.data.repository.CrudRepository; - -import java.util.List; - -public interface TestResultsConfigRepository extends CrudRepository { - - List findByTestIdentifier(String testIdentifier); - - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsOperationalRepository.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsOperationalRepository.java deleted file mode 100644 index d81c02b23..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/data/TestResultsOperationalRepository.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.onap.ccsdk.sli.core.sliapi.springboot.controllers.data; - -import org.springframework.data.repository.CrudRepository; - -import java.util.List; - -public interface TestResultsOperationalRepository extends CrudRepository { - - List findByTestIdentifier(String testIdentifier); - - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/swagger/RestconfApiController.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/swagger/RestconfApiController.java deleted file mode 100644 index aa9a9d7e8..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/controllers/swagger/RestconfApiController.java +++ /dev/null @@ -1,364 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - CCSDK - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.sliapi.springboot.controllers.swagger; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.onap.ccsdk.sli.core.sli.SvcLogicException; -import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceBase; -import org.onap.ccsdk.sli.core.sliapi.model.ExecuteGraphInput; -import org.onap.ccsdk.sli.core.sliapi.model.ResponseFields; -import org.onap.ccsdk.sli.core.sliapi.model.TestResult; -import org.onap.ccsdk.sli.core.sliapi.model.TestResults; -import org.onap.ccsdk.sli.core.sliapi.springboot.controllers.data.TestResultConfig; -import org.onap.ccsdk.sli.core.sliapi.springboot.controllers.data.TestResultsConfigRepository; -import org.onap.ccsdk.sli.core.sliapi.springboot.controllers.data.TestResultsOperationalRepository; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; - -import javax.servlet.http.HttpServletRequest; -import javax.validation.Valid; -import java.util.*; - -@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2020-02-20T12:50:11.207-05:00") - -@Controller -@ComponentScan(basePackages = {"org.onap.ccsdk.sli.core.sliapi.springboot.*"}) -@EntityScan("org.onap.ccsdk.sli.core.sliapi.springboot.*") -public class RestconfApiController implements RestconfApi { - - private final ObjectMapper objectMapper; - private final HttpServletRequest request; - - @Autowired - protected SvcLogicServiceBase svc; - - @Autowired - private TestResultsConfigRepository testResultsConfigRepository; - - @Autowired - private TestResultsOperationalRepository testResultsOperationalRepository; - - private static final Logger log = LoggerFactory.getLogger(RestconfApiController.class); - - @org.springframework.beans.factory.annotation.Autowired - public RestconfApiController(ObjectMapper objectMapper, HttpServletRequest request) { - this.objectMapper = objectMapper; - this.request = request; - } - - @Override - public ResponseEntity healthcheck() { - ResponseFields resp = new ResponseFields(); - - try { - log.info("Calling SLI-API:healthcheck DG"); - SvcLogicContext ctxIn = new SvcLogicContext(); - SvcLogicContext ctxOut = svc.execute("sli", "healthcheck", null, "sync", ctxIn); - Properties respProps = ctxOut.toProperties(); - - resp.setAckFinalIndicator(respProps.getProperty("ack-final-indicator", "Y")); - resp.setResponseCode(respProps.getProperty("error-code", "200")); - resp.setResponseMessage(respProps.getProperty("error-message", "Success")); - resp.setContextMemoryJson(propsToJson(respProps, "context-memory")); - - return (new ResponseEntity<>(resp, HttpStatus.OK)); - } catch (Exception e) { - resp.setAckFinalIndicator("true"); - resp.setResponseCode("500"); - resp.setResponseMessage(e.getMessage()); - log.error("Error calling healthcheck directed graph", e); - - } - return (new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR)); - } - - @Override - public ResponseEntity vlbcheck() { - ResponseFields resp = new ResponseFields(); - - try { - log.info("Calling SLI-API:vlbcheck DG"); - SvcLogicContext ctxIn = new SvcLogicContext(); - SvcLogicContext ctxOut = svc.execute("sli", "vlbcheck", null, "sync", ctxIn); - Properties respProps = ctxOut.toProperties(); - resp.setAckFinalIndicator(respProps.getProperty("ack-final-indicator", "Y")); - resp.setResponseCode(respProps.getProperty("error-code", "200")); - resp.setResponseMessage(respProps.getProperty("error-message", "Success")); - resp.setContextMemoryJson(propsToJson(respProps, "context-memory")); - - return (new ResponseEntity<>(resp, HttpStatus.OK)); - } catch (Exception e) { - resp.setAckFinalIndicator("true"); - resp.setResponseCode("500"); - resp.setResponseMessage(e.getMessage()); - log.error("Error calling vlbcheck directed graph", e); - - } - return (new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR)); - } - - - @Override - public Optional getObjectMapper() { - return Optional.ofNullable(objectMapper); - } - - @Override - public Optional getRequest() { - return Optional.ofNullable(request); - } - - @Override - public ResponseEntity executeGraph(@Valid ExecuteGraphInput executeGraphInput) { - SvcLogicContext ctxIn = new SvcLogicContext(); - ResponseFields resp = new ResponseFields(); - String executeGraphInputJson = null; - - try { - executeGraphInputJson = objectMapper.writeValueAsString(executeGraphInput); - log.info("Input as JSON is "+executeGraphInputJson); - } catch (JsonProcessingException e) { - - resp.setAckFinalIndicator("true"); - resp.setResponseCode("500"); - resp.setResponseMessage(e.getMessage()); - log.error("Cannot create JSON from input object", e); - return (new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR)); - - } - JsonObject jsonInput = new Gson().fromJson(executeGraphInputJson, JsonObject.class); - JsonObject passthroughObj = jsonInput.get("input").getAsJsonObject(); - - ctxIn.mergeJson("input", passthroughObj.toString()); - - try { - // Any of these can throw a nullpointer exception - String calledModule = executeGraphInput.getInput().getModuleName(); - String calledRpc = executeGraphInput.getInput().getRpcName(); - String modeStr = executeGraphInput.getInput().getMode(); - // execute should only throw a SvcLogicException - SvcLogicContext ctxOut = svc.execute(calledModule, calledRpc, null, modeStr, ctxIn); - Properties respProps = ctxOut.toProperties(); - - resp.setAckFinalIndicator(respProps.getProperty("ack-final-indicator", "Y")); - resp.setResponseCode(respProps.getProperty("error-code", "200")); - resp.setResponseMessage(respProps.getProperty("error-message", "SUCCESS")); - resp.setContextMemoryJson(propsToJson(respProps, "context-memory")); - return (new ResponseEntity<>(resp, HttpStatus.valueOf(Integer.parseInt(resp.getResponseCode())))); - - } catch (NullPointerException npe) { - resp.setAckFinalIndicator("true"); - resp.setResponseCode("500"); - resp.setResponseMessage("Check that you populated module, rpc and or mode correctly."); - - return (new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR)); - } catch (SvcLogicException e) { - resp.setAckFinalIndicator("true"); - resp.setResponseCode("500"); - resp.setResponseMessage(e.getMessage()); - - return (new ResponseEntity<>(resp, HttpStatus.INTERNAL_SERVER_ERROR)); - } - } - - @Override - public ResponseEntity deleteTestResult(String testIdentifier) { - - List testResultConfigs = testResultsConfigRepository.findByTestIdentifier(testIdentifier); - - if (testResultConfigs != null) { - Iterator testResultConfigIterator = testResultConfigs.iterator(); - while (testResultConfigIterator.hasNext()) { - testResultsConfigRepository.delete(testResultConfigIterator.next()); - } - } - - return (new ResponseEntity<>(HttpStatus.OK)); - } - - @Override - public ResponseEntity deleteTestResults() { - - testResultsConfigRepository.deleteAll(); - - return (new ResponseEntity<>(HttpStatus.OK)); - } - - @Override - public ResponseEntity gETTestResults() { - - TestResults results = new TestResults(); - - testResultsOperationalRepository.findAll().forEach(testResult -> { - TestResult item = null; - try { - item = objectMapper.readValue(testResult.getResults(), TestResult.class); - results.addTestResultsItem(item); - } catch (JsonProcessingException e) { - log.error("Could not convert testResult", e); - } - }); - - - return new ResponseEntity<>(results, HttpStatus.OK); - } - - @Override - public ResponseEntity getTestResult(String testIdentifier) { - List testResultConfigs = testResultsConfigRepository.findByTestIdentifier(testIdentifier); - - if ((testResultConfigs == null) || (testResultConfigs.size() == 0)) { - return new ResponseEntity<>(HttpStatus.NOT_FOUND); - } else { - TestResultConfig testResultConfig = testResultConfigs.get(0); - TestResult testResult = null; - try { - testResult = objectMapper.readValue(testResultConfig.getResults(), TestResult.class); - } catch (JsonProcessingException e) { - log.error("Cannot convert test result", e); - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); - } - - - return new ResponseEntity<>(testResult, HttpStatus.OK); - } - } - - @Override - public ResponseEntity getTestResults() { - if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { - } else { - log.warn("ObjectMapper or HttpServletRequest not configured in default RestconfApi interface so no example is generated"); - } - - TestResults results = new TestResults(); - - testResultsConfigRepository.findAll().forEach(testResult -> { - TestResult item = null; - try { - item = objectMapper.readValue(testResult.getResults(), TestResult.class); - results.addTestResultsItem(item); - } catch (JsonProcessingException e) { - log.error("Could not convert testResult", e); - } - }); - - - return new ResponseEntity<>(results, HttpStatus.OK); - } - - @Override - public ResponseEntity pUTTestResult(String testIdentifier, @Valid TestResult testResult) { - if(getObjectMapper().isPresent() && getAcceptHeader().isPresent()) { - } else { - log.warn("ObjectMapper or HttpServletRequest not configured in default RestconfApi interface so no example is generated"); - } - - List testResultConfigs = testResultsConfigRepository.findByTestIdentifier(testIdentifier); - Iterator testResultIter = testResultConfigs.iterator(); - while (testResultIter.hasNext()) { - testResultsConfigRepository.delete(testResultIter.next()); - } - - TestResultConfig testResultConfig = null; - try { - testResultConfig = new TestResultConfig(testResult.getTestIdentifier(), objectMapper.writeValueAsString(testResult)); - testResultsConfigRepository.save(testResultConfig); - } catch (JsonProcessingException e) { - log.error("Could not save test result", e); - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); - } - - return new ResponseEntity<>(testResult, HttpStatus.OK); - } - - @Override - public ResponseEntity postTestResults(@Valid TestResults testResults) { - List resultList = testResults.getTestResults(); - - Iterator resultIterator = resultList.iterator(); - - while (resultIterator.hasNext()) { - TestResult curResult = resultIterator.next(); - try { - testResultsConfigRepository.save(new TestResultConfig(curResult.getTestIdentifier(), objectMapper.writeValueAsString(curResult))); - } catch (JsonProcessingException e) { - log.error("Could not save test result", e); - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); - } - } - - return new ResponseEntity<>(testResults, HttpStatus.OK); - } - - @Override - public ResponseEntity putTestResults(@Valid TestResults testResults) { - testResultsConfigRepository.deleteAll(); - - List resultList = testResults.getTestResults(); - - Iterator resultIterator = resultList.iterator(); - - - while (resultIterator.hasNext()) { - TestResult curResult = resultIterator.next(); - try { - testResultsConfigRepository.save(new TestResultConfig(curResult.getTestIdentifier(), objectMapper.writeValueAsString(curResult))); - } catch (JsonProcessingException e) { - log.error("Could not save test result", e); - return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); - } - } - - return new ResponseEntity<>(testResults, HttpStatus.OK); - } - - public static String propsToJson(Properties props, String root) - { - StringBuffer sbuff = new StringBuffer(); - - sbuff.append("{ \""+root+"\" : { "); - boolean needComma = false; - for (Map.Entry prop : props.entrySet()) { - sbuff.append("\""+(String) prop.getKey()+"\" : \""+(String)prop.getValue()+"\""); - if (needComma) { - sbuff.append(" , "); - } else { - needComma = true; - } - } - sbuff.append(" } }"); - - return(sbuff.toString()); - } - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java deleted file mode 100644 index 0c8480e11..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/SvcLogicFactory.java +++ /dev/null @@ -1,150 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - CCSDK - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.sliapi.springboot.core; - -import java.io.FileInputStream; -import java.io.IOException; -import java.util.List; -import java.util.Properties; -import org.onap.ccsdk.sli.core.sli.ConfigurationException; -import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin; -import org.onap.ccsdk.sli.core.sli.SvcLogicLoader; -import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder; -import org.onap.ccsdk.sli.core.sli.SvcLogicStore; -import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory; -import org.onap.ccsdk.sli.core.sli.provider.base.HashMapResolver; -import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicPropertiesProvider; -import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicResolver; -import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceBase; -import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceImplBase; -import org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder; -import org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils; -import org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils; -import org.onap.ccsdk.sli.plugins.prop.PropertiesNode; -import org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class SvcLogicFactory { - private static final Logger log = LoggerFactory.getLogger(SvcLogicFactory.class); - - @Autowired - List recorders; - - @Autowired - List plugins; - - @Bean - public SvcLogicStore getStore() throws Exception { - SvcLogicPropertiesProvider propProvider = new SvcLogicPropertiesProvider() { - - @Override - public Properties getProperties() { - Properties props = new Properties(); - - - String propPath = System.getProperty("serviceLogicProperties", ""); - - if ("".equals(propPath)) { - propPath = System.getenv("SVCLOGIC_PROPERTIES"); - } - - - if ((propPath == null) || propPath.length() == 0) { - propPath = "src/main/resources/svclogic.properties"; - } - System.out.println(propPath); - try (FileInputStream fileInputStream = new FileInputStream(propPath)) { - props = new Properties(); - props.load(fileInputStream); - } catch (final IOException e) { - log.error("Failed to load properties for file: {}", propPath, - new ConfigurationException("Failed to load properties for file: " + propPath, e)); - } - return props; - } - }; - SvcLogicStore store = SvcLogicStoreFactory.getSvcLogicStore(propProvider.getProperties()); - return store; - } - - @Bean - public SvcLogicLoader createLoader() throws Exception { - String serviceLogicDirectory = System.getProperty("serviceLogicDirectory"); - if (serviceLogicDirectory == null) { - serviceLogicDirectory = "src/main/resources"; - } - - System.out.println("serviceLogicDirectory is " + serviceLogicDirectory); - SvcLogicLoader loader = new SvcLogicLoader(serviceLogicDirectory, getStore()); - - try { - loader.loadAndActivate(); - } catch (IOException e) { - log.error("Cannot load directed graphs", e); - } - return loader; - } - - @Bean - public SvcLogicServiceBase createService() throws Exception { - HashMapResolver resolver = new HashMapResolver(); - for (SvcLogicRecorder recorder : recorders) { - resolver.addSvcLogicRecorder(recorder.getClass().getName(), recorder); - - } - for (SvcLogicJavaPlugin plugin : plugins) { - resolver.addSvcLogicSvcLogicJavaPlugin(plugin.getClass().getName(), plugin); - - } - return new SvcLogicServiceImplBase(getStore(), resolver); - } - - @Bean - public Slf4jRecorder slf4jRecorderNode() { - return new Slf4jRecorder(); - } - - @Bean - public SliPluginUtils sliPluginUtil() { - return new SliPluginUtils(); - } - - @Bean - public SliStringUtils sliStringUtils() { - return new SliStringUtils(); - } - - @Bean - public RestapiCallNode restapiCallNode() { - return new RestapiCallNode(); - } - - @Bean - public PropertiesNode propertiesNode() { - return new PropertiesNode(); - } - -} diff --git a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/WebConfig.java b/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/WebConfig.java deleted file mode 100644 index 558a82a11..000000000 --- a/sliapi/springboot/src/main/java/org/onap/ccsdk/sli/core/sliapi/springboot/core/WebConfig.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - CCSDK - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.sliapi.springboot.core; - -import org.onap.logging.filter.spring.LoggingInterceptor; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.autoconfigure.domain.EntityScan; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.repository.config.EnableJpaRepositories; -import org.springframework.jdbc.datasource.DriverManagerDataSource; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder; -import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType; -import org.springframework.orm.jpa.JpaTransactionManager; -import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; -import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter; -import org.springframework.transaction.PlatformTransactionManager; -import org.springframework.transaction.annotation.EnableTransactionManagement; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.InterceptorRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -import javax.persistence.EntityManagerFactory; -import javax.sql.DataSource; - -@EnableWebMvc -@Configuration -@EnableJpaRepositories("org.onap.ccsdk.sli.core.sliapi.springboot.*") -@ComponentScan(basePackages = {"org.onap.ccsdk.sli.core.sliapi.springboot.*"}) -@EntityScan("org.onap.ccsdk.sli.core.sliapi.springboot.*") -@EnableTransactionManagement -public class WebConfig implements WebMvcConfigurer { - - -} \ No newline at end of file diff --git a/sliapi/springboot/src/main/resources/DEMO_DEMO.xml b/sliapi/springboot/src/main/resources/DEMO_DEMO.xml deleted file mode 100755 index 1b304f18a..000000000 --- a/sliapi/springboot/src/main/resources/DEMO_DEMO.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sliapi/springboot/src/main/resources/application.properties b/sliapi/springboot/src/main/resources/application.properties deleted file mode 100644 index f083ed5e9..000000000 --- a/sliapi/springboot/src/main/resources/application.properties +++ /dev/null @@ -1,18 +0,0 @@ -springfox.documentation.swagger.v2.path=/api-docs -server.contextPath=/restconf -server.port=8080 -spring.jackson.date-format=org.onap.ccsdk.sli.core.sliapi.springboot.controllers.swagger.RFC3339DateFormat -spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false -logging.level.com.att=TRACE -logging.level.org.onap=TRACE -spring.datasource.url=jdbc:mariadb://localhost:3306/sdnctl -spring.datasource.username=sli -spring.datasource.password=abc123 -spring.datasource.driver-class-name=org.mariadb.jdbc.Driver -spring.datasource.testWhileIdle=true -spring.datasource.validationQuery=SELECT 1 -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl -spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy -spring.jpa.database=mysql \ No newline at end of file diff --git a/sliapi/springboot/src/main/resources/graph.versions b/sliapi/springboot/src/main/resources/graph.versions deleted file mode 100644 index d21278aa4..000000000 --- a/sliapi/springboot/src/main/resources/graph.versions +++ /dev/null @@ -1,3 +0,0 @@ -sli healthcheck 0.7.0 sync -sli vlbcheck 0.7.0 sync -DEMO DEMO 1 sync diff --git a/sliapi/springboot/src/main/resources/log4j2.properties b/sliapi/springboot/src/main/resources/log4j2.properties deleted file mode 100644 index 40d18d157..000000000 --- a/sliapi/springboot/src/main/resources/log4j2.properties +++ /dev/null @@ -1,160 +0,0 @@ - #- - # ============LICENSE_START======================================================= - # ONAP - CCSDK - # ================================================================================ - # Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - # ================================================================================ - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. - # You may obtain a copy of the License at - # - # http://www.apache.org/licenses/LICENSE-2.0 - # - # Unless required by applicable law or agreed to in writing, software - # distributed under the License is distributed on an "AS IS" BASIS, - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - # See the License for the specific language governing permissions and - # limitations under the License. - # ============LICENSE_END========================================================= - # - -property.logDir = ${sys:LOG_PATH:-./target} - -property.pattern = %d{ISO8601} | %-5p | %-16t | %-32c{1} | %X{currentGraph} - %X{nodeId} | %m%n - -#default mdc values -property.ServiceName = INTERNAL -property.ErrorCode = 900 -property.ErrorDesc = UnknownError - -rootLogger.level = INFO -rootLogger.appenderRef.AppFile.ref = AppFile -rootLogger.appenderRef.Console.ref = Console -rootLogger.appenderRef.DebugFile.ref = DebugFile -rootLogger.appenderRef.ErrorFile.ref = ErrorFile -rootLogger.appenderRef.Console.filter.threshold.type = ThresholdFilter -rootLogger.appenderRef.Console.filter.threshold.level = DEBUG - -appender.console.type = Console -appender.console.name = Console -appender.console.layout.type = PatternLayout -appender.console.layout.pattern = ${pattern} - -appender.app.type = RollingRandomAccessFile -appender.app.name = AppFile -appender.app.fileName = ${logDir}/app.log -appender.app.filePattern = ${logDir}/app.log.%i -appender.app.immediateFlush = true -appender.app.append = true -appender.app.layout.type = PatternLayout -appender.app.layout.pattern = ${pattern} -appender.app.policies.type = Policies -appender.app.policies.size.type = SizeBasedTriggeringPolicy -appender.app.policies.size.size = 10MB -appender.app.strategy.type = DefaultRolloverStrategy -appender.app.strategy.max = 100 -appender.app.strategy.fileIndex = min - -appender.debug.type = RollingRandomAccessFile -appender.debug.name = DebugFile -appender.debug.fileName = ${logDir}/debug.log -appender.debug.filePattern = ${logDir}/debug.log.%i -appender.debug.immediateFlush = true -appender.debug.append = true -appender.debug.layout.type = PatternLayout -appender.debug.layout.pattern = %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%-16.16t|%-5.5p|%-32.32c{1}|%X{currentGraph} - %X{nodeId}|%m%n -appender.debug.policies.type = Policies -appender.debug.policies.size.type = SizeBasedTriggeringPolicy -appender.debug.policies.size.size = 10MB -appender.debug.strategy.type = DefaultRolloverStrategy -appender.debug.strategy.max = 200 -appender.debug.strategy.fileIndex = min - -appender.error.type = RollingRandomAccessFile -appender.error.name = ErrorFile -appender.error.fileName = ${logDir}/error.log -appender.error.filePattern = ${logDir}/error.log.%i -appender.error.immediateFlush = true -appender.error.append = true -appender.error.layout.type = PatternLayout -appender.error.layout.pattern = %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%-16.16t|$${ctx:ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%p|$${ctx:ErrorCode}|$${ctx:ErrorDesc}|%m%n - -appender.error.policies.type = Policies -appender.error.policies.size.type = SizeBasedTriggeringPolicy -appender.error.policies.size.size = 10MB -appender.error.strategy.type = DefaultRolloverStrategy -appender.error.strategy.max = 100 -appender.error.strategy.fileIndex = min -appender.error.filter.threshold.type = ThresholdFilter -appender.error.filter.threshold.level = WARN - -appender.metric.type = RollingRandomAccessFile -appender.metric.name = MetricFile -appender.metric.fileName = ${logDir}/metric.log -appender.metric.filePattern = ${logDir}/metric.log.%i -appender.metric.immediateFlush = true -appender.metric.append = true -appender.metric.layout.type = PatternLayout -appender.metric.layout.pattern=%X{InvokeTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%-16.16t|%X{ServerFQDN}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceID}|%p|%X{Severity}|192.168.23.111|%X{ElapsedTime}|${hostName}|%X{ClientIPAddress}|%C{1}|||%X{TargetElement}|%markerSimpleName|%X|%X{currentGraph} - %X{nodeId}||%m%n -appender.metric.policies.type = Policies -appender.metric.policies.size.type = SizeBasedTriggeringPolicy -appender.metric.policies.size.size = 10MB -appender.metric.strategy.type = DefaultRolloverStrategy -appender.metric.strategy.max = 100 -appender.metric.strategy.fileIndex = min - -appender.audit.type = RollingRandomAccessFile -appender.audit.name = AuditFile -appender.audit.fileName = ${logDir}/audit.log -appender.audit.filePattern = ${logDir}/audit.log.%i -appender.audit.immediateFlush = true -appender.audit.append = true -appender.audit.layout.type = PatternLayout -appender.audit.layout.pattern=%X{EntryTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%-16.16t|%X{ServerFQDN}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceID}|INFO|%X{Severity}|192.168.23.111|%X{ElapsedTime}|${hostName}|%X{ClientIPAddress}|%C{1}|%X{AUDIT-Unused}|%X{AUDIT-ProcessKey}|%markerSimpleName|%X|||%m%n -appender.audit.policies.type = Policies -appender.audit.policies.size.type = SizeBasedTriggeringPolicy -appender.audit.policies.size.size = 10MB -appender.audit.strategy.type = DefaultRolloverStrategy -appender.audit.strategy.max = 200 -appender.audit.strategy.fileIndex = min - -appender.rr.name = RequestResponseFile -appender.rr.type = RollingRandomAccessFile -appender.rr.fileName = ${logDir}/request-response.log -appender.rr.filePattern = ${logDir}/request-response.log.%i -appender.rr.immediateFlush = true -appender.rr.append = true -appender.rr.layout.type = PatternLayout -appender.rr.layout.pattern = %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%X{PartnerName}|%m%n -appender.rr.policies.type = Policies -appender.rr.policies.size.type = SizeBasedTriggeringPolicy -appender.rr.policies.size.size = 10MB -appender.rr.strategy.type = DefaultRolloverStrategy -appender.rr.strategy.max = 100 -appender.rr.strategy.fileIndex = min - -logger.metric.name = org.onap.ccsdk.sli.core.filters.metric -logger.metric.level = INFO -logger.metric.additivity = false -logger.metric.appenderRef.MetricFile.ref = MetricFile - -logger.metric2.name = org.onap.logging.filter.base.AbstractMetricLogFilter -logger.metric2.level = INFO -logger.metric2.additivity = false -logger.metric2.appenderRef.MetricFile.ref = MetricFile - -logger.audit.name = org.onap.logging.filter.base.AbstractAuditLogFilter -logger.audit.level = INFO -logger.audit.additivity = false -logger.audit.appenderRef.AuditFile.ref = AuditFile - -logger.rr.name = org.onap.logging.filter.base.PayloadLoggingServletFilter -logger.rr.level = INFO -logger.rr.additivity = false -logger.rr.appenderRef.RequestResponseFile.ref = RequestResponseFile - -logger.ccsdk.name = org.onap.ccsdk -logger.ccsdk.level = DEBUG - -logger.onaplogging.name = org.onap.logging -logger.onaplogging.level = DEBUG \ No newline at end of file diff --git a/sliapi/springboot/src/main/resources/shiro-users.properties b/sliapi/springboot/src/main/resources/shiro-users.properties deleted file mode 100644 index df4b1ae7a..000000000 --- a/sliapi/springboot/src/main/resources/shiro-users.properties +++ /dev/null @@ -1,3 +0,0 @@ -user.admin = Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U,service -role.service = odl-api:* - diff --git a/sliapi/springboot/src/main/resources/sli_healthcheck.xml b/sliapi/springboot/src/main/resources/sli_healthcheck.xml deleted file mode 100644 index bc8e2f700..000000000 --- a/sliapi/springboot/src/main/resources/sli_healthcheck.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - diff --git a/sliapi/springboot/src/main/resources/sli_vlbcheck.xml b/sliapi/springboot/src/main/resources/sli_vlbcheck.xml deleted file mode 100644 index 820a85c10..000000000 --- a/sliapi/springboot/src/main/resources/sli_vlbcheck.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - diff --git a/sliapi/springboot/src/main/resources/svclogic.properties b/sliapi/springboot/src/main/resources/svclogic.properties deleted file mode 100644 index ae396adde..000000000 --- a/sliapi/springboot/src/main/resources/svclogic.properties +++ /dev/null @@ -1,29 +0,0 @@ -### -# ============LICENSE_START======================================================= -# ONAP : CCSDK -# ================================================================================ -# Copyright (C) 2017 AT&T Intellectual Property. All rights -# reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END========================================================= -### - -org.onap.ccsdk.sli.dbtype = jdbc -org.onap.ccsdk.sli.jdbc.url=jdbc:mariadb://localhost:3306/sdnctl -org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver -org.onap.ccsdk.sli.jdbc.database = sdnctl -org.onap.ccsdk.sli.jdbc.user = sli -org.onap.ccsdk.sli.jdbc.password = abc123 - -sliapi.serviceLogicDirectory=/opt/onap/sdnc/svclogic/graphs diff --git a/sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/AppTest.java b/sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/AppTest.java deleted file mode 100644 index 5ad6da9fd..000000000 --- a/sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/AppTest.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.onap.ccsdk.sli.core.sliapi.springboot; - -import org.apache.shiro.realm.Realm; -import org.apache.shiro.realm.text.PropertiesRealm; -import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition; -import org.junit.Before; -import org.junit.Test; -import org.onap.aaf.cadi.shiro.AAFRealm; - -import java.util.Map; - -import static org.junit.Assert.*; - -public class AppTest { - - App app; - - @Before - public void setUp() throws Exception { - app = new App(); - System.setProperty("serviceLogicProperties", "src/test/resources/svclogic.properties"); - } - - @Test - public void realm() { - Realm realm = app.realm(); - assertTrue(realm instanceof PropertiesRealm); - - - } - - @Test - public void shiroFilterChainDefinition() { - ShiroFilterChainDefinition chainDefinition = app.shiroFilterChainDefinition(); - Map chainMap = chainDefinition.getFilterChainMap(); - assertEquals("anon", chainMap.get("/**")); - - - } -} \ No newline at end of file diff --git a/sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/RestconfApiControllerTest.java b/sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/RestconfApiControllerTest.java deleted file mode 100644 index ae21cef5f..000000000 --- a/sliapi/springboot/src/test/java/org/onap/ccsdk/sli/core/sliapi/springboot/RestconfApiControllerTest.java +++ /dev/null @@ -1,162 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP - CCSDK - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.onap.ccsdk.sli.core.sliapi.springboot; - -import static org.junit.Assert.assertEquals; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.onap.ccsdk.sli.core.sliapi.model.ExecuteGraphInput; -import org.onap.ccsdk.sli.core.sliapi.model.ExecutegraphinputInput; -import org.onap.ccsdk.sli.core.sliapi.model.ResponseFields; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.http.MediaType; -import org.springframework.test.context.junit4.SpringRunner; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.MvcResult; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -@RunWith(SpringRunner.class) -@SpringBootTest -@AutoConfigureMockMvc -public class RestconfApiControllerTest { - - private static final Logger log = LoggerFactory.getLogger(RestconfApiControllerTest.class); - - @Autowired - private MockMvc mvc; - - @Test - public void testHealthcheck() throws Exception { - String url = "/restconf/operations/SLI-API:healthcheck"; - - MvcResult mvcResult = - mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")) - .andReturn(); - - assertEquals(200, mvcResult.getResponse().getStatus()); - } - - @Test - public void testVlbcheck() throws Exception { - String url = "/restconf/operations/SLI-API:vlbcheck"; - - MvcResult mvcResult = - mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")) - .andReturn(); - - assertEquals(200, mvcResult.getResponse().getStatus()); - } - - @Test - public void testExecuteHealthcheck() throws Exception { - String url = "/restconf/operations/SLI-API:execute-graph"; - - ExecuteGraphInput executeGraphInput = new ExecuteGraphInput(); - ExecutegraphinputInput executeGraphData = new ExecutegraphinputInput(); - - executeGraphData.setModuleName("sli"); - executeGraphData.setRpcName("healthcheck"); - executeGraphData.setMode("sync"); - executeGraphInput.setInput(executeGraphData); - - String jsonString = mapToJson(executeGraphInput); - log.error("jsonString is {}", jsonString); - - MvcResult mvcResult = - mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)) - .andReturn(); - - assertEquals(200, mvcResult.getResponse().getStatus()); - - } - - @Test - public void testExecuteMissingDg() throws Exception { - String url = "/restconf/operations/SLI-API:execute-graph"; - - ExecuteGraphInput executeGraphInput = new ExecuteGraphInput(); - ExecutegraphinputInput executeGraphData = new ExecutegraphinputInput(); - - executeGraphData.setModuleName("sli"); - executeGraphData.setRpcName("noSuchRPC"); - executeGraphData.setMode("sync"); - executeGraphInput.setInput(executeGraphData); - - String jsonString = mapToJson(executeGraphInput); - - log.error("jsonString is {}", jsonString); - - MvcResult mvcResult = - mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)) - .andReturn(); - - assertEquals(401, mvcResult.getResponse().getStatus()); - - } - - @Test - public void testTestResultAdd() throws Exception { - String url = "/restconf/config/SLI-API:test-results"; - - MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(url)).andReturn(); - - assertEquals(200, mvcResult.getResponse().getStatus()); - - // Delete any existing content before testing insert - mvcResult = mvc.perform(MockMvcRequestBuilders.delete(url)).andReturn(); - assertEquals(200, mvcResult.getResponse().getStatus()); - - String jsonString = "{\n" + - " \"test-results\" : [\n" + - " {\n" + - " \"test-identifier\" : \"test-1\",\n" + - " \"results\" : [\"test result 1\"]\n" + - " }\n" + - " ]\n" + - "}"; - - mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)) - .andReturn(); - - assertEquals(200, mvcResult.getResponse().getStatus()); - - mvcResult = mvc.perform(MockMvcRequestBuilders.get(url)).andReturn(); - - assertEquals(200, mvcResult.getResponse().getStatus()); - assertEquals(jsonString.replaceAll("\\s+",""), mvcResult.getResponse().getContentAsString().replaceAll("\\s+","")); - } - - private String mapToJson(Object obj) throws JsonProcessingException { - ObjectMapper objectMapper = new ObjectMapper(); - return objectMapper.writeValueAsString(obj); - } - - private ResponseFields respFromJson(String jsonString) throws JsonProcessingException { - ObjectMapper objectMapper = new ObjectMapper(); - return (objectMapper.readValue(jsonString, ResponseFields.class)); - } -} diff --git a/sliapi/springboot/src/test/resources/DEMO_DEMO.xml b/sliapi/springboot/src/test/resources/DEMO_DEMO.xml deleted file mode 100755 index 1b304f18a..000000000 --- a/sliapi/springboot/src/test/resources/DEMO_DEMO.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sliapi/springboot/src/test/resources/application.properties b/sliapi/springboot/src/test/resources/application.properties deleted file mode 100644 index dbe2633d4..000000000 --- a/sliapi/springboot/src/test/resources/application.properties +++ /dev/null @@ -1,18 +0,0 @@ -springfox.documentation.swagger.v2.path=/api-docs -server.contextPath=/restconf -server.port=8080 -spring.jackson.date-format=org.onap.ccsdk.sli.core.sliapi.springboot.controllers.swagger.RFC3339DateFormat -spring.jackson.serialization.WRITE_DATES_AS_TIMESTAMPS=false -logging.level.com.att=TRACE -logging.level.org.onap=TRACE -spring.datasource.url=jdbc:derby:sdnctl;create=true -spring.datasource.username=sli -spring.datasource.password=abc123 -spring.datasource.driver-class-name=org.apache.derby.jdbc.EmbeddedDriver -spring.datasource.testWhileIdle=true -spring.datasource.validationQuery=SELECT 1 -spring.jpa.show-sql=true -spring.jpa.hibernate.ddl-auto=update -spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl -spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy -spring.jpa.database=derby \ No newline at end of file diff --git a/sliapi/springboot/src/test/resources/graph.versions b/sliapi/springboot/src/test/resources/graph.versions deleted file mode 100644 index d21278aa4..000000000 --- a/sliapi/springboot/src/test/resources/graph.versions +++ /dev/null @@ -1,3 +0,0 @@ -sli healthcheck 0.7.0 sync -sli vlbcheck 0.7.0 sync -DEMO DEMO 1 sync diff --git a/sliapi/springboot/src/test/resources/log4j2.properties b/sliapi/springboot/src/test/resources/log4j2.properties deleted file mode 100644 index 40d18d157..000000000 --- a/sliapi/springboot/src/test/resources/log4j2.properties +++ /dev/null @@ -1,160 +0,0 @@ - #- - # ============LICENSE_START======================================================= - # ONAP - CCSDK - # ================================================================================ - # Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - # ================================================================================ - # Licensed under the Apache License, Version 2.0 (the "License"); - # you may not use this file except in compliance with the License. - # You may obtain a copy of the License at - # - # http://www.apache.org/licenses/LICENSE-2.0 - # - # Unless required by applicable law or agreed to in writing, software - # distributed under the License is distributed on an "AS IS" BASIS, - # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - # See the License for the specific language governing permissions and - # limitations under the License. - # ============LICENSE_END========================================================= - # - -property.logDir = ${sys:LOG_PATH:-./target} - -property.pattern = %d{ISO8601} | %-5p | %-16t | %-32c{1} | %X{currentGraph} - %X{nodeId} | %m%n - -#default mdc values -property.ServiceName = INTERNAL -property.ErrorCode = 900 -property.ErrorDesc = UnknownError - -rootLogger.level = INFO -rootLogger.appenderRef.AppFile.ref = AppFile -rootLogger.appenderRef.Console.ref = Console -rootLogger.appenderRef.DebugFile.ref = DebugFile -rootLogger.appenderRef.ErrorFile.ref = ErrorFile -rootLogger.appenderRef.Console.filter.threshold.type = ThresholdFilter -rootLogger.appenderRef.Console.filter.threshold.level = DEBUG - -appender.console.type = Console -appender.console.name = Console -appender.console.layout.type = PatternLayout -appender.console.layout.pattern = ${pattern} - -appender.app.type = RollingRandomAccessFile -appender.app.name = AppFile -appender.app.fileName = ${logDir}/app.log -appender.app.filePattern = ${logDir}/app.log.%i -appender.app.immediateFlush = true -appender.app.append = true -appender.app.layout.type = PatternLayout -appender.app.layout.pattern = ${pattern} -appender.app.policies.type = Policies -appender.app.policies.size.type = SizeBasedTriggeringPolicy -appender.app.policies.size.size = 10MB -appender.app.strategy.type = DefaultRolloverStrategy -appender.app.strategy.max = 100 -appender.app.strategy.fileIndex = min - -appender.debug.type = RollingRandomAccessFile -appender.debug.name = DebugFile -appender.debug.fileName = ${logDir}/debug.log -appender.debug.filePattern = ${logDir}/debug.log.%i -appender.debug.immediateFlush = true -appender.debug.append = true -appender.debug.layout.type = PatternLayout -appender.debug.layout.pattern = %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%-16.16t|%-5.5p|%-32.32c{1}|%X{currentGraph} - %X{nodeId}|%m%n -appender.debug.policies.type = Policies -appender.debug.policies.size.type = SizeBasedTriggeringPolicy -appender.debug.policies.size.size = 10MB -appender.debug.strategy.type = DefaultRolloverStrategy -appender.debug.strategy.max = 200 -appender.debug.strategy.fileIndex = min - -appender.error.type = RollingRandomAccessFile -appender.error.name = ErrorFile -appender.error.fileName = ${logDir}/error.log -appender.error.filePattern = ${logDir}/error.log.%i -appender.error.immediateFlush = true -appender.error.append = true -appender.error.layout.type = PatternLayout -appender.error.layout.pattern = %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%-16.16t|$${ctx:ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%p|$${ctx:ErrorCode}|$${ctx:ErrorDesc}|%m%n - -appender.error.policies.type = Policies -appender.error.policies.size.type = SizeBasedTriggeringPolicy -appender.error.policies.size.size = 10MB -appender.error.strategy.type = DefaultRolloverStrategy -appender.error.strategy.max = 100 -appender.error.strategy.fileIndex = min -appender.error.filter.threshold.type = ThresholdFilter -appender.error.filter.threshold.level = WARN - -appender.metric.type = RollingRandomAccessFile -appender.metric.name = MetricFile -appender.metric.fileName = ${logDir}/metric.log -appender.metric.filePattern = ${logDir}/metric.log.%i -appender.metric.immediateFlush = true -appender.metric.append = true -appender.metric.layout.type = PatternLayout -appender.metric.layout.pattern=%X{InvokeTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%-16.16t|%X{ServerFQDN}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceID}|%p|%X{Severity}|192.168.23.111|%X{ElapsedTime}|${hostName}|%X{ClientIPAddress}|%C{1}|||%X{TargetElement}|%markerSimpleName|%X|%X{currentGraph} - %X{nodeId}||%m%n -appender.metric.policies.type = Policies -appender.metric.policies.size.type = SizeBasedTriggeringPolicy -appender.metric.policies.size.size = 10MB -appender.metric.strategy.type = DefaultRolloverStrategy -appender.metric.strategy.max = 100 -appender.metric.strategy.fileIndex = min - -appender.audit.type = RollingRandomAccessFile -appender.audit.name = AuditFile -appender.audit.fileName = ${logDir}/audit.log -appender.audit.filePattern = ${logDir}/audit.log.%i -appender.audit.immediateFlush = true -appender.audit.append = true -appender.audit.layout.type = PatternLayout -appender.audit.layout.pattern=%X{EntryTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%-16.16t|%X{ServerFQDN}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceID}|INFO|%X{Severity}|192.168.23.111|%X{ElapsedTime}|${hostName}|%X{ClientIPAddress}|%C{1}|%X{AUDIT-Unused}|%X{AUDIT-ProcessKey}|%markerSimpleName|%X|||%m%n -appender.audit.policies.type = Policies -appender.audit.policies.size.type = SizeBasedTriggeringPolicy -appender.audit.policies.size.size = 10MB -appender.audit.strategy.type = DefaultRolloverStrategy -appender.audit.strategy.max = 200 -appender.audit.strategy.fileIndex = min - -appender.rr.name = RequestResponseFile -appender.rr.type = RollingRandomAccessFile -appender.rr.fileName = ${logDir}/request-response.log -appender.rr.filePattern = ${logDir}/request-response.log.%i -appender.rr.immediateFlush = true -appender.rr.append = true -appender.rr.layout.type = PatternLayout -appender.rr.layout.pattern = %d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%X{PartnerName}|%m%n -appender.rr.policies.type = Policies -appender.rr.policies.size.type = SizeBasedTriggeringPolicy -appender.rr.policies.size.size = 10MB -appender.rr.strategy.type = DefaultRolloverStrategy -appender.rr.strategy.max = 100 -appender.rr.strategy.fileIndex = min - -logger.metric.name = org.onap.ccsdk.sli.core.filters.metric -logger.metric.level = INFO -logger.metric.additivity = false -logger.metric.appenderRef.MetricFile.ref = MetricFile - -logger.metric2.name = org.onap.logging.filter.base.AbstractMetricLogFilter -logger.metric2.level = INFO -logger.metric2.additivity = false -logger.metric2.appenderRef.MetricFile.ref = MetricFile - -logger.audit.name = org.onap.logging.filter.base.AbstractAuditLogFilter -logger.audit.level = INFO -logger.audit.additivity = false -logger.audit.appenderRef.AuditFile.ref = AuditFile - -logger.rr.name = org.onap.logging.filter.base.PayloadLoggingServletFilter -logger.rr.level = INFO -logger.rr.additivity = false -logger.rr.appenderRef.RequestResponseFile.ref = RequestResponseFile - -logger.ccsdk.name = org.onap.ccsdk -logger.ccsdk.level = DEBUG - -logger.onaplogging.name = org.onap.logging -logger.onaplogging.level = DEBUG \ No newline at end of file diff --git a/sliapi/springboot/src/test/resources/shiro-users.properties b/sliapi/springboot/src/test/resources/shiro-users.properties deleted file mode 100644 index df4b1ae7a..000000000 --- a/sliapi/springboot/src/test/resources/shiro-users.properties +++ /dev/null @@ -1,3 +0,0 @@ -user.admin = Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U,service -role.service = odl-api:* - diff --git a/sliapi/springboot/src/test/resources/sli_healthcheck.xml b/sliapi/springboot/src/test/resources/sli_healthcheck.xml deleted file mode 100644 index bc8e2f700..000000000 --- a/sliapi/springboot/src/test/resources/sli_healthcheck.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - diff --git a/sliapi/springboot/src/test/resources/sli_vlbcheck.xml b/sliapi/springboot/src/test/resources/sli_vlbcheck.xml deleted file mode 100644 index 820a85c10..000000000 --- a/sliapi/springboot/src/test/resources/sli_vlbcheck.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - diff --git a/sliapi/springboot/src/test/resources/svclogic.properties b/sliapi/springboot/src/test/resources/svclogic.properties deleted file mode 100644 index 1d90ab9b4..000000000 --- a/sliapi/springboot/src/test/resources/svclogic.properties +++ /dev/null @@ -1,29 +0,0 @@ -### -# ============LICENSE_START======================================================= -# ONAP : CCSDK -# ================================================================================ -# Copyright (C) 2017 AT&T Intellectual Property. All rights -# reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END========================================================= -### - -org.onap.ccsdk.sli.dbtype = jdbc -org.onap.ccsdk.sli.jdbc.url=jdbc:derby:memory:sdnctl;create=true -org.onap.ccsdk.sli.jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver -org.onap.ccsdk.sli.jdbc.database = sdnctl -org.onap.ccsdk.sli.jdbc.user = test -org.onap.ccsdk.sli.jdbc.password = test - -sliapi.serviceLogicDirectory=/opt/onap/sdnc/svclogic/graphs -- cgit 1.2.3-korg