2 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13 * or implied. See the License for the specific language governing
14 * permissions and limitations under the License.
16 import LicenseModelActionHelper from './licenseModel/LicenseModelActionHelper.js';
17 import LicenseAgreementActionHelper from './licenseModel/licenseAgreement/LicenseAgreementActionHelper.js';
18 import FeatureGroupsActionHelper from './licenseModel/featureGroups/FeatureGroupsActionHelper.js';
19 import LicenseKeyGroupsActionHelper from './licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js';
20 import EntitlementPoolsActionHelper from './licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
21 import SoftwareProductActionHelper from './softwareProduct/SoftwareProductActionHelper.js';
22 import SoftwareProductProcessesActionHelper from './softwareProduct/processes/SoftwareProductProcessesActionHelper.js';
23 import SoftwareProductNetworksActionHelper from './softwareProduct/networks/SoftwareProductNetworksActionHelper.js';
24 import SoftwareProductComponentsActionHelper from './softwareProduct/components/SoftwareProductComponentsActionHelper.js';
25 import SoftwareProductComponentProcessesActionHelper from './softwareProduct/components/processes/SoftwareProductComponentProcessesActionHelper.js';
26 import SoftwareProductComponentsNetworkActionHelper from './softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js';
27 import SoftwareProductDependenciesActionHelper from './softwareProduct/dependencies/SoftwareProductDependenciesActionHelper.js';
28 import OnboardActionHelper from './onboard/OnboardActionHelper.js';
29 import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
30 import {actionTypes, enums} from './OnboardingConstants.js';
31 import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
32 import ActivityLogActionHelper from 'nfvo-components/activity-log/ActivityLogActionHelper.js';
33 import licenseModelOverviewActionHelper from 'sdc-app/onboarding/licenseModel/overview/licenseModelOverviewActionHelper.js';
34 import store from 'sdc-app/AppStore.js';
35 import {selectedButton as licenseModelOverviewSelectedButton} from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js';
37 function setCurrentScreen(dispatch, screen, props = {}) {
39 type: actionTypes.SET_CURRENT_SCREEN,
43 forceBreadCrumbsUpdate: true
48 function getCurrentLicenseModelVersion(licenseModelId) {
49 return store.getState().licenseModelList.find(({id}) => id === licenseModelId).version;
52 function getCurrentSoftwareProductVersion(softwareProductId) {
53 return store.getState().softwareProductList.find(({id}) => id === softwareProductId).version;
58 navigateToOnboardingCatalog(dispatch) {
59 LicenseModelActionHelper.fetchLicenseModels(dispatch);
60 LicenseModelActionHelper.fetchFinalizedLicenseModels(dispatch);
61 SoftwareProductActionHelper.fetchSoftwareProductList(dispatch);
62 SoftwareProductActionHelper.fetchFinalizedSoftwareProductList(dispatch);
63 OnboardActionHelper.resetOnboardStore(dispatch);
64 setCurrentScreen(dispatch, enums.SCREEN.ONBOARDING_CATALOG);
67 autoSaveBeforeNavigate(dispatch, {softwareProductId, version, vspComponentId, dataToSave}) {
68 if(softwareProductId) {
70 return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch, {
71 softwareProductId, version, vspComponentId,
72 componentData: dataToSave.componentData,
73 qdata: dataToSave.qdata
76 return SoftwareProductActionHelper.updateSoftwareProduct(dispatch, {
77 softwareProduct: dataToSave.softwareProduct,
78 qdata: dataToSave.qdata
81 return Promise.resolve();
84 navigateToLicenseModelOverview(dispatch, {licenseModelId, version}) {
86 version = getCurrentLicenseModelVersion(licenseModelId);
90 * TODO change to specific rest
93 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
94 LicenseModelActionHelper.fetchLicenseModelItems(dispatch, {licenseModelId, version}).then(() =>{
95 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_MODEL_OVERVIEW, {licenseModelId, version});
97 licenseModelOverviewActionHelper.selectVLMListView(dispatch, {buttonTab: licenseModelOverviewSelectedButton.VLM_LIST_VIEW});
100 navigateToLicenseAgreements(dispatch, {licenseModelId, version}) {
102 version = getCurrentLicenseModelVersion(licenseModelId);
104 LicenseAgreementActionHelper.fetchLicenseAgreementList(dispatch, {licenseModelId, version});
105 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
106 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_AGREEMENTS, {licenseModelId, version});
110 navigateToFeatureGroups(dispatch, {licenseModelId, version}) {
112 version = getCurrentLicenseModelVersion(licenseModelId);
114 FeatureGroupsActionHelper.fetchFeatureGroupsList(dispatch, {licenseModelId, version});
115 setCurrentScreen(dispatch, enums.SCREEN.FEATURE_GROUPS, {licenseModelId, version});
118 navigateToEntitlementPools(dispatch, {licenseModelId, version}) {
120 version = getCurrentLicenseModelVersion(licenseModelId);
122 EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
123 setCurrentScreen(dispatch, enums.SCREEN.ENTITLEMENT_POOLS, {licenseModelId, version});
126 navigateToLicenseKeyGroups(dispatch, {licenseModelId, version}) {
128 version = getCurrentLicenseModelVersion(licenseModelId);
130 LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
131 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_KEY_GROUPS, {licenseModelId, version});
134 navigateToLicenseModelActivityLog(dispatch, {licenseModelId, version}){
136 version = getCurrentLicenseModelVersion(licenseModelId);
138 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: licenseModelId, versionId: version.id});
139 setCurrentScreen(dispatch, enums.SCREEN.ACTIVITY_LOG, {licenseModelId, version});
142 navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, licenseModelId, version, licensingVersion}) {
145 version = getCurrentSoftwareProductVersion(softwareProductId);
148 SoftwareProductComponentsActionHelper.clearComponentsStore(dispatch);
149 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version}).then(response => {
150 if(!licensingVersion) {
151 licensingVersion = response[0].licensingVersion;
152 if (!licensingVersion) {
153 licensingVersion = {id: '1.0', label: '1.0'};
156 if (!licenseModelId) {
157 licenseModelId = response[0].vendorId;
160 const newVersion = response[0].version ? response[0].version : version;
162 SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
163 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion});
164 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
165 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
169 navigateToSoftwareProductDetails(dispatch, {softwareProductId, version}) {
170 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version});
171 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DETAILS, {softwareProductId, version});
174 navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version}) {
175 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version});
176 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
179 navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version}) {
180 if (softwareProductId) {
181 SoftwareProductProcessesActionHelper.fetchProcessesList(dispatch, {softwareProductId, version});
183 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES, {softwareProductId, version});
186 navigateToSoftwareProductNetworks(dispatch, {softwareProductId, version}) {
187 if (softwareProductId) {
188 SoftwareProductNetworksActionHelper.fetchNetworksList(dispatch, {softwareProductId, version});
190 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS, {softwareProductId, version});
193 navigateToSoftwareProductDependencies(dispatch, {softwareProductId, version}) {
194 SoftwareProductDependenciesActionHelper.fetchDependencies(dispatch, {softwareProductId, version});
195 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES, {softwareProductId, version});
198 navigateToSoftwareProductComponents(dispatch, {softwareProductId, version}) {
199 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
200 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS, {softwareProductId, version});
203 navigateToSoftwareProductActivityLog(dispatch, {softwareProductId, version}){
204 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: softwareProductId, versionId: version.id});
205 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG, {softwareProductId, version});
208 navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId, version}) {
209 if (componentId && softwareProductId) {
210 SoftwareProductComponentProcessesActionHelper.fetchProcessesList(dispatch, {componentId, softwareProductId, version});
212 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES, {softwareProductId, componentId, version});
215 navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, version, componentId}){
216 if (componentId && softwareProductId && version) {
217 SoftwareProductComponentsMonitoringAction.fetchExistingFiles(dispatch, {componentId, softwareProductId, version});
219 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING, {softwareProductId, componentId, version});
222 navigateToComponentStorage(dispatch, {softwareProductId, componentId, version}) {
223 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
224 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE, {softwareProductId, version, componentId});
227 navigateToComponentCompute(dispatch, {softwareProductId, componentId, version}) {
228 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
229 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE, {softwareProductId, version, componentId});
232 navigateToComponentNetwork(dispatch, {softwareProductId, componentId, version}) {
233 SoftwareProductComponentsNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
234 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK, {softwareProductId, version, componentId});
237 navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version}) {
238 if (componentId && softwareProductId) {
239 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
241 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL, {softwareProductId, version, componentId});
244 navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version}) {
245 this.navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version});
247 type: SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
249 [SoftwareProductNavigationItems.COMPONENTS]: true,
250 [SoftwareProductNavigationItems.COMPONENTS + '|' + componentId]: true
255 navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId, version}) {
256 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
257 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING, {softwareProductId, version, componentId});