('VNF-Create', 'createInstance', 'Vnf', true,true, '7', '7', 'DEFAULT', '*'),
('VNF-Delete', 'deleteInstance', 'Vnf', true,true, '7', '7', 'DEFAULT', '*'),
('VNF-Macro-Delete', 'deleteInstance', 'Vnf', false,true, '7', '7', 'DEFAULT', '*'),
-('VNF-Macro-Modify', 'updateInstance', 'Vnf', false,true, '7', '7','k8scloudowner4', '*'),
+('VNF-Macro-Modify', 'updateInstance', 'Vnf', false,true, '7', '7','DEFAULT', '*'),
('VNF-Macro-HealthCheck', 'healthCheck', 'Vnf', false,true, '7', '7','DEFAULT', '*'),
('VolumeGroup-Create', 'createInstance', 'VolumeGroup', true,true, '7','7', 'DEFAULT', '*'),
('VolumeGroup-Delete', 'deleteInstance', 'VolumeGroup', true,true, '7','7', 'DEFAULT', '*'),
('NetworkCollection-Macro-Delete', 'deleteInstance', 'NetworkCollection', false,true, '7','7', 'DEFAULT', '*'),
('VFModule-ScaleOut', 'scaleOut', 'VfModule', true, true, '7','7', 'DEFAULT', '*'),
('VNF-InPlaceUpdate', 'inPlaceSoftwareUpdate', 'Vnf', true, true, '7','7', 'DEFAULT', '*'),
-('VNF-Config-Update', 'applyUpdatedConfig', 'Vnf', true, true, '7','7', 'DEFAULT', '*');
+('VNF-Config-Update', 'applyUpdatedConfig', 'Vnf', true, true, '7','7', 'DEFAULT', '*'),
+('CNF-Macro-Upgrade', 'upgradeCnf', 'Vnf', false,true, '7', '7','DEFAULT', '*');
INSERT INTO orchestration_flow_reference(COMPOSITE_ACTION, SEQ_NO, FLOW_NAME, SCOPE, ACTION, FLOW_VERSION, NB_REQ_REF_LOOKUP_ID) VALUES
('Service-Macro-Unassign', '4', 'UnassignNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Unassign' and CLOUD_OWNER = 'DEFAULT')),
('Service-Macro-Unassign', '5', 'UnassignServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Unassign' and CLOUD_OWNER = 'DEFAULT')),
('Service-Macro-Create', '1', 'AssignServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '2', 'CreateNetworkCollectionBB', NULL, NULL,1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '3', 'AssignNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '4', 'AssignVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '5', 'AssignVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '6', 'AssignVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '7', 'ControllerExecutionBB', 'vnf', 'config-assign', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '8', 'AssignPnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '9', 'WaitForPnfReadyBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '10', 'ControllerExecutionBB', 'pnf', 'config-assign', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '11', 'ControllerExecutionBB', 'pnf', 'config-deploy', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '12', 'ActivatePnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '13', 'CreateNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '14', 'ActivateNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '15', 'CreateVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '16', 'ActivateVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '17', 'CreateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '18', 'ActivateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '19', 'ControllerExecutionBB', 'vnf', 'config-deploy', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '20', 'ActivateVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '21', 'ActivateNetworkCollectionBB', NULL, NULL,1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Create', '22', 'ActivateServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '1', 'DeactivateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '2', 'DeleteVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '3', 'DeactivateVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '4', 'DeleteVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '5', 'DeactivateVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '6', 'DeactivatePnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '7', 'DeactivateNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '8', 'DeleteNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '9', 'DeleteNetworkCollectionBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '10', 'DeactivateServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '11', 'UnassignVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '12', 'UnassignVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '13', 'UnassignVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '14', 'UnassignNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
- ('Service-Macro-Delete', '15', 'UnassignServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '2', 'CreateChildServiceBB', NULL, NULL,1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '3', 'CreateNetworkCollectionBB', NULL, NULL,1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '4', 'AssignNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '5', 'AssignVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '6', 'AssignVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '7', 'AssignVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '8', 'ControllerExecutionBB', 'vnf', 'config-assign', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '9', 'AssignPnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '10', 'WaitForPnfReadyBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '11', 'ControllerExecutionBB', 'pnf', 'config-assign', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '12', 'ControllerExecutionBB', 'pnf', 'config-deploy', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '13', 'ActivatePnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '14', 'CreateNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '15', 'ActivateNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '16', 'CreateVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '17', 'ActivateVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '18', 'CreateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '19', 'ActivateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '20', 'ControllerExecutionBB', 'vnf', 'config-deploy', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '21', 'ActivateVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '22', 'ActivateNetworkCollectionBB', NULL, NULL,1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Create', '23', 'ActivateServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Create' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '1', 'DeleteChildServiceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '2', 'DeactivateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '3', 'DeleteVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '4', 'DeactivateVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '5', 'DeleteVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '6', 'DeactivateVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '7', 'DeactivatePnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '8', 'DeactivateNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '9', 'DeleteNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '10', 'DeleteNetworkCollectionBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '11', 'DeactivateServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '12', 'UnassignVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '13', 'UnassignVolumeGroupBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '14', 'UnassignVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '15', 'UnassignNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
+ ('Service-Macro-Delete', '16', 'UnassignServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Delete' and CLOUD_OWNER = 'DEFAULT')),
('Service-Macro-Upgrade', '1', 'ChangeModelServiceInstanceBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Service-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
('Network-Create', '1', 'AssignNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Network-Create' and CLOUD_OWNER = 'DEFAULT')),
('Network-Create', '2', 'CreateNetworkBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'Network-Create' and CLOUD_OWNER = 'DEFAULT')),
('VNF-Config-Update', '7', 'VNFHealthCheckActivity', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Config-Update' and CLOUD_OWNER = 'DEFAULT')),
('VNF-Config-Update', '8', 'VNFUnsetInMaintFlagActivity', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Config-Update' and CLOUD_OWNER = 'DEFAULT')),
('VNF-Config-Update', '9', 'VNFUnsetClosedLoopDisabledFlagActivity', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Config-Update' and CLOUD_OWNER = 'DEFAULT')),
-('VNF-Macro-Modify', '1', 'ControllerExecutionBB', 'vnf', 'config-assign', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Macro-Modify' and CLOUD_OWNER = 'k8scloudowner4')),
-('VNF-Macro-Modify', '2', 'ControllerExecutionBB', 'vnf', 'config-deploy', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Macro-Modify' and CLOUD_OWNER = 'k8scloudowner4')),
-('VNF-Macro-HealthCheck', '1', 'HealthCheckBB', 'vnf', 'status-check', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Macro-HealthCheck' and CLOUD_OWNER = 'DEFAULT'));
+('VNF-Macro-Modify', '1', 'ControllerExecutionBB', 'vnf', 'config-assign', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Macro-Modify' and CLOUD_OWNER = 'DEFAULT')),
+('VNF-Macro-Modify', '2', 'ControllerExecutionBB', 'vnf', 'config-deploy', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Macro-Modify' and CLOUD_OWNER = 'DEFAULT')),
+('VNF-Macro-HealthCheck', '1', 'HealthCheckBB', 'vnf', 'status-check', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Macro-HealthCheck' and CLOUD_OWNER = 'DEFAULT')),
+('VNF-Macro-HealthCheck', '2', 'HealthCheckBB', 'vnf', 'health-check', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'VNF-Macro-HealthCheck' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '1', 'AAICheckVnfInMaintBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '2', 'AAISetVnfInMaintBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '3', 'DeactivateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '4', 'DeactivateVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '5', 'ChangeModelVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '6', 'ControllerExecutionBB', 'vnf', 'config-upgrade-assign', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '7', 'UpgradeVfModuleBB', NULL , NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '8', 'ControllerExecutionBB', 'vnf', 'config-upgrade-deploy', 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '9', 'ActivateVfModuleBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '10', 'ChangeModelVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '11', 'ActivateVnfBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT')),
+('CNF-Macro-Upgrade', '12', 'AAIUnsetVnfInMaintBB', NULL, NULL, 1.0,(SELECT id from northbound_request_ref_lookup WHERE MACRO_ACTION = 'CNF-Macro-Upgrade' and CLOUD_OWNER = 'DEFAULT'));
INSERT INTO rainy_day_handler_macro (FLOW_NAME, SERVICE_TYPE, VNF_TYPE, ERROR_CODE, WORK_STEP, POLICY, SECONDARY_POLICY, REG_EX_ERROR_MESSAGE, SERVICE_ROLE)
VALUES
('VNFHealthCheckActivity','*','*','*','*','Manual','Abort','*', '*'),
('VNFConfigModifyActivity','*','*','*','*','Manual','Abort','*', '*'),
('VNFUnsetInMaintFlagActivity','*','*','*','*','Manual','Abort','*', '*'),
- ('VNFUnsetClosedLoopDisabledActivity','*','*','*','*','Manual','Abort','*', '*');
+ ('VNFUnsetClosedLoopDisabledActivity','*','*','*','*','Manual','Abort','*', '*'),
+ ('DeleteChildServiceBB', '*', '*', '*', '*', 'Rollback', 'Abort', '*', '*'),
+ ('CreateChildServiceBB', '*', '*', '*', '*', 'Rollback', 'Abort', '*', '*');
INSERT INTO building_block_detail (building_block_name, resource_type, target_action)
VALUES
('CreateVfModuleBB', 'VF_MODULE', 'CREATE'),
('CreateNetworkBB', 'NETWORK', 'CREATE'),
('CreateNetworkCollectionBB', 'NETWORK_COLLECTION', 'CREATE'),
+ ('CreateChildServiceBB', 'NO_VALIDATE', 'CUSTOM'),
('DeleteVolumeGroupBB', 'VOLUME_GROUP', 'DELETE'),
('DeleteVfModuleBB', 'VF_MODULE', 'DELETE'),
('DeleteNetworkBB', 'NETWORK', 'DELETE'),
('DeleteNetworkCollectionBB', 'NETWORK_COLLECTION', 'DELETE'),
+ ('DeleteChildServiceBB', 'NO_VALIDATE', 'CUSTOM'),
('ConfigurationScaleOutBB', 'NO_VALIDATE', 'CUSTOM'),
('GenericVnfHealthCheckBB', 'NO_VALIDATE', 'CUSTOM'),
('VNFConfigModifyActivity', 'NO_VALIDATE', 'CUSTOM'),
('ConfigAssignVnfBB', 'NO_VALIDATE', 'CUSTOM'),
('ConfigDeployVnfBB', 'NO_VALIDATE', 'CUSTOM'),
-('ControllerExecutionBB', 'NO_VALIDATE', 'CUSTOM');
+('ControllerExecutionBB', 'NO_VALIDATE', 'CUSTOM'),
+('StatusCheckBB', 'NO_VALIDATE', 'CUSTOM'),
+('HealthCheckBB', 'NO_VALIDATE', 'CUSTOM'),
+('UpgradeVfModuleBB', 'NO_VALIDATE', 'CUSTOM');
+
INSERT INTO orchestration_status_state_transition_directive (resource_type, orchestration_status, target_action, flow_directive)
VALUES
INSERT INTO service_recipe (ACTION, VERSION_STR, DESCRIPTION, ORCHESTRATION_URI, RECIPE_TIMEOUT, SERVICE_MODEL_UUID)
VALUES
('upgradeInstance', '1.0', 'Gr api recipe to upgrade service-instance', '/mso/async/services/WorkflowActionBB', 180, 'd88da85c-d9e8-4f73-b837-3a72a431622b');
+
+INSERT INTO building_block_rollback(BUILDING_BLOCK_NAME,ACTION,ROLLBACK_BUILDING_BLOCK_NAME,ROLLBACK_ACTION)
+VALUES
+('ActivateNetworkBB',NULL,'DeactivateNetworkBB',NULL),
+('ActivatePnfBB',NULL,'DeactivatePnfBB',NULL),
+('ActivateServiceInstanceBB',NULL,'DeactivateServiceInstanceBB',NULL),
+('ActivateVfModuleBB',NULL,'DeactivateVfModuleBB',NULL),
+('ActivateVnfBB',NULL,'DeactivateVnfBB',NULL),
+('ActivateVolumeGroupBB',NULL,'DeactivateVolumeGroupBB',NULL),
+('AssignNetworkBB',NULL,'UnassignNetworkBB',NULL),
+('AssignServiceInstanceBB',NULL,'UnassignServiceInstanceBB',NULL),
+('AssignVfModuleBB',NULL,'UnassignVfModuleBB',NULL),
+('AssignVnfBB',NULL,'UnassignVnfBB',NULL),
+('AssignVolumeGroupBB',NULL,'UnassignVolumeGroupBB',NULL),
+('CreateNetworkBB',NULL,'DeleteNetworkBB',NULL),
+('CreateNetworkCollectionBB',NULL,'DeleteNetworkCollectionBB',NULL),
+('CreateVfModuleBB',NULL,'DeleteVfModuleBB',NULL),
+('CreateVolumeGroupBB',NULL,'DeleteVolumeGroupBB',NULL),
+('VNFSetInMaintFlagActivity',NULL,'VNFUnsetInMaintFlagActivity',NULL),
+('VNFSetClosedLoopDisabledFlagActivity',NULL,'VNFUnsetClosedLoopDisabledFlagActivity',NULL),
+('VNFLockActivity',NULL,'VNFUnlockActivity',NULL),
+('VNFStopActivity',NULL,'VNFStartActivity',NULL),
+('VNFQuiesceTrafficActivity',NULL,'VNFResumeTrafficActivity',NULL),
+('EtsiVnfInstantiateBB',NULL,'EtsiVnfDeleteBB',NULL),
+('AddFabricConfigurationBB',NULL,'DeleteFabricConfigurationBB',NULL);
lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, workflowResourceIds.getInstanceGroupId());
lookupKeyMap.put(ResourceKey.VNF_INSTANCE_NAME, workflowResourceIds.getVnfInstanceName());
lookupKeyMap.put(ResourceKey.VF_MODULE_INSTANCE_NAME, workflowResourceIds.getVfModuleInstanceName());
+ lookupKeyMap.put(ResourceKey.CHILD_SERVICE_INSTANCE_ID, workflowResourceIds.getChildServiceInstanceId());
+ lookupKeyMap.put(ResourceKey.CHILD_SERVICE_INSTANCE_NAME, workflowResourceIds.getChildServiceInstanceName());
}
protected GeneralBuildingBlock getGBBALaCarteNonService(ExecuteBuildingBlock executeBB,
|| requestAction.equalsIgnoreCase("activateFabricConfiguration")
|| requestAction.equalsIgnoreCase("recreateInstance")
|| requestAction.equalsIgnoreCase("replaceInstance")
- || requestAction.equalsIgnoreCase("upgradeInstance")) {
+ || requestAction.equalsIgnoreCase("upgradeInstance") || requestAction.equalsIgnoreCase("healthCheck")) {
return getGBBMacroExistingService(executeBB, lookupKeyMap, bbName, requestAction,
requestDetails.getCloudConfiguration());
}
break;
}
}
+ } else if (bbName.equals("HealthCheckBB")
+ && (VNF).equalsIgnoreCase(executeBB.getBuildingBlock().getBpmnScope())) {
+ this.setisHelmforHealthCheckBB(service, serviceInstance, gBB);
}
if (executeBB.getWorkflowResourceIds() != null) {
parameter.setResourceId(executeBB.getWorkflowResourceIds().getNetworkCollectionId());
Vnfs vnfs = null;
VfModules vfModules = null;
Networks networks = null;
+
CloudConfiguration cloudConfiguration = requestDetails.getCloudConfiguration();
- CloudRegion cloudRegion = getCloudRegionFromMacroRequest(cloudConfiguration, resources);
- gBB.setCloudRegion(cloudRegion);
+ CloudRegion cloudRegion = setCloudConfiguration(gBB, cloudConfiguration);
+
BBInputSetupParameter parameter =
new BBInputSetupParameter.Builder().setRequestId(executeBB.getRequestId()).setService(service)
.setBbName(bbName).setServiceInstance(serviceInstance).setLookupKeyMap(lookupKeyMap).build();
vnfs = findVnfsByKey(key, resources);
}
+ // Vnf level cloud configuration takes precedence over service level cloud configuration.
+ if (vnfs.getCloudConfiguration() != null) {
+ setCloudConfiguration(gBB, vnfs.getCloudConfiguration());
+ }
+
String vnfId = lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID);
// This stores the vnf id in request db to be retrieved later when
// working on a vf module or volume group
vfModules = getVfModulesByKey(key, resources);
}
+ String vfModulesName = vfModules.getInstanceName();
+ String vfModulesModelCustId = vfModules.getModelInfo().getModelCustomizationId();
+ // Get the Vnf associated with vfModule
+ Optional<org.onap.so.serviceinstancebeans.Vnfs> parentVnf = resources.getVnfs().stream()
+ .filter(aVnf -> aVnf.getCloudConfiguration() != null)
+ .filter(aVnf -> aVnf.getVfModules().stream()
+ .anyMatch(aVfModules -> aVfModules.getInstanceName().equals(vfModulesName) && aVfModules
+ .getModelInfo().getModelCustomizationId().equals(vfModulesModelCustId)))
+ .findAny();
+
+ // Get the cloud configuration from this Vnf
+ if (parentVnf.isPresent()) {
+ cloudRegion = setCloudConfiguration(gBB, parentVnf.get().getCloudConfiguration());
+ }
+
lookupKeyMap.put(ResourceKey.GENERIC_VNF_ID, getVnfId(executeBB, lookupKeyMap));
parameter.setModelInfo(vfModules.getModelInfo());
networks = findNetworksByKey(key, resources);
String networkId = lookupKeyMap.get(ResourceKey.NETWORK_ID);
if (networks != null) {
+ // If service level cloud configuration is not provided then get it from networks.
+ if (cloudConfiguration == null) {
+ Optional<org.onap.so.serviceinstancebeans.Networks> netWithCloudConfig = resources.getNetworks()
+ .stream().filter(aNetwork -> aNetwork.getCloudConfiguration() != null).findAny();
+ if (netWithCloudConfig.isPresent()) {
+ setCloudConfiguration(gBB, netWithCloudConfig.get().getCloudConfiguration());
+ } else {
+ logger.debug("Could not find any cloud configuration for this request.");
+ }
+ }
parameter.setInstanceName(networks.getInstanceName());
parameter.setModelInfo(networks.getModelInfo());
parameter.setInstanceParams(networks.getInstanceParams());
return gBB;
}
+ /**
+ * setCloudConfiguration - set cloud info on a building block.
+ *
+ * @param gBB
+ * @param cloudConfiguration
+ * @return CloudRegion
+ * @throws Exception
+ */
+ private CloudRegion setCloudConfiguration(GeneralBuildingBlock gBB, CloudConfiguration cloudConfiguration)
+ throws Exception {
+ org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfiguration);
+ Tenant tenant = getTenant(cloudConfiguration, aaiCloudRegion);
+ gBB.setTenant(tenant);
+ CloudRegion cloudRegion = mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion);
+ gBB.setCloudRegion(cloudRegion);
+ return cloudRegion;
+ }
+
protected Networks findNetworksByKey(String key, Resources resources) {
for (Networks networks : resources.getNetworks()) {
if (networks.getModelInfo().getModelCustomizationId().equalsIgnoreCase(key)) {
throw new ResourceNotFoundException("Could not find vnf with key: " + key + " in userparams");
}
- protected CloudRegion getCloudRegionFromMacroRequest(CloudConfiguration cloudConfiguration, Resources resources) {
- if (cloudConfiguration == null) {
- for (Vnfs vnfs : resources.getVnfs()) {
- if (cloudConfiguration == null) {
- cloudConfiguration = vnfs.getCloudConfiguration();
- } else {
- break;
- }
- for (VfModules vfModules : vnfs.getVfModules()) {
- if (cloudConfiguration == null) {
- cloudConfiguration = vfModules.getCloudConfiguration();
- } else {
- break;
- }
- }
- }
- for (Networks networks : resources.getNetworks()) {
- if (cloudConfiguration == null) {
- cloudConfiguration = networks.getCloudConfiguration();
- } else {
- break;
- }
- }
- }
- if (cloudConfiguration != null) {
- org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = bbInputSetupUtils.getCloudRegion(cloudConfiguration);
- return mapperLayer.mapCloudRegion(cloudConfiguration, aaiCloudRegion);
- } else {
- logger.debug("Could not find any cloud configuration for this request.");
- return null;
- }
- }
-
protected String getVnfId(ExecuteBuildingBlock executeBB, Map<ResourceKey, String> lookupKeyMap) {
String vnfId = lookupKeyMap.get(ResourceKey.GENERIC_VNF_ID);
if (vnfId == null) {
return collection;
}
+ private void setisHelmforHealthCheckBB(Service service, ServiceInstance serviceInstance, GeneralBuildingBlock gBB) {
+ for (GenericVnf vnf : serviceInstance.getVnfs()) {
+ for (VfModule vfModule : vnf.getVfModules()) {
+ String vnfModelCustomizationUUID =
+ this.bbInputSetupUtils.getAAIGenericVnf(vnf.getVnfId()).getModelCustomizationId();
+ ModelInfo vnfModelInfo = new ModelInfo();
+ vnfModelInfo.setModelCustomizationUuid(vnfModelCustomizationUUID);
+ this.mapCatalogVnf(vnf, vnfModelInfo, service);
+ String vfModuleCustomizationUUID = this.bbInputSetupUtils
+ .getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId()).getModelCustomizationId();
+ ModelInfo vfModuleModelInfo = new ModelInfo();
+ vfModuleModelInfo.setModelCustomizationId(vfModuleCustomizationUUID);
+ this.mapCatalogVfModule(vfModule, vfModuleModelInfo, service, vnfModelCustomizationUUID);
+ if (vfModule.getModelInfoVfModule() != null && vfModule.getModelInfoVfModule().getModelName() != null
+ && vfModule.getModelInfoVfModule().getModelName().contains("helm")) {
+ gBB.getRequestContext().setIsHelm(true);
+ break;
+ }
+ }
+ }
+ }
+
protected void mapL3Networks(List<AAIResourceUri> list, List<L3Network> l3Networks) {
for (AAIResourceUri aaiResourceUri : list) {
l3Networks.add(this.mapL3Network(aaiResourceUri));
String instanceGroupId = "instancegroupId";
String vnfInstanceName = "vnfInstanceName";
String vfModuleInstanceName = "vfModuleInstanceName";
+ String childServiceInstanceId = "childServiceInstanceId";
+ String childServiceInstanceName = "childServiceInstanceName";
expected.put(ResourceKey.SERVICE_INSTANCE_ID, serviceInstanceId);
expected.put(ResourceKey.NETWORK_ID, networkId);
expected.put(ResourceKey.INSTANCE_GROUP_ID, instanceGroupId);
expected.put(ResourceKey.VNF_INSTANCE_NAME, vnfInstanceName);
expected.put(ResourceKey.VF_MODULE_INSTANCE_NAME, vfModuleInstanceName);
+ expected.put(ResourceKey.CHILD_SERVICE_INSTANCE_ID, childServiceInstanceId);
+ expected.put(ResourceKey.CHILD_SERVICE_INSTANCE_NAME, childServiceInstanceName);
WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
workflowResourceIds.setServiceInstanceId(serviceInstanceId);
workflowResourceIds.setInstanceGroupId(instanceGroupId);
workflowResourceIds.setVnfInstanceName(vnfInstanceName);
workflowResourceIds.setVfModuleInstanceName(vfModuleInstanceName);
+ workflowResourceIds.setChildServiceInstanceId(childServiceInstanceId);
+ workflowResourceIds.setChildServiceInstanceName(childServiceInstanceName);
SPY_bbInputSetup.populateLookupKeyMapWithIds(workflowResourceIds, actual);
assertThat(actual, sameBeanAs(expected));
}
- @Test
- public void testgetGBBMacroCloudConfiguration() throws Exception {
- org.onap.so.serviceinstancebeans.Service serviceMacro = mapper.readValue(
- new File(RESOURCE_PATH + "ServiceMacroVfModules.json"), org.onap.so.serviceinstancebeans.Service.class);
- CloudConfiguration cloudConfig = null;
- org.onap.aai.domain.yang.CloudRegion aaiCloudRegion = new org.onap.aai.domain.yang.CloudRegion();
- aaiCloudRegion.setCloudOwner("test-owner-name");
- Resources resources = serviceMacro.getResources();
- doReturn(aaiCloudRegion).when(SPY_bbInputSetupUtils).getCloudRegion(any(CloudConfiguration.class));
- CloudRegion expected = new CloudRegion();
- expected.setLcpCloudRegionId("mdt1");
- expected.setCloudOwner("test-owner-name");
- expected.setTenantId("88a6ca3ee0394ade9403f075db23167e");
-
- CloudRegion actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
- assertThat(actual, sameBeanAs(expected));
-
- serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroVnfs.json"),
- org.onap.so.serviceinstancebeans.Service.class);
- resources = serviceMacro.getResources();
-
- actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
- assertThat(actual, sameBeanAs(expected));
-
- serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNetworks.json"),
- org.onap.so.serviceinstancebeans.Service.class);
- resources = serviceMacro.getResources();
-
- actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
- assertThat(actual, sameBeanAs(expected));
-
- serviceMacro = mapper.readValue(new File(RESOURCE_PATH + "ServiceMacroNoCloudConfig.json"),
- org.onap.so.serviceinstancebeans.Service.class);
- resources = serviceMacro.getResources();
-
- actual = SPY_bbInputSetup.getCloudRegionFromMacroRequest(cloudConfig, resources);
- assertNull(actual);
- }
-
@Test
public void testgetGBBMacroWithEmptyUserParams() throws Exception {
String resourceId = "123";
private static final String VFMODULE = "VfModule";
private static final String NETWORK = "Network";
private static final String HEALTH_CHECK = "HealthCheckBB";
+ private static final String UPGRADE_CNF = "UpgradeVfModuleBB";
protected List<ExecuteBuildingBlock> buildExecuteBuildingBlockList(List<OrchestrationFlow> orchFlows,
List<Resource> originalResourceList, String requestId, String apiVersion, String resourceId,
String requestId, String apiVersion, String resourceId, String requestAction, String vnfType,
WorkflowResourceIds workflowResourceIds, RequestDetails requestDetails, boolean replaceVnf) {
List<ExecuteBuildingBlock> flowsToExecute = new ArrayList<>();
- if (orchFlow.getFlowName().contains(SERVICE) || (orchFlow.getFlowName().contains(CONTROLLER)
+ if (orchFlow.getFlowName().contains(CHILD_SERVICE)) {
+ if (WorkflowType.SERVICE.equals(resource.getResourceType()) && resource.hasParent()) {
+ addBuildingBlockToExecuteBBList(flowsToExecute, resource, WorkflowType.SERVICE, orchFlow, requestId,
+ apiVersion, resourceId, requestAction, vnfType, workflowResourceIds, requestDetails, false,
+ false);
+ }
+ } else if (orchFlow.getFlowName().contains(SERVICE) || (orchFlow.getFlowName().contains(CONTROLLER)
&& (SERVICE).equalsIgnoreCase(orchFlow.getBpmnScope()))) {
if (!replaceVnf) {
workflowResourceIds.setServiceInstanceId(resourceId);
}
- addBuildingBlockToExecuteBBList(flowsToExecute, resource, WorkflowType.SERVICE, orchFlow, requestId,
- apiVersion, resourceId, requestAction, vnfType, workflowResourceIds, requestDetails, false, false);
+ if (!resource.hasParent()) {
+ addBuildingBlockToExecuteBBList(flowsToExecute, resource, WorkflowType.SERVICE, orchFlow, requestId,
+ apiVersion, resourceId, requestAction, vnfType, workflowResourceIds, requestDetails, false,
+ false);
+ }
} else if (orchFlow.getFlowName().contains(VNF)
|| (orchFlow.getFlowName().contains(CONTROLLER) && (VNF).equalsIgnoreCase(orchFlow.getBpmnScope()))) {
addBuildingBlockToExecuteBBList(flowsToExecute, resource, WorkflowType.VNF, orchFlow, requestId, apiVersion,
&& (VNF).equalsIgnoreCase(orchFlow.getBpmnScope())) {
addBuildingBlockToExecuteBBList(flowsToExecute, resource, WorkflowType.VNF, orchFlow, requestId, apiVersion,
resourceId, requestAction, vnfType, workflowResourceIds, requestDetails, false, false);
+ } else if ((orchFlow.getFlowName().equalsIgnoreCase(UPGRADE_CNF))
+ && (VNF).equalsIgnoreCase(orchFlow.getBpmnScope())) {
+ addBuildingBlockToExecuteBBList(flowsToExecute, resource, WorkflowType.VNF, orchFlow, requestId, apiVersion,
+ resourceId, requestAction, vnfType, workflowResourceIds, requestDetails, false, false);
} else if (orchFlow.getFlowName().contains(PNF)
|| (orchFlow.getFlowName().contains(CONTROLLER) && (PNF).equalsIgnoreCase(orchFlow.getBpmnScope()))) {
addBuildingBlockToExecuteBBList(flowsToExecute, resource, WorkflowType.PNF, orchFlow, requestId, apiVersion,
private String cvnfModuleCustomizationId;
private String instanceName;
private String modelInvariantId;
+ private String modelVersionId;
+ private String modelCustomizationId;
private int processingPriority;
private Resource parent;
private List<Resource> children;
this.modelInvariantId = modelInvariantId;
}
+ public String getModelVersionId() {
+ return modelVersionId;
+ }
+
+ public void setModelVersionId(String modelVersionId) {
+ this.modelVersionId = modelVersionId;
+ }
+
+ public String getModelCustomizationId() {
+ return modelCustomizationId;
+ }
+
+ public void setModelCustomizationId(String modelCustomizationId) {
+ this.modelCustomizationId = modelCustomizationId;
+ }
public int getProcessingPriority() {
return processingPriority == 0 ? (isBaseVfModule() ? Integer.MIN_VALUE + 1 : 0) : processingPriority;
public List<Resource> getChildren() {
return this.children;
}
+
+ public Boolean hasParent() {
+ return parent != null;
+ }
}
package org.onap.so.bpmn.infrastructure.workflow.tasks;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.IS_CHILD_PROCESS;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.PARENT_CORRELATION_ID;
import static org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowActionConstants.ASSIGN_INSTANCE;
import static org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowActionConstants.CONTROLLER;
import static org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowActionConstants.CREATE_INSTANCE;
import static org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowActionConstants.UPDATE_INSTANCE;
import static org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowActionConstants.HEALTH_CHECK;
import static org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowActionConstants.WORKFLOW_ACTION_ERROR_MESSAGE;
+import static org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowActionConstants.UPGRADE_CNF;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
+ import org.onap.so.serviceinstancebeans.InstanceDirection;
@Component
public class WorkflowAction {
} else if (resourceType == WorkflowType.VNF && HEALTH_CHECK.equalsIgnoreCase(requestAction)) {
vnfEBBLoader.customTraverseAAIVnf(execution, resourceList, workflowResourceIds.getServiceInstanceId(),
workflowResourceIds.getVnfId(), aaiResourceIds);
+ } else if (resourceType == WorkflowType.VNF && UPGRADE_CNF.equalsIgnoreCase(requestAction)) {
+ vnfEBBLoader.customTraverseAAIVnf(execution, resourceList, workflowResourceIds.getServiceInstanceId(),
+ workflowResourceIds.getVnfId(), aaiResourceIds);
} else {
buildAndThrowException(execution, "Current Macro Request is not supported");
}
log += ", Action: " + block.getBuildingBlock().getBpmnAction();
logger.info(log);
}
+
+ RelatedInstanceList[] instanceList = sIRequest.getRequestDetails().getRelatedInstanceList();
+ execution.setVariable(IS_CHILD_PROCESS, Boolean.FALSE);
+ if (instanceList != null) {
+ for (RelatedInstanceList relatedInstanceList : instanceList) {
+ RelatedInstance relatedInstance = relatedInstanceList.getRelatedInstance();
+ if (InstanceDirection.source.equals(relatedInstance.getInstanceDirection())) {
+ execution.setVariable(IS_CHILD_PROCESS, Boolean.TRUE);
+ execution.setVariable(PARENT_CORRELATION_ID, requestDetails.getRequestInfo().getCorrelator());
+ }
+ }
+ }
+
// By default, enable homing at VNF level for CREATE_INSTANCE and ASSIGNINSTANCE
if (resourceType == WorkflowType.SERVICE
&& (requestAction.equals(CREATE_INSTANCE) || requestAction.equals(ASSIGN_INSTANCE))
logger.debug("{}, {}", pair.getValue0(), pair.getValue1());
}
Map<Resource, String> resourceInstanceIds = new HashMap<>();
- Arrays.stream(WorkflowType.values()).filter(type -> !type.equals(WorkflowType.SERVICE))
- .forEach(type -> resourceList.stream().filter(resource -> type.equals(resource.getResourceType()))
- .forEach(resource -> updateWorkflowResourceIds(flowsToExecute, type, resource,
- retrieveAAIResourceId(aaiResourceIds, type), null, serviceInstanceId,
- resourceInstanceIds)));
+ Arrays.stream(WorkflowType.values()).forEach(type -> resourceList.stream()
+ .filter(resource -> type.equals(resource.getResourceType())
+ && !(WorkflowType.SERVICE.equals(type) && !resource.hasParent()))
+ .forEach(resource -> updateWorkflowResourceIds(flowsToExecute, type, resource,
+ retrieveAAIResourceId(aaiResourceIds, type), null, serviceInstanceId, resourceInstanceIds)));
}
private String retrieveAAIResourceId(List<Pair<WorkflowType, String>> aaiResourceIds, WorkflowType resource) {
private void generateResourceIds(List<ExecuteBuildingBlock> flowsToExecute, List<Resource> resourceList,
String serviceInstanceId) {
Map<Resource, String> resourceInstanceIds = new HashMap<>();
- Arrays.stream(WorkflowType.values()).filter(type -> !type.equals(WorkflowType.SERVICE))
- .forEach(type -> resourceList.stream().filter(resource -> type.equals(resource.getResourceType()))
+ Arrays.stream(WorkflowType.values())
+ .forEach(type -> resourceList.stream()
+ .filter(resource -> resource.hasParent() && type.equals(resource.getResourceType()))
.forEach(resource -> updateWorkflowResourceIds(flowsToExecute, type, resource, null,
resource.getVirtualLinkKey(), serviceInstanceId, resourceInstanceIds)));
}
WorkflowResourceIds workflowResourceIds = new WorkflowResourceIds();
workflowResourceIds.setServiceInstanceId(serviceInstanceId);
Resource parent = resource.getParent();
- if (parent != null && resourceInstanceIds.containsKey(parent)) {
+ if (resource.hasParent() && resourceInstanceIds.containsKey(parent)) {
WorkflowResourceIdsUtils.setResourceIdByWorkflowType(workflowResourceIds, parent.getResourceType(),
resourceInstanceIds.get(parent));
}
- WorkflowResourceIdsUtils.setInstanceNameByWorkflowType(workflowResourceIds, resourceType,
- resource.getInstanceName());
- WorkflowResourceIdsUtils.setResourceIdByWorkflowType(workflowResourceIds, resourceType, resourceId);
+ if (resource.hasParent() && WorkflowType.SERVICE.equals(resourceType)
+ && WorkflowType.SERVICE.equals(parent.getResourceType())) {
+ String childServiceInstanceId = resource.isGenerated() ? resourceId : resource.getResourceId();
+ workflowResourceIds.setChildServiceInstanceId(childServiceInstanceId);
+ workflowResourceIds.setChildServiceInstanceName(resource.getInstanceName());
+ } else {
+ WorkflowResourceIdsUtils.setInstanceNameByWorkflowType(workflowResourceIds, resourceType,
+ resource.getInstanceName());
+ WorkflowResourceIdsUtils.setResourceIdByWorkflowType(workflowResourceIds, resourceType, resourceId);
+ }
ebb.setWorkflowResourceIds(workflowResourceIds);
assignedFlows.add(flowName + action);
}
private boolean isFlowAssignable(Set<String> assignedFlows, ExecuteBuildingBlock ebb, WorkflowType resourceType,
String assignedFlowName) {
- String id = WorkflowResourceIdsUtils.getResourceIdByWorkflowType(ebb.getWorkflowResourceIds(), resourceType);
+ String id = WorkflowType.SERVICE.equals(resourceType)
+ ? StringUtils.defaultString(ebb.getWorkflowResourceIds().getChildServiceInstanceId())
+ : WorkflowResourceIdsUtils.getResourceIdByWorkflowType(ebb.getWorkflowResourceIds(), resourceType);
return !assignedFlows.contains(assignedFlowName) && id.isEmpty();
}
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Collectors;
import org.onap.so.bpmn.servicedecomposition.entities.WorkflowResourceIds;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
+import org.onap.so.db.catalog.beans.BuildingBlockRollback;
import org.onap.so.db.catalog.beans.CvnfcConfigurationCustomization;
import org.onap.so.db.catalog.client.CatalogDbClient;
import org.onap.so.db.request.beans.InfraActiveRequests;
import org.springframework.stereotype.Component;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.CHILD_SVC_REQ_ERROR;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.CHILD_SVC_REQ_MESSAGE_NAME;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.CHILD_SVC_REQ_STATUS;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.IS_CHILD_PROCESS;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.CHILD_SVC_REQ_CORRELATION_ID;
+ import static org.onap.so.bpmn.infrastructure.service.composition.ServiceCompositionConstants.PARENT_CORRELATION_ID;
@Component
public class WorkflowActionBBTasks {
private static final String VFMODULE = "VfModule";
private static final String CONFIGURATION_PATTERN = "(Ad|De)(.*)FabricConfiguration(.*)";
protected String maxRetries = "mso.rainyDay.maxRetries";
+ private static final String ROLLBACK_TO_ASSIGNED = "RollbackToAssigned";
+ private static final String UNASSIGN = "Unassign";
+ private static final String DELETE = "Delete";
private static final Logger logger = LoggerFactory.getLogger(WorkflowActionBBTasks.class);
@Autowired
final boolean aLaCarte = (boolean) execution.getVariable(BBConstants.G_ALACARTE);
final String resourceName = (String) execution.getVariable("resourceName");
String statusMessage = (String) execution.getVariable("StatusMessage");
+
+ if (Boolean.TRUE.equals(execution.getVariable(IS_CHILD_PROCESS))) {
+ String parentCorrelationId = (String) execution.getVariable(PARENT_CORRELATION_ID);
+ logger.info("Child service request completed. Sending message to parent process with correlationId: "
+ + parentCorrelationId);
+ execution.getProcessEngineServices().getRuntimeService()
+ .createMessageCorrelation(CHILD_SVC_REQ_MESSAGE_NAME)
+ .setVariable(CHILD_SVC_REQ_STATUS, "COMPLETED").setVariable(CHILD_SVC_REQ_ERROR, "")
+ .processInstanceVariableEquals(CHILD_SVC_REQ_CORRELATION_ID, parentCorrelationId).correlate();
+ }
+
String macroAction;
if (statusMessage == null) {
if (aLaCarte) {
public void rollbackExecutionPath(DelegateExecution execution) {
final String action = (String) execution.getVariable(BBConstants.G_ACTION);
final String resourceName = (String) execution.getVariable("resourceName");
- if (!(boolean) execution.getVariable("isRollback")) {
- List<ExecuteBuildingBlock> flowsToExecute =
- (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
+ if ((boolean) execution.getVariable("isRollback")) {
+ workflowAction.buildAndThrowException(execution,
+ "Rollback has already been called. Cannot rollback a request that is currently in the rollback state.");
+ }
+ List<ExecuteBuildingBlock> flowsToExecute =
+ (List<ExecuteBuildingBlock>) execution.getVariable("flowsToExecute");
- List<ExecuteBuildingBlock> flowsToExecuteChangeBBs = flowsToExecute.stream()
- .filter(buildingBlock -> buildingBlock.getBuildingBlock().getBpmnFlowName().startsWith("Change"))
- .collect(Collectors.toList());
+ List<ExecuteBuildingBlock> flowsToExecuteChangeBBs = flowsToExecute.stream()
+ .filter(buildingBlock -> buildingBlock.getBuildingBlock().getBpmnFlowName().startsWith("Change"))
+ .collect(Collectors.toList());
+ List<ExecuteBuildingBlock> rollbackFlows = new ArrayList<>();
+ int currentSequence = (int) execution.getVariable(BBConstants.G_CURRENT_SEQUENCE);
+ int listSize = flowsToExecute.size();
+ List<BuildingBlockRollback> bbRollbackList = catalogDbClient.getBuildingBlockRollbackEntries();
- List<ExecuteBuildingBlock> rollbackFlows = new ArrayList<>();
- int currentSequence = (int) execution.getVariable(BBConstants.G_CURRENT_SEQUENCE);
- int listSize = flowsToExecute.size();
+ for (int i = listSize - 1; i >= 0; i--) {
+ if (i > currentSequence - 1) {
+ flowsToExecute.remove(i);
+ } else {
+ // filter bbRollbackList for bbrollback, and check if action exists, then filter by action
+ BuildingBlock bb = flowsToExecute.get(i).getBuildingBlock();
+ String flowName = bb.getBpmnFlowName();
+ String scope = Objects.toString(bb.getBpmnScope(), "");
+ String bbAction = Objects.toString(bb.getBpmnAction(), "");
+ ExecuteBuildingBlock currentBB = (ExecuteBuildingBlock) execution.getVariable("buildingBlock");
- for (int i = listSize - 1; i >= 0; i--) {
- if (i > currentSequence - 1) {
- flowsToExecute.remove(i);
- } else {
- String flowName = flowsToExecute.get(i).getBuildingBlock().getBpmnFlowName();
- if (flowName.startsWith("Assign")) {
- flowName = flowName.replaceFirst("Assign", "Unassign");
- } else if (flowName.startsWith("Create")) {
- flowName = flowName.replaceFirst("Create", "Delete");
- } else if (flowName.startsWith("Activate")) {
- flowName = flowName.replaceFirst("Activate", "Deactivate");
- } else if (flowName.startsWith("Add")) {
- flowName = flowName.replaceFirst("Add", "Delete");
- } else if (flowName.startsWith("VNF")) {
- if (flowName.startsWith("VNFSet")) {
- flowName = flowName.replaceFirst("VNFSet", "VNFUnset");
- } else if (flowName.startsWith("VNFLock")) {
- flowName = flowName.replaceFirst("VNFLock", "VNFUnlock");
- } else if (flowName.startsWith("VNFStop")) {
- flowName = flowName.replaceFirst("VNFStop", "VNFStart");
- } else if (flowName.startsWith("VNFQuiesce")) {
- flowName = flowName.replaceFirst("VNFQuiesce", "VNFResume");
- } else {
- continue;
- }
- } else {
- continue;
+ List<BuildingBlockRollback> filteredList = bbRollbackList.stream()
+ .filter(k -> k.getBuildingBlockName().equals((flowName))).collect(Collectors.toList());
+ Optional<BuildingBlockRollback> matchedBBRollback =
+ "".equals(bbAction) ? filteredList.stream().findFirst()
+ : filteredList.stream().filter(k -> bbAction.equals(k.getAction())).findFirst();
+ if (matchedBBRollback.isPresent()) {
+ final BuildingBlockRollback buildingBlockRollbackItem = matchedBBRollback.get();
+ String rollbackFlow = buildingBlockRollbackItem.getRollbackBuildingBlockName();
+ flowsToExecute.get(i).getBuildingBlock().setBpmnFlowName(rollbackFlow);
+ // if we have an action, search the filtered list for the bbrollback that matches the given action.
+ if (null != buildingBlockRollbackItem.getRollbackAction()) {
+ logger.info("Setting rollback_action {} for BB: {} action: {}",
+ buildingBlockRollbackItem.getRollbackAction(),
+ buildingBlockRollbackItem.getBuildingBlockName(),
+ buildingBlockRollbackItem.getAction());
+ flowsToExecute.get(i).getBuildingBlock()
+ .setBpmnAction(buildingBlockRollbackItem.getRollbackAction());
}
- flowsToExecute.get(i).getBuildingBlock().setBpmnFlowName(flowName);
rollbackFlows.add(flowsToExecute.get(i));
}
}
+ }
- String handlingCode = (String) execution.getVariable(HANDLINGCODE);
- List<ExecuteBuildingBlock> rollbackFlowsFiltered = new ArrayList<>(rollbackFlows);
- if ("RollbackToAssigned".equals(handlingCode) || ROLLBACKTOCREATED.equals(handlingCode)
- || ROLLBACKTOCREATEDNOCONFIGURATION.equals(handlingCode)) {
- for (ExecuteBuildingBlock rollbackFlow : rollbackFlows) {
- if (rollbackFlow.getBuildingBlock().getBpmnFlowName().contains("Unassign")
- && !rollbackFlow.getBuildingBlock().getBpmnFlowName().contains("FabricConfiguration")) {
- rollbackFlowsFiltered.remove(rollbackFlow);
- } else if (rollbackFlow.getBuildingBlock().getBpmnFlowName().contains("Delete")
- && ((!rollbackFlow.getBuildingBlock().getBpmnFlowName().contains("FabricConfiguration")
- && (ROLLBACKTOCREATED.equals(handlingCode)
- || ROLLBACKTOCREATEDNOCONFIGURATION.equals(handlingCode)))
- || (rollbackFlow.getBuildingBlock().getBpmnFlowName()
- .contains("FabricConfiguration")
- && ROLLBACKTOCREATEDNOCONFIGURATION.equals(handlingCode)))) {
- rollbackFlowsFiltered.remove(rollbackFlow);
- }
+ String handlingCode = (String) execution.getVariable(HANDLINGCODE);
+ List<ExecuteBuildingBlock> rollbackFlowsFiltered = new ArrayList<>(rollbackFlows);
+ if (ROLLBACK_TO_ASSIGNED.equals(handlingCode) || ROLLBACKTOCREATED.equals(handlingCode)
+ || ROLLBACKTOCREATEDNOCONFIGURATION.equals(handlingCode)) {
+ for (ExecuteBuildingBlock rollbackFlow : rollbackFlows) {
+ if (rollbackFlow.getBuildingBlock().getBpmnFlowName().contains(UNASSIGN)
+ && !rollbackFlow.getBuildingBlock().getBpmnFlowName().contains(FABRIC_CONFIGURATION)) {
+ rollbackFlowsFiltered.remove(rollbackFlow);
+ } else if (rollbackFlow.getBuildingBlock().getBpmnFlowName().contains(DELETE)
+ && ((!rollbackFlow.getBuildingBlock().getBpmnFlowName().contains(FABRIC_CONFIGURATION)
+ && (ROLLBACKTOCREATED.equals(handlingCode)
+ || ROLLBACKTOCREATEDNOCONFIGURATION.equals(handlingCode)))
+ || (rollbackFlow.getBuildingBlock().getBpmnFlowName().contains(FABRIC_CONFIGURATION)
+ && ROLLBACKTOCREATEDNOCONFIGURATION.equals(handlingCode)))) {
+ rollbackFlowsFiltered.remove(rollbackFlow);
}
}
+ }
- List<ExecuteBuildingBlock> rollbackFlowsFilteredNonChangeBBs = new ArrayList<>();
- if (action.equals(REPLACEINSTANCE) && resourceName.equals(VFMODULE)) {
- for (ExecuteBuildingBlock executeBuildingBlock : rollbackFlowsFiltered) {
- if (!executeBuildingBlock.getBuildingBlock().getBpmnFlowName().startsWith("Change")) {
- rollbackFlowsFilteredNonChangeBBs.add(executeBuildingBlock);
- }
+ List<ExecuteBuildingBlock> rollbackFlowsFilteredNonChangeBBs = new ArrayList<>();
+ if (action.equals(REPLACEINSTANCE) && resourceName.equals(VFMODULE)) {
+ for (ExecuteBuildingBlock executeBuildingBlock : rollbackFlowsFiltered) {
+ if (!executeBuildingBlock.getBuildingBlock().getBpmnFlowName().startsWith("Change")) {
+ rollbackFlowsFilteredNonChangeBBs.add(executeBuildingBlock);
}
- rollbackFlowsFiltered.clear();
- rollbackFlowsFiltered.addAll(flowsToExecuteChangeBBs);
- rollbackFlowsFiltered.addAll(rollbackFlowsFilteredNonChangeBBs);
}
-
- workflowActionBBFailure.updateRequestErrorStatusMessage(execution);
- execution.setVariable("isRollbackNeeded", !rollbackFlows.isEmpty());
- execution.setVariable("flowsToExecute", rollbackFlowsFiltered);
- execution.setVariable(HANDLINGCODE, "PreformingRollback");
- execution.setVariable("isRollback", true);
- execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, 0);
- execution.setVariable(RETRY_COUNT, 0);
- } else {
- workflowAction.buildAndThrowException(execution,
- "Rollback has already been called. Cannot rollback a request that is currently in the rollback state.");
+ rollbackFlowsFiltered.clear();
+ rollbackFlowsFiltered.addAll(flowsToExecuteChangeBBs);
+ rollbackFlowsFiltered.addAll(rollbackFlowsFilteredNonChangeBBs);
}
+
+ logger.info("List of BuildingBlocks to execute for rollback");
+ rollbackFlowsFiltered.forEach(item -> {
+ logger.info(item.getBuildingBlock().getBpmnFlowName());
+ });
+
+ workflowActionBBFailure.updateRequestErrorStatusMessage(execution);
+ execution.setVariable("isRollbackNeeded", !rollbackFlows.isEmpty());
+ execution.setVariable("flowsToExecute", rollbackFlowsFiltered);
+ execution.setVariable(HANDLINGCODE, "PreformingRollback");
+ execution.setVariable("isRollback", true);
+ execution.setVariable(BBConstants.G_CURRENT_SEQUENCE, 0);
+ execution.setVariable(RETRY_COUNT, 0);
}
protected void updateInstanceId(DelegateExecution execution) {
public static final String ACTIVATE_INSTANCE = "activateInstance";
public static final String ASSIGN_INSTANCE = "assignInstance";
+ public static final String CHILD_SERVICE = "ChildService";
public static final String CONFIGURATION = "Configuration";
public static final String CONTROLLER = "Controller";
public static final String CREATE_INSTANCE = "createInstance";
public static final String VOLUMEGROUP = "VolumeGroup";
public static final String HEALTH_CHECK = "healthCheck";
public static final String WORKFLOW_ACTION_ERROR_MESSAGE = "WorkflowActionErrorMessage";
+ public static final String UPGRADE_CNF = "upgradeCnf";
}
import com.fasterxml.jackson.core.JsonProcessingException;
import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.javatuples.Pair;
+ import org.onap.aai.domain.yang.ComposedResource;
+ import org.onap.aai.domain.yang.ComposedResources;
import org.onap.aai.domain.yang.GenericVnf;
import org.onap.aai.domain.yang.Relationship;
+ import org.onap.aai.domain.yang.RelationshipData;
+ import org.onap.aai.domain.yang.RelationshipList;
import org.onap.aai.domain.yang.ServiceInstance;
import org.onap.aai.domain.yang.VpnBinding;
import org.onap.aaiclient.client.aai.AAICommonObjectMapperProvider;
import org.onap.so.bpmn.infrastructure.workflow.tasks.WorkflowType;
import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
import org.onap.so.bpmn.servicedecomposition.bbobjects.VfModule;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
+import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoPnf;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetup;
import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
import org.onap.so.client.exception.ExceptionBuilder;
resourceList = userParamsServiceTraversal.getResourceListFromUserParams(execution, userParams,
serviceInstanceId, requestAction);
}
- if (!foundRelated(resourceList)) {
+ if (!isComposedService(resourceList) && !foundRelated(resourceList)) {
traverseCatalogDbService(execution, sIRequest, resourceList, aaiResourceIds);
}
} else if ((ACTIVATE_INSTANCE.equalsIgnoreCase(requestAction)
|| containsWorkflowType(resourceList, WorkflowType.NETWORKCOLLECTION));
}
+ public boolean isComposedService(List<Resource> resourceList) {
+ return resourceList.stream().anyMatch(s -> s.getResourceType() == WorkflowType.SERVICE && s.hasParent());
+ }
+
public void traverseAAIService(DelegateExecution execution, List<Resource> resourceList, String resourceId,
List<Pair<WorkflowType, String>> aaiResourceIds) {
try {
var serviceResource =
new Resource(WorkflowType.SERVICE, serviceInstanceMSO.getServiceInstanceId(), false, null);
serviceResource.setModelInvariantId(serviceInstanceAAI.getModelInvariantId());
+ serviceResource.setModelVersionId(serviceInstanceAAI.getModelVersionId());
resourceList.add(serviceResource);
+ traverseServiceInstanceChildService(resourceList, serviceResource, serviceInstanceAAI);
traverseServiceInstanceMSOVnfs(resourceList, serviceResource, aaiResourceIds, serviceInstanceMSO);
traverseServiceInstanceMSOPnfs(resourceList, serviceResource, aaiResourceIds, serviceInstanceMSO);
if (serviceInstanceMSO.getNetworks() != null) {
for (org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network network : serviceInstanceMSO
.getNetworks()) {
aaiResourceIds.add(new Pair<>(WorkflowType.NETWORK, network.getNetworkId()));
- resourceList
- .add(new Resource(WorkflowType.NETWORK, network.getNetworkId(), false, serviceResource));
+ Resource networkResource =
+ new Resource(WorkflowType.NETWORK, network.getNetworkId(), false, serviceResource);
+ ModelInfoNetwork modelInfoNetwork = network.getModelInfoNetwork();
+ if (modelInfoNetwork != null) {
+ networkResource.setModelCustomizationId(modelInfoNetwork.getModelCustomizationUUID());
+ networkResource.setModelVersionId(modelInfoNetwork.getModelUUID());
+ networkResource.setModelCustomizationId(modelInfoNetwork.getModelCustomizationUUID());
+ }
+ resourceList.add(networkResource);
}
}
if (serviceInstanceMSO.getCollection() != null) {
GenericVnf genericVnf = bbInputSetupUtils.getAAIGenericVnf(vnf.getVnfId());
Resource vnfResource = new Resource(WorkflowType.VNF, vnf.getVnfId(), false, serviceResource);
vnfResource.setVnfCustomizationId(genericVnf.getModelCustomizationId());
+ vnfResource.setModelCustomizationId(genericVnf.getModelCustomizationId());
+ vnfResource.setModelVersionId(genericVnf.getModelVersionId());
resourceList.add(vnfResource);
traverseVnfModules(resourceList, vnfResource, aaiResourceIds, vnf);
if (vnf.getVolumeGroups() != null) {
}
for (org.onap.so.bpmn.servicedecomposition.bbobjects.Pnf pnf : serviceInstanceMSO.getPnfs()) {
aaiResourceIds.add(new Pair<>(WorkflowType.PNF, pnf.getPnfId()));
- resourceList.add(new Resource(WorkflowType.PNF, pnf.getPnfId(), false, serviceResource));
+ Resource resource = new Resource(WorkflowType.PNF, pnf.getPnfId(), false, serviceResource);
+ ModelInfoPnf modelInfo = pnf.getModelInfoPnf();
+ if (modelInfo != null) {
+ resource.setModelVersionId(modelInfo.getModelUuid());
+ resource.setModelCustomizationId(modelInfo.getModelCustomizationUuid());
+ }
+ resourceList.add(resource);
}
}
+ public void traverseServiceInstanceChildService(List<Resource> resourceList, Resource serviceResource,
+ ServiceInstance serviceInstanceAAI) {
+
+ ComposedResources composedResources = serviceInstanceAAI.getComposedResources();
+ if (composedResources == null) {
+ return;
+ }
+
+ List<ComposedResource> listOfComposedResource = composedResources.getComposedResource();
+
+ listOfComposedResource.forEach(composedResource -> {
+ // Get ServiceInstance from composedResource relationship List
+ RelationshipList relationshipList = composedResource.getRelationshipList();
+ if (relationshipList == null) {
+ return;
+ }
+ List<Relationship> composedResourceRelationshipList = relationshipList.getRelationship();
+ ServiceInstance childService = new ServiceInstance();
+ composedResourceRelationshipList.forEach(composedRelation -> {
+ if ("service-instance".equalsIgnoreCase(composedRelation.getRelatedTo())) {
+ List<RelationshipData> rData = composedRelation.getRelationshipData();
+ rData.forEach(data -> {
+ if ("service-instance.service-instance-id".equalsIgnoreCase(data.getRelationshipKey())) {
+ childService.setServiceInstanceId(data.getRelationshipValue());
+ }
+ });
+ composedRelation.getRelatedToProperty().forEach(relatedToProperty -> {
+ if ("service-instance.service-instance-name"
+ .equalsIgnoreCase(relatedToProperty.getPropertyKey())) {
+ childService.setServiceInstanceName(relatedToProperty.getPropertyValue());
+ }
+ });
+ }
+ });
+
+ if (childService.getServiceInstanceId() == null) {
+ return;
+ }
+
+ Resource childServiceResource =
+ new Resource(WorkflowType.SERVICE, childService.getServiceInstanceId(), false, serviceResource);
+
+ childServiceResource.setInstanceName(childService.getServiceInstanceName());
+ resourceList.add(childServiceResource);
+ });
+
+ }
+
protected void traverseVrfConfiguration(List<Pair<WorkflowType, String>> aaiResourceIds,
List<Resource> resourceList, Resource serviceResource, org.onap.so.db.catalog.beans.Service service,
RelatedInstance relatedVpnBinding, RelatedInstance relatedLocalNetwork)
for (VfModule vfModule : vnf.getVfModules()) {
aaiResourceIds.add(new Pair<>(WorkflowType.VFMODULE, vfModule.getVfModuleId()));
Resource resource = new Resource(WorkflowType.VFMODULE, vfModule.getVfModuleId(), false, vnfResource);
+ org.onap.aai.domain.yang.VfModule aaiVfModule =
+ bbInputSetupUtils.getAAIVfModule(vnf.getVnfId(), vfModule.getVfModuleId());
+ resource.setModelCustomizationId(aaiVfModule.getModelCustomizationId());
+ resource.setModelInvariantId(aaiVfModule.getModelInvariantId());
resource.setBaseVfModule(vfModule.getModelInfoVfModule().getIsBaseBoolean());
resourceList.add(resource);
}
import org.onap.so.db.catalog.beans.CvnfcCustomization;
import org.onap.so.db.catalog.beans.VfModuleCustomization;
import org.onap.so.db.catalog.client.CatalogDbClient;
+import org.onap.so.serviceinstancebeans.ModelInfo;
import org.onap.so.serviceinstancebeans.Networks;
import org.onap.so.serviceinstancebeans.Pnfs;
import org.onap.so.serviceinstancebeans.Service;
List<Resource> resourceList = new ArrayList<>();
Resource serviceResource =
new Resource(WorkflowType.SERVICE, validate.getModelInfo().getModelVersionId(), false, null);
+ ModelInfo modelInfo = validate.getModelInfo();
+ if (modelInfo != null) {
+ serviceResource.setModelVersionId(modelInfo.getModelVersionId());
+ serviceResource.setModelInvariantId(modelInfo.getModelInvariantUuid());
+ }
resourceList.add(serviceResource);
+ if (validate.getResources().getServices() != null) {
+ setResourceListForChildServices(execution, resourceList, serviceResource, validate);
+ }
if (validate.getResources().getVnfs() != null) {
setResourceListForVnfs(execution, resourceList, serviceResource, validate);
}
return resourceList;
}
+ private void setResourceListForChildServices(DelegateExecution execution, List<Resource> resourceList,
+ Resource serviceResource, Service validate) {
+ for (Service childService : validate.getResources().getServices()) {
+ Resource childServiceResource = new Resource(WorkflowType.SERVICE,
+ childService.getModelInfo().getModelVersionId(), false, serviceResource);
+ childServiceResource.setProcessingPriority(childService.getProcessingPriority());
+ childServiceResource.setInstanceName(childService.getInstanceName());
+ resourceList.add(childServiceResource);
+ }
+ }
+
private void setResourceListForVnfs(DelegateExecution execution, List<Resource> resourceList,
Resource serviceResource, Service validate) {
for (Vnfs vnf : validate.getResources().getVnfs()) {
serviceResource);
vnfResource.setProcessingPriority(vnf.getProcessingPriority());
vnfResource.setInstanceName(vnf.getInstanceName());
+ ModelInfo modelInfo = vnf.getModelInfo();
+ if (modelInfo != null) {
+ vnfResource.setModelCustomizationId(modelInfo.getModelCustomizationUuid());
+ vnfResource.setModelVersionId(modelInfo.getModelVersionId());
+ }
resourceList.add(vnfResource);
setResourceListForVfModules(execution, resourceList, vnfResource, validate, vnf);
}
foundVfModuleOrVG = true;
Resource resource =
setVfModuleWorkFlowTypeToResourceList(resourceList, vnfResource, vfModuleCustomization, vfModule);
+ if (vnf.getModelInfo() != null) {
+ resource.setModelVersionId(vnf.getModelInfo().getModelVersionId());
+ }
+ resource.setVfModuleCustomizationId(vfModuleCustomization.getModelCustomizationUUID());
+ resource.setModelCustomizationId(vfModuleCustomization.getModelCustomizationUUID());
setConfigurationWorkFlowTypeToResourceList(resourceList, vnfResource, validate, vnf, vfModule, resource);
}
}
for (Pnfs pnf : validate.getResources().getPnfs()) {
Resource pnfResource = new Resource(WorkflowType.PNF, pnf.getModelInfo().getModelCustomizationId(), false,
serviceResource);
+ ModelInfo modelInfo = pnf.getModelInfo();
+ if (modelInfo != null) {
+ pnfResource.setModelCustomizationId(modelInfo.getModelCustomizationUuid());
+ pnfResource.setModelVersionId(modelInfo.getModelVersionId());
+ }
pnfResource.setProcessingPriority(pnf.getProcessingPriority());
resourceList.add(pnfResource);
}
Resource networkResource = new Resource(WorkflowType.NETWORK,
network.getModelInfo().getModelCustomizationId(), false, serviceResource);
networkResource.setProcessingPriority(network.getProcessingPriority());
+ ModelInfo modelInfo = network.getModelInfo();
+ if (modelInfo != null) {
+ networkResource.setModelCustomizationId(modelInfo.getModelCustomizationUuid());
+ networkResource.setModelVersionId(modelInfo.getModelVersionId());
+ }
resourceList.add(networkResource);
}
if (requestAction.equals(CREATE_INSTANCE)) {
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.mockito.Mock;
+ import org.onap.aai.domain.yang.ComposedResource;
+ import org.onap.aai.domain.yang.ComposedResources;
+ import org.onap.aai.domain.yang.RelatedToProperty;
import org.onap.aai.domain.yang.Relationship;
+ import org.onap.aai.domain.yang.RelationshipData;
import org.onap.aai.domain.yang.RelationshipList;
import org.onap.aai.domain.yang.ServiceInstance;
import org.onap.aaiclient.client.aai.entities.Relationships;
aaiConfiguration2.setConfigurationId("testConfigurationId2");
aaiConfiguration2.setRelationshipList(relationshipList1);
+ org.onap.aai.domain.yang.VfModule aaiVfModule = new org.onap.aai.domain.yang.VfModule();
+ aaiVfModule.setIsBaseVfModule(true);
+
try {
doReturn(genericVnfAai).when(mockBbInputSetupUtils).getAAIGenericVnf(genericVnf.getVnfId());
doReturn(serviceInstanceAAI).when(mockBbInputSetupUtils).getAAIServiceInstanceById(resourceId);
.getConfiguration("testConfigurationId");
doReturn(Optional.of(aaiConfiguration2)).when(mockAaiConfigurationResources)
.getConfiguration("testConfigurationId2");
+ doReturn(aaiVfModule).when(mockBbInputSetupUtils).getAAIVfModule(any(), any());
serviceEBBLoader.traverseAAIService(execution, resourceCounter, resourceId, aaiResourceIds);
assertEquals(8, resourceCounter.size());
assertTrue(resourceCounter.get(2).isBaseVfModule());
resourceList.add(new Resource(WorkflowType.VFMODULE, "72d9d1cd-f46d-447a-abdb-451d6fb05fa8", false, r2));
return resourceList;
}
+
+ @Test
+ public void traverseServiceInstanceChildServiceTest() {
+ List<Resource> resourceList = new ArrayList<>();
+ Resource parentResource = new Resource(WorkflowType.SERVICE, "parentId", false, null);
+ String resourceId = "siP";
+ ServiceInstance serviceInstanceAAI = new ServiceInstance();
+ serviceInstanceAAI.setServiceInstanceId(resourceId);
+
+ RelationshipData relationshipData = new RelationshipData();
+ relationshipData.setRelationshipKey("service-instance.service-instance-id");
+ relationshipData.setRelationshipValue("80ced9d5-666e-406b-88f0-a05d31328b70");
+ RelatedToProperty relatedToProperty = new RelatedToProperty();
+ relatedToProperty.setPropertyKey("service-instance.service-instance-name");
+ relatedToProperty.setPropertyValue("child_euler_002");
+
+ RelationshipData relationshipData1 = new RelationshipData();
+ relationshipData1.setRelationshipKey("service-instance.service-instance-id");
+ relationshipData1.setRelationshipValue("fa5640af-c827-4372-baae-7f1c50fdb5ed");
+ RelatedToProperty relatedToProperty1 = new RelatedToProperty();
+ relatedToProperty1.setPropertyKey("service-instance.service-instance-name");
+ relatedToProperty.setPropertyValue("child_euler_001");
+
+
+ Relationship relationship = new Relationship();
+ Relationship relationship1 = new Relationship();
+ relationship.setRelatedTo("service-instance");
+ relationship1.setRelatedTo("service-instance");
+ relationship.getRelationshipData().add(relationshipData);
+ relationship.getRelatedToProperty().add(relatedToProperty);
+ relationship1.getRelationshipData().add(relationshipData1);
+ relationship1.getRelatedToProperty().add(relatedToProperty1);
+
+ RelationshipList relationshipList = new RelationshipList();
+ RelationshipList relationshipList1 = new RelationshipList();
+ relationshipList.getRelationship().add(relationship);
+ relationshipList1.getRelationship().add(relationship1);
+
+ ComposedResource composedResource = new ComposedResource();
+ composedResource.setRelationshipList(relationshipList);
+ ComposedResource composedResource1 = new ComposedResource();
+ composedResource1.setRelationshipList(relationshipList);
+
+ ComposedResources composedResources = new ComposedResources();
+ composedResources.getComposedResource().add(composedResource);
+ composedResources.getComposedResource().add(composedResource1);
+
+ serviceInstanceAAI.setComposedResources(composedResources);
+
+ serviceEBBLoader.traverseServiceInstanceChildService(resourceList, parentResource, serviceInstanceAAI);
+ assertEquals(2, resourceList.size());
+ }
}
@JsonProperty("instanceName")
protected String instanceName;
@JsonProperty("instanceParams")
- private List<Map<String, String>> instanceParams = new ArrayList<>();
+ private List<Map<String, Object>> instanceParams = new ArrayList<>();
@JsonProperty("resources")
protected Resources resources;
+ @JsonProperty("processingPriority")
+ protected Integer processingPriority = 0;
+
public ModelInfo getModelInfo() {
return modelInfo;
this.instanceName = instanceName;
}
- public List<Map<String, String>> getInstanceParams() {
+ public List<Map<String, Object>> getInstanceParams() {
return instanceParams;
}
- public void setInstanceParams(List<Map<String, String>> instanceParams) {
+ public void setInstanceParams(List<Map<String, Object>> instanceParams) {
this.instanceParams = instanceParams;
}
this.resources = resources;
}
+ public Integer getProcessingPriority() {
+ return processingPriority;
+ }
+
+ public void setProcessingPriority(Integer processingPriority) {
+ this.processingPriority = processingPriority;
+ }
+
+
@Override
public String toString() {
return "Service [modelInfo=" + modelInfo + ", cloudConfiguration=" + cloudConfiguration + ", instanceName="
- + instanceName + ", instanceParams=" + instanceParams + ", resources=" + resources + "]";
+ + instanceName + ", instanceParams=" + instanceParams + ", resources=" + resources
+ + ", processingPriority=" + processingPriority + "]";
}
}