From 3a83e2a2ff88ef49535973df8dc77dc8015170da Mon Sep 17 00:00:00 2001 From: ash74268 Date: Fri, 31 Jan 2020 15:40:15 +0000 Subject: Changes include Metadata support, Upload tosca policy model and Loop Template CLAMP Metadata support to parse policy_model_type, acronym and clamp_possible_values from the Tosca Policy Model UI and Backend changes to support Loop Template Backend APIs for Dictionary referenced in the Tosca Policy Model. Upload Tosca Model UI changes to allow user to upload policy models. DB Schema changes for the Loop Element Model and updated schema for the Dictionary Added Jest test cases and snapshots checkstyle issues fix and Junits Issue-ID: CLAMP-580 Signed-off-by: ash74268 Change-Id: I57521bc1c3afaf4ca5a2acf4c59823df05fd4cd6 Signed-off-by: ash74268 --- .../dialogs/Tosca/UploadToscaPolicyModal.js | 138 +++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js (limited to 'ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js') diff --git a/ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js b/ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js new file mode 100644 index 000000000..76beca711 --- /dev/null +++ b/ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js @@ -0,0 +1,138 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP CLAMP + * ================================================================================ + * 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============================================ + * =================================================================== + * + */ + +import React from 'react' +import Button from 'react-bootstrap/Button'; +import Modal from 'react-bootstrap/Modal'; +import Form from 'react-bootstrap/Form'; +import Row from 'react-bootstrap/Row'; +import Col from 'react-bootstrap/Col'; +import styled from 'styled-components'; +import Alert from 'react-bootstrap/Alert'; +import TemplateMenuService from '../../../api/TemplateMenuService'; + +const ModalStyled = styled(Modal)` + background-color: transparent; +` +export default class UploadToscaPolicyModal extends React.Component { + constructor(props, context) { + super(props, context); + + this.handleUploadToscaPolicyModel = this.handleUploadToscaPolicyModel.bind(this); + this.handleClose = this.handleClose.bind(this); + this.handlePolicyModelType = this.handlePolicyModelType.bind(this); + this.fileSelectedHandler = this.fileSelectedHandler.bind(this); + this.state = { + show: true, + selectedFile: '', + policyModelType: '', + policyModelTosca: [], + apiResponseStatus: '', + apiResponseMessage: '', + upldBtnClicked: false + }; + } + + fileSelectedHandler = (event) => { + if (event.target.files && event.target.files[0]) { + const scope = this; + let reader = new FileReader(); + this.setState({policyModelType: '', policyModelTosca: '' }); + reader.onload = function(e) { + var lines = reader.result.split('\n'); + for (var line = 0; line < lines.length; line++) { + if(lines[line].trim().slice(0, 24) === 'onap.policies.monitoring') { + var microsvc = lines[line].trim().slice(0, -1); + scope.setState({ policyModelType: microsvc, policyModelTosca: reader.result}); + } + } + }; + console.log("Filename is", event.target.files[0]); + reader.readAsText(event.target.files[0]); + } + this.setState({selectedFile: event.target.files[0]}); + }; + + handleClose() { + this.setState({ show: false }); + this.props.history.push('/'); + } + + handleUploadToscaPolicyModel(e) { + e.preventDefault(); + console.log("Policy Model Type is", this.state.policyModelType); + if(this.state.policyModelType && this.state.policyModelTosca) { + TemplateMenuService.uploadToscaPolicyModal(this.state.policyModelType, this.state.policyModelTosca).then(resp => { + if(resp.status === 200) { + this.setState({apiResponseStatus: resp.status, apiResponseMessage: resp.message, upldBtnClicked: true}); + } else { + this.setState({apiResponseStatus: 500, apiResponseMessage: resp, upldBtnClicked: true}); + } + }); + } else { + this.setState({apiResponse: 500, apiResponseMessage: 'Parameters are missing', upldBtnClicked: true}); + } +} + + handlePolicyModelType = event => { + this.setState({ + policyModelType: event.target.value + }) + } + + render() { + return ( + + + Upload Tosca Modal + + + + + this.fileInput = fileInput}/> + + +

{this.state.selectedFile.name}

+
+ Micro Service Name: + + +
+
+ + {!this.state.apiResponseStatus?:""} + {!this.state.apiResponseStatus?:""} + {this.state.apiResponseStatus? +

{this.state.apiResponseMessage}

+ +
:""} +
+
+ ); + } +} -- cgit From aa486be66b1c29ad2e953cb44d105ca1bde40b1c Mon Sep 17 00:00:00 2001 From: sebdet Date: Tue, 18 Feb 2020 02:00:11 -0800 Subject: Modify the Ui Modify the Ui to have a modify option in the menu so that the user can tune the loop instance Issue-ID: CLAMP-648 Change-Id: I57523bc1c3afaf5ca5a2acf5c59823df06fd4cd9 Signed-off-by: sebdet --- .../dialogs/Tosca/UploadToscaPolicyModal.js | 26 +++++++++------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js') diff --git a/ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js b/ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js index 76beca711..2e0460f61 100644 --- a/ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js +++ b/ui-react/src/components/dialogs/Tosca/UploadToscaPolicyModal.js @@ -28,7 +28,7 @@ import Row from 'react-bootstrap/Row'; import Col from 'react-bootstrap/Col'; import styled from 'styled-components'; import Alert from 'react-bootstrap/Alert'; -import TemplateMenuService from '../../../api/TemplateMenuService'; +import PolicyToscaService from '../../../api/PolicyToscaService'; const ModalStyled = styled(Modal)` background-color: transparent; @@ -37,7 +37,7 @@ export default class UploadToscaPolicyModal extends React.Component { constructor(props, context) { super(props, context); - this.handleUploadToscaPolicyModel = this.handleUploadToscaPolicyModel.bind(this); + this.handleCreateFromToscaPolicyModel = this.handleCreateFromToscaPolicyModel.bind(this); this.handleClose = this.handleClose.bind(this); this.handlePolicyModelType = this.handlePolicyModelType.bind(this); this.fileSelectedHandler = this.fileSelectedHandler.bind(this); @@ -55,16 +55,10 @@ export default class UploadToscaPolicyModal extends React.Component { fileSelectedHandler = (event) => { if (event.target.files && event.target.files[0]) { const scope = this; - let reader = new FileReader(); + let reader = new FileReader(); this.setState({policyModelType: '', policyModelTosca: '' }); reader.onload = function(e) { - var lines = reader.result.split('\n'); - for (var line = 0; line < lines.length; line++) { - if(lines[line].trim().slice(0, 24) === 'onap.policies.monitoring') { - var microsvc = lines[line].trim().slice(0, -1); - scope.setState({ policyModelType: microsvc, policyModelTosca: reader.result}); - } - } + scope.setState({ policyModelTosca: reader.result}); }; console.log("Filename is", event.target.files[0]); reader.readAsText(event.target.files[0]); @@ -77,11 +71,11 @@ export default class UploadToscaPolicyModal extends React.Component { this.props.history.push('/'); } - handleUploadToscaPolicyModel(e) { - e.preventDefault(); + handleCreateFromToscaPolicyModel(e) { + e.preventDefault(); console.log("Policy Model Type is", this.state.policyModelType); if(this.state.policyModelType && this.state.policyModelTosca) { - TemplateMenuService.uploadToscaPolicyModal(this.state.policyModelType, this.state.policyModelTosca).then(resp => { + PolicyToscaService.createPolicyModelFromToscaModel(this.state.policyModelType, this.state.policyModelTosca).then(resp => { if(resp.status === 200) { this.setState({apiResponseStatus: resp.status, apiResponseMessage: resp.message, upldBtnClicked: true}); } else { @@ -103,7 +97,7 @@ export default class UploadToscaPolicyModal extends React.Component { return ( - Upload Tosca Modal + Upload Tosca Model @@ -114,7 +108,7 @@ export default class UploadToscaPolicyModal extends React.Component {

{this.state.selectedFile.name}

- Micro Service Name: + Policy Model Type: {!this.state.apiResponseStatus?:""} - {!this.state.apiResponseStatus?:""} + {!this.state.apiResponseStatus?:""} {this.state.apiResponseStatus?

{this.state.apiResponseMessage}

-- cgit