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 SoftwareProductDeploymentActionHelper from './softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js';
24 import SoftwareProductNetworksActionHelper from './softwareProduct/networks/SoftwareProductNetworksActionHelper.js';
25 import SoftwareProductComponentsActionHelper from './softwareProduct/components/SoftwareProductComponentsActionHelper.js';
26 import SoftwareProductComponentProcessesActionHelper from './softwareProduct/components/processes/SoftwareProductComponentProcessesActionHelper.js';
27 import SoftwareProductComponentsNetworkActionHelper from './softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js';
28 import SoftwareProductDependenciesActionHelper from './softwareProduct/dependencies/SoftwareProductDependenciesActionHelper.js';
29 import ComputeFlavorActionHelper from './softwareProduct/components/compute/ComputeFlavorActionHelper.js';
30 import OnboardActionHelper from './onboard/OnboardActionHelper.js';
31 import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
32 import {actionTypes, enums} from './OnboardingConstants.js';
33 import SoftwareProductComponentsImageActionHelper from './softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js';
34 import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes, onboardingOriginTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
35 import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
36 import licenseModelOverviewActionHelper from 'sdc-app/onboarding/licenseModel/overview/licenseModelOverviewActionHelper.js';
37 import store from 'sdc-app/AppStore.js';
38 import {selectedButton as licenseModelOverviewSelectedButton} from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js';
39 import {tabsMapping as attachmentsTabsMapping} from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js';
40 import SoftwareProductAttachmentsActionHelper from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js';
42 function setCurrentScreen(dispatch, screen, props = {}) {
44 type: actionTypes.SET_CURRENT_SCREEN,
48 forceBreadCrumbsUpdate: true
53 function getCurrentLicenseModelVersion(licenseModelId) {
54 return store.getState().licenseModelList.find(({id}) => id === licenseModelId).version;
57 function getCurrentSoftwareProductVersion(softwareProductId) {
58 return store.getState().softwareProductList.find(({id}) => id === softwareProductId).version;
63 navigateToOnboardingCatalog(dispatch) {
64 LicenseModelActionHelper.fetchLicenseModels(dispatch);
65 LicenseModelActionHelper.fetchFinalizedLicenseModels(dispatch);
66 SoftwareProductActionHelper.fetchSoftwareProductList(dispatch);
67 SoftwareProductActionHelper.fetchFinalizedSoftwareProductList(dispatch);
68 OnboardActionHelper.resetOnboardStore(dispatch);
69 setCurrentScreen(dispatch, enums.SCREEN.ONBOARDING_CATALOG);
72 autoSaveBeforeNavigate(dispatch, {softwareProductId, version, vspComponentId, dataToSave}) {
73 if(softwareProductId) {
75 return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch, {
76 softwareProductId, version, vspComponentId,
77 componentData: dataToSave.componentData,
78 qdata: dataToSave.qdata
81 return SoftwareProductActionHelper.updateSoftwareProduct(dispatch, {
82 softwareProduct: dataToSave.softwareProduct,
83 qdata: dataToSave.qdata
86 return Promise.resolve();
89 navigateToLicenseModelOverview(dispatch, {licenseModelId, version}) {
91 version = getCurrentLicenseModelVersion(licenseModelId);
95 * TODO change to specific rest
98 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
99 LicenseModelActionHelper.fetchLicenseModelItems(dispatch, {licenseModelId, version}).then(() =>{
100 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_MODEL_OVERVIEW, {licenseModelId, version});
102 licenseModelOverviewActionHelper.selectVLMListView(dispatch, {buttonTab: licenseModelOverviewSelectedButton.VLM_LIST_VIEW});
105 navigateToLicenseAgreements(dispatch, {licenseModelId, version}) {
107 version = getCurrentLicenseModelVersion(licenseModelId);
109 LicenseAgreementActionHelper.fetchLicenseAgreementList(dispatch, {licenseModelId, version});
110 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
111 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_AGREEMENTS, {licenseModelId, version});
115 navigateToFeatureGroups(dispatch, {licenseModelId, version}) {
117 version = getCurrentLicenseModelVersion(licenseModelId);
119 FeatureGroupsActionHelper.fetchFeatureGroupsList(dispatch, {licenseModelId, version});
120 setCurrentScreen(dispatch, enums.SCREEN.FEATURE_GROUPS, {licenseModelId, version});
123 navigateToEntitlementPools(dispatch, {licenseModelId, version}) {
125 version = getCurrentLicenseModelVersion(licenseModelId);
127 EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
128 setCurrentScreen(dispatch, enums.SCREEN.ENTITLEMENT_POOLS, {licenseModelId, version});
131 navigateToLicenseKeyGroups(dispatch, {licenseModelId, version}) {
133 version = getCurrentLicenseModelVersion(licenseModelId);
135 LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
136 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_KEY_GROUPS, {licenseModelId, version});
139 navigateToLicenseModelActivityLog(dispatch, {licenseModelId, version}){
141 version = getCurrentLicenseModelVersion(licenseModelId);
143 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: licenseModelId, versionId: version.id});
144 setCurrentScreen(dispatch, enums.SCREEN.ACTIVITY_LOG, {licenseModelId, version});
147 navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, licenseModelId, version, licensingVersion}) {
150 version = getCurrentSoftwareProductVersion(softwareProductId);
153 SoftwareProductComponentsActionHelper.clearComponentsStore(dispatch);
154 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version}).then(response => {
155 if(!licensingVersion) {
156 licensingVersion = response[0].licensingVersion;
157 if (!licensingVersion) {
158 licensingVersion = {id: '1.0', label: '1.0'};
161 if (!licenseModelId) {
162 licenseModelId = response[0].vendorId;
165 const newVersion = response[0].version ? response[0].version : version;
167 SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
169 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion});
170 if(response[0].onboardingOrigin === onboardingOriginTypes.ZIP) {
171 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
173 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
177 navigateToSoftwareProductDetails(dispatch, {softwareProductId, version}) {
178 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version});
179 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DETAILS, {softwareProductId, version});
182 navigateToSoftwareProductAttachmentsSetupTab(dispatch, {softwareProductId, version}) {
183 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version});
184 SoftwareProductAttachmentsActionHelper.setActiveTab(dispatch, {activeTab: attachmentsTabsMapping.SETUP});
185 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
188 navigateToSoftwareProductAttachmentsValidationTab(dispatch, {softwareProductId, version}) {
189 SoftwareProductActionHelper.processAndValidateHeatCandidate(dispatch, {softwareProductId, version}).then(() => {
190 SoftwareProductAttachmentsActionHelper.setActiveTab(dispatch, {activeTab: attachmentsTabsMapping.VALIDATION});
191 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
195 navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version}) {
196 if (softwareProductId) {
197 SoftwareProductProcessesActionHelper.fetchProcessesList(dispatch, {softwareProductId, version});
199 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES, {softwareProductId, version});
202 navigateToSoftwareProductNetworks(dispatch, {softwareProductId, version}) {
203 if (softwareProductId) {
204 SoftwareProductNetworksActionHelper.fetchNetworksList(dispatch, {softwareProductId, version});
206 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS, {softwareProductId, version});
209 navigateToSoftwareProductDependencies(dispatch, {softwareProductId, version}) {
210 SoftwareProductDependenciesActionHelper.fetchDependencies(dispatch, {softwareProductId, version});
211 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES, {softwareProductId, version});
214 navigateToSoftwareProductComponents(dispatch, {softwareProductId, version}) {
215 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
216 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS, {softwareProductId, version});
218 navigateToSoftwareProductDeployment(dispatch, {softwareProductId, version}) {
219 SoftwareProductDeploymentActionHelper.fetchDeploymentFlavorsList(dispatch, {softwareProductId, version});
220 ComputeFlavorActionHelper.fetchComputesListForVSP(dispatch, {softwareProductId, version});
221 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT, {softwareProductId, version});
223 navigateToSoftwareProductActivityLog(dispatch, {softwareProductId, version}){
224 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: softwareProductId, versionId: version.id});
225 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG, {softwareProductId, version});
228 navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId, version}) {
229 if (componentId && softwareProductId) {
230 SoftwareProductComponentProcessesActionHelper.fetchProcessesList(dispatch, {componentId, softwareProductId, version});
232 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES, {softwareProductId, componentId, version});
235 navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, version, componentId}){
236 if (componentId && softwareProductId && version) {
237 SoftwareProductComponentsMonitoringAction.fetchExistingFiles(dispatch, {componentId, softwareProductId, version});
239 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING, {softwareProductId, componentId, version});
242 navigateToComponentStorage(dispatch, {softwareProductId, componentId, version}) {
243 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
244 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE, {softwareProductId, version, componentId});
247 navigateToComponentCompute(dispatch, {softwareProductId, componentId, version}) {
248 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
249 if (componentId && softwareProductId) {
250 ComputeFlavorActionHelper.fetchComputesList(dispatch, {softwareProductId, componentId, version});
252 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE, {softwareProductId, version, componentId});
255 navigateToComponentNetwork(dispatch, {softwareProductId, componentId, version}) {
256 SoftwareProductComponentsNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
257 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK, {softwareProductId, version, componentId});
260 navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version}) {
261 if (componentId && softwareProductId) {
262 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
264 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL, {softwareProductId, version, componentId});
267 navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version}) {
268 this.navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version});
270 type: SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
272 [SoftwareProductNavigationItems.COMPONENTS]: true,
273 [SoftwareProductNavigationItems.COMPONENTS + '|' + componentId]: true
278 navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId, version}) {
279 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
280 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING, {softwareProductId, version, componentId});
283 navigateToComponentImages(dispatch, {softwareProductId, componentId, version}) {
284 SoftwareProductComponentsImageActionHelper.fetchImagesList(dispatch, {
289 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES, {softwareProductId, version, componentId});
292 updateCurrentScreenVersion(dispatch, version) {
294 type: actionTypes.SET_CURRENT_SCREEN_VERSION,