blob: b82d08683fa498614fbfa66baee678e2e0234920 [file] [log] [blame]
/*!
* 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'
}
}
};