diff options
9 files changed, 84 insertions, 13 deletions
diff --git a/docs/index.rst b/docs/index.rst index 548e277f..1436c290 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -37,7 +37,7 @@ CLAMP uses the API's exposed by the following ONAP components: - SDC : REST based interface exposed by the SDC, Distribution of service to DCAE - DCAE: REST based interface exposed by DCAE, Common Controller Framework, DCAE microservices onboarded (TCA, Stringmatch, Holmes (optional)) - Policy: REST based interface, Policy engine target both XACML and Drools PDP, Policy Engine trigger operations to App-C/VF-C/SDN-C - +- CDS: REST based interface, to retrieve list of actors/actions at runtime. Delivery -------- diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 525001d0..f5223383 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -1,10 +1,65 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +.. Copyright (c) 2017-2020 AT&T Intellectual Property. All rights reserved. Release Notes ============= +Version: 5.0.1 +-------------- + +:Release Date: 2020-04-02 + +**New Features** + +The Frankfurt release is the seventh release of the Control Loop Automation Management Platform (CLAMP). + +The main goal of the Frankfurt release was to: + + - implementing a new Control Loop creation flow: Self Serve Control Loop(partially done will be continued in next release). + - Add Tosca policy-model support for Operational Policies definitions. + - Add integration to CDS for Actor/Action selection. + - Move from SearchGuard to OpenDistro. + - Document(high level) current upgrade component strategy (TSC must have). + - SECCOM Perform Software Composition Analysis - Vulnerability tables (TSC must have). + - SECCOM Password removal from OOM HELM charts (TSC must have). + - SECCOM Password removal from OOM HELM charts (TSC must have). + - SECCOM HTTPS communication vs. HTTP (TSC must have) + +**Bug Fixes** + + - The full list of implemented user stories and epics is available on `Frankfurt CLAMP M1 release planning <https://wiki.onap.org/display/DW/CLAMP+R6+-+M1+Release+Planning>`_ + + +**Known Issues** + + +**Security Notes** + +*Fixed Security Issues* + +*Known Security Issues* + +*Known Vulnerabilities in Used Modules* + +CLAMP code has been formally scanned during build time using NexusIQ and all Critical vulnerabilities have been addressed, items that remain open have been assessed for risk and actions to be taken in future release. + +Quick Links: + - `CLAMP project page <https://wiki.onap.org/display/DW/CLAMP+Project>`_ + + - `Passing Badge information for CLAMP <https://bestpractices.coreinfrastructure.org/en/projects/1197>`_ + +**Upgrade Notes** + + New Docker Containers are available. the list of containers composing this release are below: + - clamp-backend-filebeat-onap: docker.elastic.co/beats/filebeat 5.5.0 + - clamp-backend: nexus3.onap.org:10001/onap/clamp-backend 5.0.2 + - clamp-frontend: nexus3.onap.org:10001/onap/clamp-frontend 5.0.2 + - clamp-dash-es: nexus3.onap.org:10001/onap/clamp-dashboard-elasticsearch 5.0.3 + - clamp-dash-kibana: nexus3.onap.org:10001/onap/clamp-dashboard-kibana 5.0.3 + - clamp-dash-logstash: nexus3.onap.org:10001/onap/clamp-dashboard-logstash 5.0.3 + + Version: 4.1.3 -------------- diff --git a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java index b81e46bf..81e30cf4 100644 --- a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java +++ b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java @@ -60,6 +60,7 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { private static void generatePayload(JsonObject childObject, Service serviceModel) { generatePayloadPerResource(childObject, "VF", serviceModel); generatePayloadPerResource(childObject, "PNF", serviceModel); + addToJsonArray(childObject, "anyOf", createBlankEntry()); } private static void generateOperation(JsonObject childObject, Service serviceModel) { @@ -113,6 +114,15 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { addToJsonArray(childObject, "anyOf", schemaAnyOf); } + private static JsonArray createBlankEntry() { + JsonArray result = new JsonArray(); + JsonObject blankObject = new JsonObject(); + blankObject.addProperty("title", "User defined"); + blankObject.add("properties", new JsonObject()); + result.add(blankObject); + return result; + } + private static JsonObject createPayloadProperty(JsonObject workFlow, JsonObject controllerProperties) { JsonObject payloadResult = new JsonObject(); diff --git a/src/main/java/org/onap/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java b/src/main/java/org/onap/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java index e1d493a3..9721e33d 100644 --- a/src/main/java/org/onap/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java +++ b/src/main/java/org/onap/clamp/clds/tosca/update/parser/ToscaConverterToJsonSchema.java @@ -259,6 +259,7 @@ public class ToscaConverterToJsonSchema { JsonObject componentAsItem = child.getJsonSchemaOfToscaElement(nameComponent); if (currentPropertyJsonTemplate.hasFields("properties")) { propertiesInJson.add("items", componentAsItem); + propertiesInJson.addProperty("format", "tabs-top"); } break; } @@ -271,6 +272,7 @@ public class ToscaConverterToJsonSchema { this.extractSpecificFieldFromMap(toscaElementProperty, "entry_schema"); itemContainer.addProperty("type", valueInEntrySchema); propertiesInJson.add("items", itemContainer); + propertiesInJson.addProperty("format", "tabs-top"); } // MAP Case, for now nothing diff --git a/src/test/resources/tosca/new-converter/tca-with-metadata.json b/src/test/resources/tosca/new-converter/tca-with-metadata.json index 1b95f8c9..3a700c8e 100644 --- a/src/test/resources/tosca/new-converter/tca-with-metadata.json +++ b/src/test/resources/tosca/new-converter/tca-with-metadata.json @@ -170,7 +170,8 @@ "description": "Version number associated with the threshold" } } - } + }, + "format": "tabs-top" }, "context": { "type": "string", @@ -212,7 +213,8 @@ } } } - } + }, + "format": "tabs-top" } } } diff --git a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json b/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json index 4cb5bd8c..58dff236 100644 --- a/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json +++ b/src/test/resources/tosca/new-converter/tosca_apex_with_metadata.json @@ -292,6 +292,10 @@ } } } + }, + { + "title": "User defined", + "properties": {} } ] }, @@ -588,7 +592,8 @@ "default": "final_success" } } - } + }, + "format": "tabs-top" }, "trigger": { "type": "string", diff --git a/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js b/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js index 4363da92..13a6035a 100644 --- a/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js +++ b/ui-react/src/components/dialogs/ManageDictionaries/ManageDictionaries.test.js @@ -74,11 +74,10 @@ describe('Verify ManageDictionaries', () => { it('Test API Rejection', () => { const myMockFunc = fetch.mockImplementationOnce(() => Promise.reject('error')); setTimeout( () => myMockFunc().catch(e => { - console.log(e); + console.info(e); }), 100 ); - new Promise(resolve => setTimeout(resolve, 200)); const component = shallow(<ManageDictionaries />); expect(myMockFunc.mock.calls.length).toBe(1); }); diff --git a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js index ddfb2a70..1a6cc195 100644 --- a/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js +++ b/ui-react/src/components/dialogs/Tosca/ViewLoopTemplatesModal.test.js @@ -73,11 +73,10 @@ describe('Verify ViewLoopTemplatesModal', () => { it('Test API Rejection', () => { const myMockFunc = fetch.mockImplementationOnce(() => Promise.reject('error')); setTimeout( () => myMockFunc().catch(e => { - console.log(e); + console.info(e); }), 100 ); - new Promise(resolve => setTimeout(resolve, 200)); const component = shallow(<ViewLoopTemplatesModal/>); expect(myMockFunc.mock.calls.length).toBe(1); }); @@ -159,4 +158,4 @@ describe('Verify ViewLoopTemplatesModal', () => { expect(historyMock.push.mock.calls[0]).toEqual([ '/']); handleClose.mockClear(); }); - });
\ No newline at end of file + }); diff --git a/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js b/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js index 952e8886..a599cec0 100644 --- a/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js +++ b/ui-react/src/components/dialogs/Tosca/ViewToscaPolicyModal.test.js @@ -78,11 +78,10 @@ describe('Verify ViewToscaPolicyModal', () => { setTimeout( () => myMockFunc().catch(e => { - console.log(e); + console.info(e); }), 100 ); - new Promise(resolve => setTimeout(resolve, 200)); const component = shallow(<ViewToscaPolicyModal/>); expect(myMockFunc.mock.calls.length).toBe(1); }); @@ -193,4 +192,4 @@ describe('Verify ViewToscaPolicyModal', () => { expect(historyMock.push.mock.calls[0]).toEqual([ '/']); handleClose.mockClear(); }); -});
\ No newline at end of file +}); |