/*! * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing * permissions and limitations under the License. */ import keyMirror from 'nfvo-utils/KeyMirror.js'; export const actionTypes = keyMirror({ LOAD_CONFLICTS: null, ADD_ACTIONS: null, LOAD_CONFLICT: null, DATA_PROCESSED: null }); export const rules = { SKIP: 'skip', PARSE: 'parse', FUNCTION: 'function', BOOLEAN: 'boolean' }; export const SyncStates = { MERGE : 'Merging', OUT_OF_SYNC: 'OutOfSync', UP_TO_DATE: 'UpToDate' }; export const ResolutionTypes = { YOURS: 'YOURS', THEIRS: 'THEIRS' }; export const fileTypes = { LKG : 'LicenseKeyGroup', VLM : 'VendorLicenseModel', EP : 'EntitlementPool', FG : 'FeatureGroup', LA : 'LicenseAgreement', VSP : 'VendorSoftwareProduct', LIMIT : 'Limit', VSP_Q : 'VSPQuestionnaire', COMPONENT : 'Component', COMPONENT_Q : 'ComponentQuestionnaire', COMPONENT_DEP : 'ComponentDependencies', COMPUTE_Q : 'ComputeQuestionnaire', COMPUTE : 'Compute', COMPUTE_FLAVOR: 'ComputeFlavor', NIC : 'Nic', NIC_Q : 'NicQuestionnaire', IMAGE : 'Image', IMAGE_Q : 'ImageQuestionnaire', PROCESS : 'Process', DEPLOYMENT_FLAVOR : 'DeploymentFlavor', VENDOR : 'Vendor', NETWORK : 'Network', ORCHESTRATION_TEMPLATE_CANDIDATE : 'OrchestrationTemplateCandidate' }; export const dataRules = { general: { id: { rule: rules.SKIP }, questionareData: { rule: rules.PARSE, moveFields: true }, startDate: { rule: rules.FUNCTION, functionName: 'parseDate' }, expiryDate: { rule: rules.FUNCTION, functionName: 'parseDate' }, featureGroups: { rule: rules.FUNCTION, functionName: 'reduceList', args: {subField: 'name'} }, licenseKeyGroups: { rule: rules.FUNCTION, functionName: 'reduceList', args: {subField: 'name'} }, entitlementPools: { rule: rules.FUNCTION, functionName: 'reduceList', args: {subField: 'name'} }, }, [fileTypes.COMPONENT] : { }, [fileTypes.COMPUTE_FLAVOR] : { associatedToDeploymentFlavor: { rule: rules.BOOLEAN, trueValue: 'true' } }, [fileTypes.COMPUTE_Q] : { }, [fileTypes.COMPONENT_Q] : { isComponentMandatory: { rule: rules.BOOLEAN, trueValue: 'YES', falseValue: 'NO' } }, [fileTypes.EP] : { referencingFeatureGroups: { rule: rules.SKIP, functionName: 'getFeatureGroups' }, operationalScope: { rule: rules.FUNCTION, functionName: 'processChoices' }, }, [fileTypes.FG] : { referencingLicenseAgreements: { rule: rules.SKIP, functionName: 'getLicenseAgreements' } }, [fileTypes.LA] : { licenseTerm : { rule: rules.FUNCTION, functionName: 'processChoice' } }, [fileTypes.LIMIT] : { type: { rule: rules.FUNCTION, functionName: 'getEnumValue', args: {listName: 'limitType'} }, unit: { rule: rules.FUNCTION, functionName: 'getEnumValue', args: {listName: 'limitUnit'} } }, [fileTypes.LKG] : { operationalScope: { rule: rules.FUNCTION, functionName: 'processChoices' }, referencingFeatureGroups: { rule: rules.SKIP, functionName: 'getFeatureGroups' }, }, [fileTypes.NIC] : { networkId: { rule: rules.SKIP } }, [fileTypes.NIC_Q] : { }, [fileTypes.PROCESS] : { type: { rule: rules.FUNCTION, functionName: 'getEnumValue', args: {listName: 'processType'} } }, [fileTypes.VLM] : { iconRef: { rule: rules.SKIP } }, [fileTypes.VSP] : { vendorId: { rule: rules.SKIP }, onboardingMethod: { rule: rules.SKIP }, validationData: { rule: rules.SKIP }, isOldVersion: { rule: rules.SKIP }, licensingVersion: { rule: rules.FUNCTION, functionName: 'fetchLMVersion' }, category: { rule: rules.FUNCTION, functionName: 'fetchCategory' }, subCategory: { rule: rules.SKIP }, }, [fileTypes.VSP_Q] : { affinityData: { rule: rules.SKIP }, storageReplicationAcrossRegion: { rule: rules.BOOLEAN, trueValue: 'true', falseValue: 'false' } }, [fileTypes.ORCHESTRATION_TEMPLATE_CANDIDATE] : { modules: { rule: rules.FUNCTION, functionName: 'convertArrayToObject' }, }, };