2 * Copyright © 2016-2017 European Support Limited
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 or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 import UsersActionHelper from './users/UsersActionHelper.js';
18 import VersionsPageActionHelper from './versionsPage/VersionsPageActionHelper.js';
19 import PermissionsActionHelper from './permissions/PermissionsActionHelper.js';
20 import LicenseModelActionHelper from './licenseModel/LicenseModelActionHelper.js';
21 import LicenseAgreementActionHelper from './licenseModel/licenseAgreement/LicenseAgreementActionHelper.js';
22 import FeatureGroupsActionHelper from './licenseModel/featureGroups/FeatureGroupsActionHelper.js';
23 import LicenseKeyGroupsActionHelper from './licenseModel/licenseKeyGroups/LicenseKeyGroupsActionHelper.js';
24 import EntitlementPoolsActionHelper from './licenseModel/entitlementPools/EntitlementPoolsActionHelper.js';
25 import SoftwareProductActionHelper from './softwareProduct/SoftwareProductActionHelper.js';
26 import SoftwareProductProcessesActionHelper from './softwareProduct/processes/SoftwareProductProcessesActionHelper.js';
27 import SoftwareProductDeploymentActionHelper from './softwareProduct/deployment/SoftwareProductDeploymentActionHelper.js';
28 import SoftwareProductNetworksActionHelper from './softwareProduct/networks/SoftwareProductNetworksActionHelper.js';
29 import SoftwareProductComponentsActionHelper from './softwareProduct/components/SoftwareProductComponentsActionHelper.js';
30 import SoftwareProductComponentProcessesActionHelper from './softwareProduct/components/processes/SoftwareProductComponentProcessesActionHelper.js';
31 import SoftwareProductComponentsNetworkActionHelper from './softwareProduct/components/network/SoftwareProductComponentsNetworkActionHelper.js';
32 import SoftwareProductDependenciesActionHelper from './softwareProduct/dependencies/SoftwareProductDependenciesActionHelper.js';
33 import ComputeFlavorActionHelper from './softwareProduct/components/compute/ComputeFlavorActionHelper.js';
34 import OnboardActionHelper from './onboard/OnboardActionHelper.js';
35 import MergeEditorActionHelper from 'sdc-app/common/merge/MergeEditorActionHelper.js';
36 import SoftwareProductComponentsMonitoringAction from './softwareProduct/components/monitoring/SoftwareProductComponentsMonitoringActionHelper.js';
37 import {actionTypes, enums} from './OnboardingConstants.js';
38 import {actionTypes as SoftwareProductActionTypes, onboardingOriginTypes} from 'sdc-app/onboarding/softwareProduct/SoftwareProductConstants.js';
39 import ActivityLogActionHelper from 'sdc-app/common/activity-log/ActivityLogActionHelper.js';
40 import ItemsHelper from 'sdc-app/common/helpers/ItemsHelper.js';
41 import SoftwareProductComponentsImageActionHelper from './softwareProduct/components/images/SoftwareProductComponentsImageActionHelper.js';
42 import licenseModelOverviewActionHelper from 'sdc-app/onboarding/licenseModel/overview/licenseModelOverviewActionHelper.js';
43 import {tabsMapping as attachmentsTabsMapping} from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsConstants.js';
44 import SoftwareProductAttachmentsActionHelper from 'sdc-app/onboarding/softwareProduct/attachments/SoftwareProductAttachmentsActionHelper.js';
46 function setCurrentScreen(dispatch, screen, props = {}) {
48 type: actionTypes.SET_CURRENT_SCREEN,
52 forceBreadCrumbsUpdate: true
57 export function updateCurrentScreenProps(dispatch, props = {}) {
59 type: actionTypes.UPDATE_CURRENT_SCREEN_PROPS,
64 const OnboardingActionHelper = {
66 loadItemsLists(dispatch) {
67 LicenseModelActionHelper.fetchLicenseModels(dispatch);
68 LicenseModelActionHelper.fetchFinalizedLicenseModels(dispatch);
69 SoftwareProductActionHelper.fetchSoftwareProductList(dispatch);
70 SoftwareProductActionHelper.fetchFinalizedSoftwareProductList(dispatch);
73 navigateToOnboardingCatalog(dispatch) {
74 UsersActionHelper.fetchUsersList(dispatch);
75 this.loadItemsLists(dispatch);
76 OnboardActionHelper.resetOnboardStore(dispatch);
77 setCurrentScreen(dispatch, enums.SCREEN.ONBOARDING_CATALOG);
80 autoSaveBeforeNavigate(dispatch, {softwareProductId, version, vspComponentId, dataToSave}) {
81 if(softwareProductId) {
83 return SoftwareProductComponentsActionHelper.updateSoftwareProductComponent(dispatch, {
84 softwareProductId, version, vspComponentId,
85 componentData: dataToSave.componentData,
86 qdata: dataToSave.qdata
89 return SoftwareProductActionHelper.updateSoftwareProduct(dispatch, {
90 softwareProduct: dataToSave.softwareProduct,
92 qdata: dataToSave.qdata
95 return Promise.resolve();
98 navigateToLicenseModelOverview(dispatch, {licenseModelId, version}) {
101 * TODO change to specific rest
104 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
105 LicenseModelActionHelper.fetchLicenseModelItems(dispatch, {licenseModelId, version}).then(() => {
106 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_MODEL_OVERVIEW, {licenseModelId, version});
108 licenseModelOverviewActionHelper.selectVLMListView(dispatch, {buttonTab: null});
111 navigateToLicenseAgreements(dispatch, {licenseModelId, version}) {
112 LicenseAgreementActionHelper.fetchLicenseAgreementList(dispatch, {licenseModelId, version});
113 LicenseModelActionHelper.fetchLicenseModelById(dispatch, {licenseModelId, version}).then(() => {
114 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_AGREEMENTS, {licenseModelId, version});
118 navigateToFeatureGroups(dispatch, {licenseModelId, version}) {
119 FeatureGroupsActionHelper.fetchFeatureGroupsList(dispatch, {licenseModelId, version});
120 setCurrentScreen(dispatch, enums.SCREEN.FEATURE_GROUPS, {licenseModelId, version});
123 navigateToEntitlementPools(dispatch, {licenseModelId, version}) {
124 EntitlementPoolsActionHelper.fetchEntitlementPoolsList(dispatch, {licenseModelId, version});
125 setCurrentScreen(dispatch, enums.SCREEN.ENTITLEMENT_POOLS, {licenseModelId, version});
128 navigateToLicenseKeyGroups(dispatch, {licenseModelId, version}) {
129 LicenseKeyGroupsActionHelper.fetchLicenseKeyGroupsList(dispatch, {licenseModelId, version});
130 setCurrentScreen(dispatch, enums.SCREEN.LICENSE_KEY_GROUPS, {licenseModelId, version});
133 navigateToLicenseModelActivityLog(dispatch, {licenseModelId, version}){
134 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: licenseModelId, versionId: version.id});
135 setCurrentScreen(dispatch, enums.SCREEN.ACTIVITY_LOG, {licenseModelId, version});
138 navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, version}) {
139 SoftwareProductComponentsActionHelper.clearComponentsStore(dispatch);
140 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version}).then(response => {
141 let {vendorId: licenseModelId, licensingVersion} = response[0];
142 SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
143 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version: version});
144 if(response[0].onboardingOrigin === onboardingOriginTypes.ZIP) {
145 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version: version});
147 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_LANDING_PAGE, {softwareProductId, licenseModelId, version});
151 navigateToSoftwareProductDetails(dispatch, {softwareProductId, version}) {
152 SoftwareProductActionHelper.fetchSoftwareProduct(dispatch, {softwareProductId, version}).then(response => {
153 let {vendorId: licenseModelId, licensingVersion} = response[0];
154 SoftwareProductActionHelper.loadLicensingVersionsList(dispatch, {licenseModelId});
155 SoftwareProductActionHelper.loadSoftwareProductDetailsData(dispatch, {licenseModelId, licensingVersion});
156 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DETAILS, {softwareProductId, version});
160 navigateToSoftwareProductAttachmentsSetupTab(dispatch, {softwareProductId, version}) {
161 SoftwareProductActionHelper.loadSoftwareProductHeatCandidate(dispatch, {softwareProductId, version});
162 SoftwareProductAttachmentsActionHelper.setActiveTab(dispatch, {activeTab: attachmentsTabsMapping.SETUP});
163 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
165 navigateToSoftwareProductAttachmentsValidationTab(dispatch, {softwareProductId, version}) {
166 SoftwareProductActionHelper.processAndValidateHeatCandidate(dispatch, {softwareProductId, version}).then(() => {
167 SoftwareProductAttachmentsActionHelper.setActiveTab(dispatch, {activeTab: attachmentsTabsMapping.VALIDATION});
168 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ATTACHMENTS, {softwareProductId, version});
172 navigateToSoftwareProductProcesses(dispatch, {softwareProductId, version}) {
173 if (softwareProductId) {
174 SoftwareProductProcessesActionHelper.fetchProcessesList(dispatch, {softwareProductId, version});
176 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_PROCESSES, {softwareProductId, version});
179 navigateToSoftwareProductNetworks(dispatch, {softwareProductId, version}) {
180 if (softwareProductId) {
181 SoftwareProductNetworksActionHelper.fetchNetworksList(dispatch, {softwareProductId, version});
183 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_NETWORKS, {softwareProductId, version});
186 navigateToSoftwareProductDependencies(dispatch, {softwareProductId, version}) {
187 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version}).then(result => {
188 if(result.listCount >= 2) {
189 SoftwareProductDependenciesActionHelper.fetchDependencies(dispatch, {softwareProductId, version});
190 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPENDENCIES, {softwareProductId, version});
193 this.navigateToSoftwareProductLandingPage(dispatch, {softwareProductId, version});
198 navigateToSoftwareProductComponents(dispatch, {softwareProductId, version}) {
199 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponents(dispatch, {softwareProductId, version});
200 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS, {softwareProductId, version});
202 navigateToSoftwareProductDeployment(dispatch, {softwareProductId, version}) {
203 SoftwareProductDeploymentActionHelper.fetchDeploymentFlavorsList(dispatch, {softwareProductId, version});
204 ComputeFlavorActionHelper.fetchComputesListForVSP(dispatch, {softwareProductId, version});
205 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_DEPLOYMENT, {softwareProductId, version});
207 navigateToSoftwareProductActivityLog(dispatch, {softwareProductId, version}){
208 ActivityLogActionHelper.fetchActivityLog(dispatch, {itemId: softwareProductId, versionId: version.id});
209 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_ACTIVITY_LOG, {softwareProductId, version});
212 navigateToSoftwareProductComponentProcesses(dispatch, {softwareProductId, componentId, version}) {
213 if (componentId && softwareProductId) {
214 SoftwareProductComponentProcessesActionHelper.fetchProcessesList(dispatch, {componentId, softwareProductId, version});
216 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_PROCESSES, {softwareProductId, componentId, version});
219 navigateToSoftwareProductComponentMonitoring(dispatch, {softwareProductId, version, componentId}){
220 if (componentId && softwareProductId && version) {
221 SoftwareProductComponentsMonitoringAction.fetchExistingFiles(dispatch, {componentId, softwareProductId, version});
223 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_MONITORING, {softwareProductId, componentId, version});
226 navigateToComponentStorage(dispatch, {softwareProductId, componentId, version}) {
227 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
228 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_STORAGE, {softwareProductId, version, componentId});
231 navigateToComponentCompute(dispatch, {softwareProductId, componentId, version}) {
232 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
233 if (componentId && softwareProductId) {
234 ComputeFlavorActionHelper.fetchComputesList(dispatch, {softwareProductId, componentId, version});
236 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_COMPUTE, {softwareProductId, version, componentId});
239 navigateToComponentNetwork(dispatch, {softwareProductId, componentId, version}) {
240 SoftwareProductComponentsNetworkActionHelper.fetchNICsList(dispatch, {softwareProductId, componentId, version});
241 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_NETWORK, {softwareProductId, version, componentId});
244 navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version}) {
245 if (componentId && softwareProductId) {
246 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
248 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_GENERAL, {softwareProductId, version, componentId});
251 navigateToSoftwareProductComponentGeneralAndUpdateLeftPanel(dispatch, {softwareProductId, componentId, version}) {
252 this.navigateToSoftwareProductComponentGeneral(dispatch, {softwareProductId, componentId, version});
254 type: SoftwareProductActionTypes.TOGGLE_NAVIGATION_ITEM,
256 [enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS]: true,
257 [enums.SCREEN.SOFTWARE_PRODUCT_COMPONENTS + '|' + componentId]: true
262 navigateToComponentLoadBalancing(dispatch, {softwareProductId, componentId, version}) {
263 SoftwareProductComponentsActionHelper.fetchSoftwareProductComponent(dispatch, {softwareProductId, vspComponentId: componentId, version});
264 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_LOAD_BALANCING, {softwareProductId, version, componentId});
267 navigateToComponentImages(dispatch, {softwareProductId, componentId, version}) {
268 SoftwareProductComponentsImageActionHelper.fetchImagesList(dispatch, {
273 setCurrentScreen(dispatch, enums.SCREEN.SOFTWARE_PRODUCT_COMPONENT_IMAGES, {softwareProductId, version, componentId});
276 navigateToVersionsPage(dispatch, {itemType, itemId, itemName, additionalProps, users}) {
277 PermissionsActionHelper.fetchItemUsers(dispatch, {itemId, allUsers: users});
278 VersionsPageActionHelper.selectNone(dispatch);
279 VersionsPageActionHelper.fetchVersions(dispatch, {itemType, itemId}).then(() => {
280 setCurrentScreen(dispatch, enums.SCREEN.VERSIONS_PAGE, {itemType, itemId, itemName, additionalProps});
284 checkMergeStatus(dispatch, {itemId, versionId, version}) {
285 return ItemsHelper.fetchVersion({itemId, versionId}).then(response => {
286 let state = response && response.state || {};
287 let {synchronizationState} = state;
288 // let inMerge = synchronizationState === SyncStates.MERGE;
289 MergeEditorActionHelper.fetchConflicts(dispatch, {itemId, version}).then(data => {
291 type: actionTypes.CHECK_MERGE_STATUS,
292 synchronizationState,
293 conflictInfoList: data.conflictInfoList
299 forceBreadCrumbsUpdate(dispatch) {
301 type: actionTypes.SET_CURRENT_SCREEN,
303 forceBreadCrumbsUpdate: true
308 updateCurrentScreenVersion(dispatch, version) {
310 type: actionTypes.SET_CURRENT_SCREEN_VERSION,
316 export default OnboardingActionHelper;