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,
35 onboardingMethod as onboardingMethodTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
36 import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
37 import licenseModelOverviewActionHelper from 'sdc-app/onboarding/licenseModel/overview/licenseModelOverviewActionHelper.js';
38 import store from 'sdc-app/AppStore.js';
39 import {selectedButton as licenseModelOverviewSelectedButton} from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js';
41 function setCurrentScreen(dispatch, screen, props = {}) {
43 type: actionTypes.SET_CURRENT_SCREEN,
47 forceBreadCrumbsUpdate: true
52 function getCurrentLicenseModelVersion(licenseModelId) {
53 return store.getState().licenseModelList.find(({id}) => id === licenseModelId).version;
56 function getCurrentSoftwareProductVersion(softwareProductId) {
57 return store.getState().softwareProductList.find(({id}) => id === softwareProductId).version;
62 navigateToOnboardingCatalog(dispatch) {
63 LicenseModelActionHelper.fetchLicenseModels(dispatch);
64 LicenseModelActionHelper.fetchFinalizedLicenseModels(dispatch);
65 SoftwareProductActionHelper.fetchSoftwareProductList(dispatch);
66 SoftwareProductActionHelper.fetchFinalizedSoftwareProductList(dispatch);
67 OnboardActionHelper.resetOnboardStore(dispatch);
68 setCurrentScreen(dispatch, enums.SCREEN.ONBOARDING_CATALOG);
71 autoSaveBeforeNavigate(dispatch, {softwareProductId, version, vspComponentId, dataToSave}) {
72 if(softwareProductId) {
74 return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch, {
75 softwareProductId, version, vspComponentId,
76 componentData: dataToSave.componentData,
77 qdata: dataToSave.qdata
80 return SoftwareProductActionHelper.updateSoftwareProduct(dispatch, {
81 softwareProduct: dataToSave.softwareProduct,
82 qdata: dataToSave.qdata
85 return Promise.resolve();
88 navigateToLicenseModelOverview(dispatch, {licenseModelId, version}) {
90 version = getCurrentLicenseModelVersion(licenseModelId);
94 * TODO change to specific rest
97 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
98 LicenseModelActionHelper.fetchLicenseModelItems(dispatch, {licenseModelId, version}).then(() =>{
99 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_MODEL_OVERVIEW, {licenseModelId, version});
101 licenseModelOverviewActionHelper.selectVLMListView(dispatch, {buttonTab: licenseModelOverviewSelectedButton.VLM_LIST_VIEW});
104 navigateToLicenseAgreements(dispatch, {licenseModelId, version}) {
106 version = getCurrentLicenseModelVersion(licenseModelId);
108 LicenseAgreementActionHelper.fetchLicenseAgreementList(dispatch, {licenseModelId, version});
109 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
110 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_AGREEMENTS, {licenseModelId, version});
114 navigateToFeatureGroups(dispatch, {licenseModelId, version}) {
116 version = getCurrentLicenseModelVersion(licenseModelId);
118 FeatureGroupsActionHelper.fetchFeatureGroupsList(dispatch, {licenseModelId, version});
119 setCurrentScreen(dispatch, enums.SCREEN.FEATURE_GROUPS, {licenseModelId, version});
122 navigateToEntitlementPools(dispatch, {licenseModelId, version}) {
124 version = getCurrentLicenseModelVersion(licenseModelId);
126 EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
127 setCurrentScreen(dispatch, enums.SCREEN.ENTITLEMENT_POOLS, {licenseModelId, version});
130 navigateToLicenseKeyGroups(dispatch, {licenseModelId, version}) {
132 version = getCurrentLicenseModelVersion(licenseModelId);
134 LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
135 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_KEY_GROUPS, {licenseModelId, version});
138 navigateToLicenseModelActivityLog(dispatch, {licenseModelId, version}){
140 version = getCurrentLicenseModelVersion(licenseModelId);
142 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: licenseModelId, versionId: version.id});
143 setCurrentScreen(dispatch, enums.SCREEN.ACTIVITY_LOG, {licenseModelId, version});
146 navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, licenseModelId, version, licensingVersion}) {
149 version = getCurrentSoftwareProductVersion(softwareProductId);
152 SoftwareProductComponentsActionHelper.clearComponentsStore(dispatch);
153 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version}).then(response => {
154 if(!licensingVersion) {
155 licensingVersion = response[0].licensingVersion;
156 if (!licensingVersion) {
157 licensingVersion = {id: '1.0', label: '1.0'};
160 if (!licenseModelId) {
161 licenseModelId = response[0].vendorId;
164 const newVersion = response[0].version ? response[0].version : version;
166 SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
167 let isFetchImageDetails = (response[0].onboardingMethod === onboardingMethodTypes.HEAT);
168 if (isFetchImageDetails) {
169 // will only continue after we can properly build the navigation bar with the images links
170 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion, isFetchImageDetails}).then(() => {
171 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
172 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
175 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: newVersion, isFetchImageDetails});
176 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: newVersion});
177 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version: newVersion});
182 navigateToSoftwareProductDetails(dispatch, {softwareProductId, version}) {
183 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version});
184 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DETAILS, {softwareProductId, version});
187 navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version}) {
188 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version});
189 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
192 navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version}) {
193 if (softwareProductId) {
194 SoftwareProductProcessesActionHelper.fetchProcessesList(dispatch, {softwareProductId, version});
196 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES, {softwareProductId, version});
199 navigateToSoftwareProductNetworks(dispatch, {softwareProductId, version}) {
200 if (softwareProductId) {
201 SoftwareProductNetworksActionHelper.fetchNetworksList(dispatch, {softwareProductId, version});
203 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS, {softwareProductId, version});
206 navigateToSoftwareProductDependencies(dispatch, {softwareProductId, version}) {
207 SoftwareProductDependenciesActionHelper.fetchDependencies(dispatch, {softwareProductId, version});
208 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES, {softwareProductId, version});
211 navigateToSoftwareProductComponents(dispatch, {softwareProductId, version}) {
212 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
213 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS, {softwareProductId, version});
215 navigateToSoftwareProductDeployment(dispatch, {softwareProductId, version}) {
216 SoftwareProductDeploymentActionHelper.fetchDeploymentFlavorsList(dispatch, {softwareProductId, version});
217 ComputeFlavorActionHelper.fetchComputesListForVSP(dispatch, {softwareProductId, version});
218 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT, {softwareProductId, version});
220 navigateToSoftwareProductActivityLog(dispatch, {softwareProductId, version}){
221 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: softwareProductId, versionId: version.id});
222 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG, {softwareProductId, version});
225 navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId, version}) {
226 if (componentId && softwareProductId) {
227 SoftwareProductComponentProcessesActionHelper.fetchProcessesList(dispatch, {componentId, softwareProductId, version});
229 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES, {softwareProductId, componentId, version});
232 navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, version, componentId}){
233 if (componentId && softwareProductId && version) {
234 SoftwareProductComponentsMonitoringAction.fetchExistingFiles(dispatch, {componentId, softwareProductId, version});
236 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING, {softwareProductId, componentId, version});
239 navigateToComponentStorage(dispatch, {softwareProductId, componentId, version}) {
240 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
241 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE, {softwareProductId, version, componentId});
244 navigateToComponentCompute(dispatch, {softwareProductId, componentId, version}) {
245 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
246 if (componentId && softwareProductId) {
247 ComputeFlavorActionHelper.fetchComputesList(dispatch, {softwareProductId, componentId, version});
249 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE, {softwareProductId, version, componentId});
252 navigateToComponentNetwork(dispatch, {softwareProductId, componentId, version}) {
253 SoftwareProductComponentsNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
254 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK, {softwareProductId, version, componentId});
257 navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version}) {
258 if (componentId && softwareProductId) {
259 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
261 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL, {softwareProductId, version, componentId});
264 navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version}) {
265 this.navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version});
267 type: SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
269 [SoftwareProductNavigationItems.COMPONENTS]: true,
270 [SoftwareProductNavigationItems.COMPONENTS + '|' + componentId]: true
275 navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId, version}) {
276 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
277 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING, {softwareProductId, version, componentId});
280 navigateToComponentImages(dispatch, {softwareProductId, componentId, version}) {
281 SoftwareProductComponentsImageActionHelper.fetchImagesList(dispatch, {
286 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES, {softwareProductId, version, componentId});