blob: 2b59361eefbd026737e775580a61f66a147d76ea [file] [log] [blame]
AviZi280f8012017-06-09 02:39:56 +03001/*!
Michael Landoefa037d2017-02-19 12:57:33 +02002 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
AviZi280f8012017-06-09 02:39:56 +03003 *
Michael Landoefa037d2017-02-19 12:57:33 +02004 * 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
AviZi280f8012017-06-09 02:39:56 +03007 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
Michael Landoefa037d2017-02-19 12:57:33 +020010 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
AviZi280f8012017-06-09 02:39:56 +030012 * 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.
Michael Landoefa037d2017-02-19 12:57:33 +020015 */
Michael Landoefa037d2017-02-19 12:57:33 +020016import LicenseModelActionHelper from './licenseModel/LicenseModelActionHelper.js';
17import LicenseAgreementActionHelper from './licenseModel/licenseAgreement/LicenseAgreementActionHelper.js';
18import FeatureGroupsActionHelper from './licenseModel/featureGroups/FeatureGroupsActionHelper.js';
19import LicenseKeyGroupsActionHelper from './licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js';
20import EntitlementPoolsActionHelper from './licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
21import SoftwareProductActionHelper from './softwareProduct/SoftwareProductActionHelper.js';
22import SoftwareProductProcessesActionHelper from './softwareProduct/processes/SoftwareProductProcessesActionHelper.js';
Avi Zivb8e2faf2017-07-18 19:45:38 +030023import SoftwareProductDeploymentActionHelper from './softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js';
Michael Landoefa037d2017-02-19 12:57:33 +020024import SoftwareProductNetworksActionHelper from './softwareProduct/networks/SoftwareProductNetworksActionHelper.js';
25import SoftwareProductComponentsActionHelper from './softwareProduct/components/SoftwareProductComponentsActionHelper.js';
26import SoftwareProductComponentProcessesActionHelper from './softwareProduct/components/processes/SoftwareProductComponentProcessesActionHelper.js';
27import SoftwareProductComponentsNetworkActionHelper from './softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js';
AviZi280f8012017-06-09 02:39:56 +030028import SoftwareProductDependenciesActionHelper from './softwareProduct/dependencies/SoftwareProductDependenciesActionHelper.js';
Avi Zivb8e2faf2017-07-18 19:45:38 +030029import ComputeFlavorActionHelper from './softwareProduct/components/compute/ComputeFlavorActionHelper.js';
AviZi280f8012017-06-09 02:39:56 +030030import OnboardActionHelper from './onboard/OnboardActionHelper.js';
Michael Landoefa037d2017-02-19 12:57:33 +020031import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
32import {actionTypes, enums} from './OnboardingConstants.js';
Avi Zivb8e2faf2017-07-18 19:45:38 +030033import SoftwareProductComponentsImageActionHelper from './softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js';
34import {navigationItems as SoftwareProductNavigationItems, actionTypes as SoftwareProductActionTypes,
35 onboardingMethod as onboardingMethodTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
36import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
Michael Lando4d97d5f2017-06-17 22:40:44 +030037import licenseModelOverviewActionHelper from 'sdc-app/onboarding/licenseModel/overview/licenseModelOverviewActionHelper.js';
Michael Landoefa037d2017-02-19 12:57:33 +020038import store from 'sdc-app/AppStore.js';
Michael Lando4d97d5f2017-06-17 22:40:44 +030039import {selectedButton as licenseModelOverviewSelectedButton} from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js';
Michael Landoefa037d2017-02-19 12:57:33 +020040
41function setCurrentScreen(dispatch, screen, props = {}) {
42 dispatch({
43 type: actionTypes.SET_CURRENT_SCREEN,
44 currentScreen: {
45 screen,
AviZi280f8012017-06-09 02:39:56 +030046 props,
47 forceBreadCrumbsUpdate: true
Michael Landoefa037d2017-02-19 12:57:33 +020048 }
49 });
50}
51
52function getCurrentLicenseModelVersion(licenseModelId) {
53 return store.getState().licenseModelList.find(({id}) => id === licenseModelId).version;
54}
55
AviZi280f8012017-06-09 02:39:56 +030056function getCurrentSoftwareProductVersion(softwareProductId) {
57 return store.getState().softwareProductList.find(({id}) => id === softwareProductId).version;
58}
59
Michael Landoefa037d2017-02-19 12:57:33 +020060export default {
61
62 navigateToOnboardingCatalog(dispatch) {
63 LicenseModelActionHelper.fetchLicenseModels(dispatch);
AviZi280f8012017-06-09 02:39:56 +030064 LicenseModelActionHelper.fetchFinalizedLicenseModels(dispatch);
Michael Landoefa037d2017-02-19 12:57:33 +020065 SoftwareProductActionHelper.fetchSoftwareProductList(dispatch);
AviZi280f8012017-06-09 02:39:56 +030066 SoftwareProductActionHelper.fetchFinalizedSoftwareProductList(dispatch);
67 OnboardActionHelper.resetOnboardStore(dispatch);
Michael Landoefa037d2017-02-19 12:57:33 +020068 setCurrentScreen(dispatch, enums.SCREEN.ONBOARDING_CATALOG);
69 },
70
AviZi280f8012017-06-09 02:39:56 +030071 autoSaveBeforeNavigate(dispatch, {softwareProductId, version, vspComponentId, dataToSave}) {
72 if(softwareProductId) {
73 if(vspComponentId) {
74 return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch, {
75 softwareProductId, version, vspComponentId,
76 componentData: dataToSave.componentData,
77 qdata: dataToSave.qdata
78 });
79 }
80 return SoftwareProductActionHelper.updateSoftwareProduct(dispatch, {
81 softwareProduct: dataToSave.softwareProduct,
82 qdata: dataToSave.qdata
83 });
84 }
85 return Promise.resolve();
86 },
87
88 navigateToLicenseModelOverview(dispatch, {licenseModelId, version}) {
89 if (!version) {
90 version = getCurrentLicenseModelVersion(licenseModelId);
91 }
92
93 /**
94 * TODO change to specific rest
95 */
96
97 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
98 LicenseModelActionHelper.fetchLicenseModelItems(dispatch, {licenseModelId, version}).then(() =>{
99 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_MODEL_OVERVIEW, {licenseModelId, version});
100 });
Michael Lando4d97d5f2017-06-17 22:40:44 +0300101 licenseModelOverviewActionHelper.selectVLMListView(dispatch, {buttonTab: licenseModelOverviewSelectedButton.VLM_LIST_VIEW});
AviZi280f8012017-06-09 02:39:56 +0300102 });
103 },
Michael Landoefa037d2017-02-19 12:57:33 +0200104 navigateToLicenseAgreements(dispatch, {licenseModelId, version}) {
105 if(!version) {
106 version = getCurrentLicenseModelVersion(licenseModelId);
107 }
108 LicenseAgreementActionHelper.fetchLicenseAgreementList(dispatch, {licenseModelId, version});
109 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
AviZi280f8012017-06-09 02:39:56 +0300110 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_AGREEMENTS, {licenseModelId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200111 });
112 },
113
114 navigateToFeatureGroups(dispatch, {licenseModelId, version}) {
115 if(!version) {
116 version = getCurrentLicenseModelVersion(licenseModelId);
117 }
118 FeatureGroupsActionHelper.fetchFeatureGroupsList(dispatch, {licenseModelId, version});
AviZi280f8012017-06-09 02:39:56 +0300119 setCurrentScreen(dispatch, enums.SCREEN.FEATURE_GROUPS, {licenseModelId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200120 },
121
122 navigateToEntitlementPools(dispatch, {licenseModelId, version}) {
123 if(!version) {
124 version = getCurrentLicenseModelVersion(licenseModelId);
125 }
126 EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
AviZi280f8012017-06-09 02:39:56 +0300127 setCurrentScreen(dispatch, enums.SCREEN.ENTITLEMENT_POOLS, {licenseModelId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200128 },
129
130 navigateToLicenseKeyGroups(dispatch, {licenseModelId, version}) {
131 if(!version) {
132 version = getCurrentLicenseModelVersion(licenseModelId);
133 }
134 LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
AviZi280f8012017-06-09 02:39:56 +0300135 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_KEY_GROUPS, {licenseModelId, version});
136 },
137
138 navigateToLicenseModelActivityLog(dispatch, {licenseModelId, version}){
139 if(!version) {
140 version = getCurrentLicenseModelVersion(licenseModelId);
141 }
142 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: licenseModelId, versionId: version.id});
143 setCurrentScreen(dispatch, enums.SCREEN.ACTIVITY_LOG, {licenseModelId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200144 },
145
146 navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, licenseModelId, version, licensingVersion}) {
AviZi280f8012017-06-09 02:39:56 +0300147
148 if (!version) {
149 version = getCurrentSoftwareProductVersion(softwareProductId);
150 }
151
152 SoftwareProductComponentsActionHelper.clearComponentsStore(dispatch);
Michael Landoefa037d2017-02-19 12:57:33 +0200153 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version}).then(response => {
154 if(!licensingVersion) {
155 licensingVersion = response[0].licensingVersion;
AviZi280f8012017-06-09 02:39:56 +0300156 if (!licensingVersion) {
157 licensingVersion = {id: '1.0', label: '1.0'};
158 }
Michael Landoefa037d2017-02-19 12:57:33 +0200159 }
160 if (!licenseModelId) {
161 licenseModelId = response[0].vendorId;
162 }
163
Michael Landob3d48982017-06-11 14:22:02 +0300164 const newVersion = response[0].version ? response[0].version : version;
165
Michael Landoefa037d2017-02-19 12:57:33 +0200166 SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
Avi Zivb8e2faf2017-07-18 19:45:38 +0300167 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});
173 });
174 } else {
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});
178 }
Michael Landoefa037d2017-02-19 12:57:33 +0200179 });
180 },
181
AviZi280f8012017-06-09 02:39:56 +0300182 navigateToSoftwareProductDetails(dispatch, {softwareProductId, version}) {
183 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version});
184 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DETAILS, {softwareProductId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200185 },
186
AviZi280f8012017-06-09 02:39:56 +0300187 navigateToSoftwareProductAttachments(dispatch, {softwareProductId, version}) {
188 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version});
189 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200190 },
191
192 navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version}) {
193 if (softwareProductId) {
194 SoftwareProductProcessesActionHelper.fetchProcessesList(dispatch, {softwareProductId, version});
195 }
AviZi280f8012017-06-09 02:39:56 +0300196 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES, {softwareProductId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200197 },
198
199 navigateToSoftwareProductNetworks(dispatch, {softwareProductId, version}) {
200 if (softwareProductId) {
201 SoftwareProductNetworksActionHelper.fetchNetworksList(dispatch, {softwareProductId, version});
202 }
AviZi280f8012017-06-09 02:39:56 +0300203 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS, {softwareProductId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200204 },
205
AviZi280f8012017-06-09 02:39:56 +0300206 navigateToSoftwareProductDependencies(dispatch, {softwareProductId, version}) {
207 SoftwareProductDependenciesActionHelper.fetchDependencies(dispatch, {softwareProductId, version});
208 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES, {softwareProductId, version});
209 },
210
211 navigateToSoftwareProductComponents(dispatch, {softwareProductId, version}) {
212 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
213 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS, {softwareProductId, version});
214 },
Avi Zivb8e2faf2017-07-18 19:45:38 +0300215 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});
219 },
AviZi280f8012017-06-09 02:39:56 +0300220 navigateToSoftwareProductActivityLog(dispatch, {softwareProductId, version}){
221 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: softwareProductId, versionId: version.id});
222 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG, {softwareProductId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200223 },
224
225 navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId, version}) {
226 if (componentId && softwareProductId) {
227 SoftwareProductComponentProcessesActionHelper.fetchProcessesList(dispatch, {componentId, softwareProductId, version});
228 }
AviZi280f8012017-06-09 02:39:56 +0300229 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES, {softwareProductId, componentId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200230 },
231
AviZi280f8012017-06-09 02:39:56 +0300232 navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, version, componentId}){
233 if (componentId && softwareProductId && version) {
234 SoftwareProductComponentsMonitoringAction.fetchExistingFiles(dispatch, {componentId, softwareProductId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200235 }
AviZi280f8012017-06-09 02:39:56 +0300236 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING, {softwareProductId, componentId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200237 },
238
AviZi280f8012017-06-09 02:39:56 +0300239 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});
Michael Landoefa037d2017-02-19 12:57:33 +0200242 },
243
AviZi280f8012017-06-09 02:39:56 +0300244 navigateToComponentCompute(dispatch, {softwareProductId, componentId, version}) {
245 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
Avi Zivb8e2faf2017-07-18 19:45:38 +0300246 if (componentId && softwareProductId) {
247 ComputeFlavorActionHelper.fetchComputesList(dispatch, {softwareProductId, componentId, version});
248 }
AviZi280f8012017-06-09 02:39:56 +0300249 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE, {softwareProductId, version, componentId});
Michael Landoefa037d2017-02-19 12:57:33 +0200250 },
251
252 navigateToComponentNetwork(dispatch, {softwareProductId, componentId, version}) {
253 SoftwareProductComponentsNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
AviZi280f8012017-06-09 02:39:56 +0300254 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK, {softwareProductId, version, componentId});
Michael Landoefa037d2017-02-19 12:57:33 +0200255 },
256
257 navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version}) {
258 if (componentId && softwareProductId) {
259 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
Michael Landoefa037d2017-02-19 12:57:33 +0200260 }
AviZi280f8012017-06-09 02:39:56 +0300261 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL, {softwareProductId, version, componentId});
Michael Landoefa037d2017-02-19 12:57:33 +0200262 },
263
264 navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version}) {
265 this.navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version});
266 dispatch({
267 type: SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
268 mapOfExpandedIds: {
269 [SoftwareProductNavigationItems.COMPONENTS]: true,
270 [SoftwareProductNavigationItems.COMPONENTS + '|' + componentId]: true
271 }
272 });
273 },
274
AviZi280f8012017-06-09 02:39:56 +0300275 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});
Avi Zivb8e2faf2017-07-18 19:45:38 +0300278 },
279
280 navigateToComponentImages(dispatch, {softwareProductId, componentId, version}) {
281 SoftwareProductComponentsImageActionHelper.fetchImagesList(dispatch, {
282 softwareProductId,
283 componentId,
284 version
285 });
286 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES, {softwareProductId, version, componentId});
Michael Landoefa037d2017-02-19 12:57:33 +0200287 }
AviZi280f8012017-06-09 02:39:56 +0300288
Michael Landoefa037d2017-02-19 12:57:33 +0200289};