class ConfigDeployVnf {

    public void preProcessAbstractCDSProcessing(BuildingBlockExecution execution) {


        logger.info("Start preProcessAbstractCDSProcessing");
        try {
            GenericVnf vnf = extractPojosForBB.extractByKey(execution, ResourceKey.GENERIC_VNF_ID);

            ServiceInstance serviceInstance =
                    extractPojosForBB.extractByKey(execution, ResourceKey.SERVICE_INSTANCE_ID);

            ConfigDeployPropertiesForVnf configDeployPropertiesForVnf = new ConfigDeployPropertiesForVnf();
            configDeployPropertiesForVnf.setServiceInstanceId(serviceInstance.getServiceInstanceId());
            configDeployPropertiesForVnf
                    .setServiceModelUuid(serviceInstance.getModelInfoServiceInstance().getModelUuid());
            configDeployPropertiesForVnf
                    .setVnfCustomizationUuid(vnf.getModelInfoGenericVnf().getModelCustomizationUuid());
            configDeployPropertiesForVnf.setVnfId(vnf.getVnfId());
            configDeployPropertiesForVnf.setVnfName(vnf.getVnfName());

            ConfigDeployRequestVnf configDeployRequestVnf = new ConfigDeployRequestVnf();

            configDeployRequestVnf.setResolutionKey(vnf.getVnfName());
            configDeployRequestVnf.setConfigDeployPropertiesForVnf(configDeployPropertiesForVnf);

            String blueprintName = vnf.getModelInfoGenericVnf().getBlueprintName();
            String blueprintVersion = vnf.getModelInfoGenericVnf().getBlueprintVersion();
            logger.debug(" BlueprintName : " + blueprintName + " BlueprintVersion : " + blueprintVersion);

            AbstractCDSPropertiesBean abstractCDSPropertiesBean = new AbstractCDSPropertiesBean();

            abstractCDSPropertiesBean.setBlueprintName(blueprintName);
            abstractCDSPropertiesBean.setBlueprintVersion(blueprintVersion);
            abstractCDSPropertiesBean.setRequestObject(configDeployRequestVnf.toString());


            GeneralBuildingBlock gBBInput = execution.getGeneralBuildingBlock();

            abstractCDSPropertiesBean.setOriginatorId(ORIGINATOR_ID);
            abstractCDSPropertiesBean.setRequestId(gBBInput.getRequestContext().getMsoRequestId());
            abstractCDSPropertiesBean.setSubRequestId(UUID.randomUUID().toString());
            abstractCDSPropertiesBean.setActionName(ACTION_NAME);
            abstractCDSPropertiesBean.setMode(MODE);

            execution.setVariable("executionObject", abstractCDSPropertiesBean);

        } catch (Exception ex) {
            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex);
        }
    }

}