blob: f6001e21f411e4bb409d2f3df0fcfe9b3d313c73 [file] [log] [blame]
xuegao5fe750c2019-08-06 13:03:53 +02001/*-
2 * ============LICENSE_START=======================================================
3 * ONAP CLAMP
4 * ================================================================================
5 * Copyright (C) 2019 AT&T Intellectual Property. All rights
6 * reserved.
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END============================================
20 * ===================================================================
21 *
22 */
23import React from 'react';
24import LoopActionService from '../../api/LoopActionService';
xuegao5fe750c2019-08-06 13:03:53 +020025
xuegao5fe750c2019-08-06 13:03:53 +020026
27export default class PerformActions extends React.Component {
28 state = {
29 loopName: this.props.loopCache.getLoopName(),
30 loopAction: this.props.loopAction
31 };
Ted Humphrey4fb32392020-07-06 16:59:47 -040032
xuegao5fe750c2019-08-06 13:03:53 +020033 constructor(props, context) {
34 super(props, context);
xuegao5fe750c2019-08-06 13:03:53 +020035 this.refreshStatus = this.refreshStatus.bind(this);
36 }
Ted Humphrey4fb32392020-07-06 16:59:47 -040037
xuegao5fe750c2019-08-06 13:03:53 +020038 componentWillReceiveProps(newProps) {
39 this.setState({
40 loopName: newProps.loopCache.getLoopName(),
41 loopAction: newProps.loopAction
42 });
43 }
44
45 componentDidMount() {
46 const action = this.state.loopAction;
47 const loopName = this.state.loopName;
xuegao0efeb6b2019-10-07 14:36:34 +020048
Ted Humphrey4fb32392020-07-06 16:59:47 -040049 if (action === 'delete') {
50 if (window.confirm('You are about to remove Control Loop Model "' + loopName +
51 '". Select OK to continue with deletion or Cancel to keep the model.') === false) {
52 return;
53 }
54 }
55
56 this.props.setBusyLoading(); // Alert top level to start block user clicks
57
58 LoopActionService.performAction(loopName, action)
59 .then(pars => {
xuegaocc5fe512020-04-06 13:13:52 +020060 this.props.showSucAlert("Action " + action + " successfully performed");
Ted Humphrey4fb32392020-07-06 16:59:47 -040061 if (action === 'delete') {
62 this.props.updateLoopFunction(null);
63 this.props.history.push('/');
64 } else {
65 // refresh status and update loop logs
66 this.refreshStatus(loopName);
67 }
xuegao5fe750c2019-08-06 13:03:53 +020068 })
69 .catch(error => {
xuegaocc5fe512020-04-06 13:13:52 +020070 this.props.showFailAlert("Action " + action + " failed");
xuegao5fe750c2019-08-06 13:03:53 +020071 // refresh status and update loop logs
72 this.refreshStatus(loopName);
Ted Humphrey4fb32392020-07-06 16:59:47 -040073 })
74 .finally(() => this.props.clearBusyLoading());
xuegao5fe750c2019-08-06 13:03:53 +020075 }
76
77 refreshStatus(loopName) {
Ted Humphrey4fb32392020-07-06 16:59:47 -040078
79 this.props.setBusyLoading();
80
81 LoopActionService.refreshStatus(loopName)
82 .then(data => {
xuegao5fe750c2019-08-06 13:03:53 +020083 this.props.updateLoopFunction(data);
84 this.props.history.push('/');
85 })
Ted Humphrey4fb32392020-07-06 16:59:47 -040086 .catch(error => {
xuegao5fe750c2019-08-06 13:03:53 +020087 this.props.history.push('/');
Ted Humphrey4fb32392020-07-06 16:59:47 -040088 })
89 .finally(() => this.props.clearBusyLoading());
xuegao5fe750c2019-08-06 13:03:53 +020090 }
91
92 render() {
Ted Humphrey4fb32392020-07-06 16:59:47 -040093 return null;
xuegao5fe750c2019-08-06 13:03:53 +020094 }
95}