Merge "Release clamp 5.0.3"
diff --git a/docs/index.rst b/docs/index.rst
index 548e277..1436c29 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -37,7 +37,7 @@
- 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 525001d..f522338 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 b81e46b..81e30cf 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 @@
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 @@
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 e1d493a..9721e33 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 @@
JsonObject componentAsItem = child.getJsonSchemaOfToscaElement(nameComponent);
if (currentPropertyJsonTemplate.hasFields("properties")) {
propertiesInJson.add("items", componentAsItem);
+ propertiesInJson.addProperty("format", "tabs-top");
}
break;
}
@@ -271,6 +272,7 @@
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 1b95f8c..3a700c8 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 4cb5bd8..58dff23 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 4363da9..13a6035 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 @@
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 ddfb2a7..1a6cc19 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 @@
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 @@
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 952e888..a599cec 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 @@
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 @@
expect(historyMock.push.mock.calls[0]).toEqual([ '/']);
handleClose.mockClear();
});
-});
\ No newline at end of file
+});