From 66af8b9b391879be78660d6ccb0a1f1f9340b423 Mon Sep 17 00:00:00 2001 From: Ittay Stern Date: Mon, 11 Mar 2019 09:34:34 +0200 Subject: Merge automation from ECOMP's repository Reference commit in ECOMP: 8e92a8c6 Issue-ID: VID-378 Change-Id: Ia32f4813378ef95097f788246aa5b1172e20ca48 Signed-off-by: Ittay Stern --- .../automation/test/services/AsyncJobsService.java | 40 ++-- .../automation/test/services/BulkRegistration.java | 210 ++++++++++++--------- .../automation/test/services/DropTestApiField.java | 137 +++++++------- .../automation/test/services/ServicesService.java | 2 +- .../vid/automation/test/services/SimulatorApi.java | 91 ++++++--- .../vid/automation/test/services/UsersService.java | 23 ++- 6 files changed, 302 insertions(+), 201 deletions(-) (limited to 'vid-automation/src/main/java/vid/automation/test/services') diff --git a/vid-automation/src/main/java/vid/automation/test/services/AsyncJobsService.java b/vid-automation/src/main/java/vid/automation/test/services/AsyncJobsService.java index 01158fa66..35849b481 100644 --- a/vid-automation/src/main/java/vid/automation/test/services/AsyncJobsService.java +++ b/vid-automation/src/main/java/vid/automation/test/services/AsyncJobsService.java @@ -1,44 +1,54 @@ package vid.automation.test.services; +import com.google.common.collect.ImmutableList; import vid.automation.test.utils.DB_CONFIG; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; +import java.util.List; public class AsyncJobsService { public void dropAllAsyncJobs() { + runStatementsInDb(ImmutableList.of( + "DELETE FROM `vid_service_info`", + "DELETE FROM `vid_job`", + "DELETE FROM `vid_job_audit_status`", + "DELETE FROM `vid_name_counter`" + )); + } + + public void runStatementsInDb(List sqlStatements) { System.out.println("Connecting database..."); try (Connection connection = DriverManager.getConnection(DB_CONFIG.url, DB_CONFIG.username, DB_CONFIG.password)) { System.out.println("Database connected!"); - Statement stmt = connection.createStatement(); - stmt.addBatch("DELETE FROM `vid_service_info`"); - stmt.addBatch("DELETE FROM `vid_job`"); - stmt.addBatch("DELETE FROM `vid_job_audit_status`"); - int[] executeBatch = stmt.executeBatch(); + try (Statement stmt = connection.createStatement()) { + for (String sql: sqlStatements) { + stmt.addBatch(sql); + } + stmt.executeBatch(); + } } catch (SQLException e) { throw new IllegalStateException("Cannot connect the database!", e); } } - public void muteAllAsyncJobs() { - System.out.println("Connecting database..."); + public void runStatementInDb(String sqlStatement) { + runStatementsInDb(ImmutableList.of(sqlStatement)); + } - try (Connection connection = DriverManager.getConnection(DB_CONFIG.url, DB_CONFIG.username, DB_CONFIG.password)) { - System.out.println("Database connected!"); - Statement stmt = connection.createStatement(); - stmt.addBatch("UPDATE `vid_job` set `TAKEN_BY`='muteAllAsyncJobs', `AGE`=`AGE`+5"); - int[] executeBatch = stmt.executeBatch(); + public void muteAllAsyncJobs() { + runStatementInDb("UPDATE `vid_job` SET `TAKEN_BY`='muteAllAsyncJobs', `JOB_STATUS`=CONCAT('MUTED_', `JOB_STATUS`), `AGE`=`AGE`+5 WHERE `TAKEN_BY` is NULL or `TAKEN_BY`<>'muteAllAsyncJobs'"); + } - } catch (SQLException e) { - throw new IllegalStateException("Cannot connect the database!", e); - } + public void dropAllFromNameCounter() { + runStatementInDb("DELETE FROM `vid_name_counter`"); } } diff --git a/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java b/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java index c6de040ea..0f0839537 100644 --- a/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java +++ b/vid-automation/src/main/java/vid/automation/test/services/BulkRegistration.java @@ -1,14 +1,28 @@ package vid.automation.test.services; +import static org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId.ATT_NC; +import static vid.automation.test.infra.ModelInfo.serviceFabricSriovService; +import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND; + import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import org.onap.simulator.presetGenerator.presets.aai.PresetAAICloudRegionAndSourceFromConfigurationPut; +import org.onap.simulator.presetGenerator.presets.aai.PresetAAIFilterServiceInstanceById; +import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetCloudOwnersByCloudRegionId; +import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetHomingForVfModule; import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetModelsByOwningEntity; import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetModelsByProject; +import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetNetworkZones; import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetPortMirroringSourcePorts; +import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubDetailsGet; +import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubDetailsWithoutInstancesGet; +import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetSubscribersGet; import org.onap.simulator.presetGenerator.presets.aai.PresetAAIGetTenants; import org.onap.simulator.presetGenerator.presets.aai.PresetAAIPostNamedQueryForViewEdit; -import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateVfModuleInstancePost; +import org.onap.simulator.presetGenerator.presets.mso.PresetMSOActivateFabricConfiguration; +import org.onap.simulator.presetGenerator.presets.mso.PresetMSOBaseCreateInstancePost; +import org.onap.simulator.presetGenerator.presets.mso.PresetMSOCreateVfModule; +import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeactivateAndCloudDelete; import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeleteInstanceOrchestrationRequestGet; import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeleteNetwork; import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeleteService; @@ -16,33 +30,57 @@ import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeleteVfModule; import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeleteVnf; import org.onap.simulator.presetGenerator.presets.mso.PresetMSODeleteVolumeGroup; import org.onap.simulator.presetGenerator.presets.mso.PresetMSOOrchestrationRequestGet; +import org.onap.simulator.presetGenerator.presets.mso.configuration.PresetMSOActOnConfiguration; +import org.onap.simulator.presetGenerator.presets.mso.configuration.PresetMSOCreateConfiguration; +import org.onap.simulator.presetGenerator.presets.mso.configuration.PresetMSODeleteConfiguration; +import org.onap.simulator.presetGenerator.presets.mso.configuration.PresetMsoEnableDisablePort; import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceMetadataGet; import org.onap.simulator.presetGenerator.presets.sdc.PresetSDCGetServiceToscaModelGet; import vid.automation.test.Constants; -import static vid.automation.test.services.SimulatorApi.RegistrationStrategy.APPEND; - public class BulkRegistration { public static void searchExistingServiceInstance() { searchExistingServiceInstance("Active"); } - public static void searchExistingServiceInstance(String orchStatus) { + public static void searchExistingServiceInstance(String orchStatus) { + searchExistingServiceInstance(orchStatus, "pending-delete"); + } + + public static void searchExistingServiceInstance(String orchStatus, String vfModuleOrchStatus) { genericSearchExistingServiceInstance(); SimulatorApi.registerExpectation( new String [] { - Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_USP_VOICE, + Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_SILVIA_ROBBINS, Constants.RegisterToSimulator.SearchForServiceInstance.FILTER_SERVICE_INSTANCE_BY_ID, Constants.RegisterToSimulator.SearchForServiceInstance.NAMED_QUERY_VIEW_EDIT, Constants.RegisterToSimulator.SearchForServiceInstance.GET_SDC_CATALOG_SERVICE_VID_TEST_444, Constants.RegisterToSimulator.CreateNewServiceInstance.deploy.GET_AIC_ZONES - }, ImmutableMap.of("", orchStatus), SimulatorApi.RegistrationStrategy.APPEND); + }, ImmutableMap.of("", orchStatus, "", vfModuleOrchStatus), SimulatorApi.RegistrationStrategy.APPEND); + } + + public static void searchExistingServiceInstanceWithFabric(String orchStatus) { + genericSearchExistingServiceInstance(); + SimulatorApi.registerExpectationFromPresets( + ImmutableList.of( + new PresetAAIFilterServiceInstanceById("e433710f-9217-458d-a79d-1c7aff376d89", + "TYLER SILVIA", + "c187e9fe-40c3-4862-b73e-84ff056205f61234"), + new PresetAAIGetSubDetailsGet("e433710f-9217-458d-a79d-1c7aff376d89", orchStatus), + new PresetAAIGetSubDetailsWithoutInstancesGet("e433710f-9217-458d-a79d-1c7aff376d89", true), + new PresetAAIPostNamedQueryForViewEdit("c187e9fe-40c3-4862-b73e-84ff056205f61234", false, true), + new PresetSDCGetServiceMetadataGet(serviceFabricSriovService), + new PresetSDCGetServiceToscaModelGet(serviceFabricSriovService), + new PresetAAIGetNetworkZones(), + new PresetMSOActivateFabricConfiguration("c187e9fe-40c3-4862-b73e-84ff056205f61234"), + new PresetMSOOrchestrationRequestGet("COMPLETE", "318cc766-b673-4a50-b9c5-471f68914584", "Success")), + SimulatorApi.RegistrationStrategy.APPEND); } public static void searchExistingServiceInstanceByOEAndProject(){ SimulatorApi.registerExpectationFromPresets(ImmutableList.of( - new PresetAAIGetModelsByOwningEntity("Wireline"), + new PresetAAIGetModelsByOwningEntity("Melissa"), new PresetAAIGetModelsByProject("x1"), new PresetAAIGetModelsByProject("yyy1") ), APPEND); @@ -52,7 +90,7 @@ public class BulkRegistration { genericSearchExistingServiceInstance(); SimulatorApi.registerExpectation( new String [] { - Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_USP_VOICE_CR, + Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_SILVIA_ROBBINS_CR, Constants.RegisterToSimulator.SearchForServiceInstance.FILTER_CR_SERVICE_INSTANCE_BY_ID, Constants.RegisterToSimulator.SearchForServiceInstance.NAMED_QUERY_CR_VIEW_EDIT, Constants.RegisterToSimulator.SearchForServiceInstance.GET_SDC_CATALOG_SERVICE_VID_TEST_CR, @@ -65,7 +103,7 @@ public class BulkRegistration { genericSearchExistingServiceInstance(); SimulatorApi.registerExpectation( new String [] { - Constants.RegisterToSimulator.AddSubinterface.GET_SUBSCRIBERS_FOR_CUSTOMER_USP_VOICE_VFC_IG, + Constants.RegisterToSimulator.AddSubinterface.GET_SUBSCRIBERS_FOR_CUSTOMER_SILVIA_ROBBINS_VFC_IG, Constants.RegisterToSimulator.AddSubinterface.FILTER_VFC_IG_SERVICE_INSTANCE_BY_ID, Constants.RegisterToSimulator.AddSubinterface.NAMED_QUERY_VFC_IG_VIEW_EDIT, Constants.RegisterToSimulator.AddSubinterface.GET_SDC_CATALOG_SERVICE_VID_TEST_444, @@ -77,17 +115,16 @@ public class BulkRegistration { SimulatorApi.registerExpectation( new String [] { Constants.RegisterToSimulator.genericRequest.ECOMP_PORTAL_GET_SESSION_SLOT_CHECK_INTERVAL, - Constants.RegisterToSimulator.SearchForServiceInstance.GET_FULL_SUBSCRIBERS, Constants.RegisterToSimulator.SearchForServiceInstance.GET_SERVICES - }, ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); + SimulatorApi.registerExpectationFromPreset(new PresetAAIGetSubscribersGet(),SimulatorApi.RegistrationStrategy.APPEND); } public static void searchExistingServiceInstance2(String orchStatus) { genericSearchExistingServiceInstance(); SimulatorApi.registerExpectation( new String [] { - Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_FIREWALL_MISC, + Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_CRAIG_ROBERTS, Constants.RegisterToSimulator.SearchForServiceInstance.FILTER_SERVICE_INSTANCE_BY_ID_2, Constants.RegisterToSimulator.SearchForServiceInstance.NAMED_QUERY_VIEW_EDIT_2 }, ImmutableMap.of("", orchStatus), SimulatorApi.RegistrationStrategy.APPEND); @@ -105,9 +142,10 @@ public class BulkRegistration { SimulatorApi.registerExpectationFromPreset(new PresetAAICloudRegionAndSourceFromConfigurationPut(configurationId, desiredCloudRegionId), APPEND); SimulatorApi.registerExpectationFromPreset(new PresetAAIGetPortMirroringSourcePorts(configurationId, portInterfaceId, "i'm a port", isMirrored), APPEND); + SimulatorApi.registerExpectationFromPreset(PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC, APPEND); SimulatorApi.registerExpectation( new String [] { - Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_USP_VOICE, + Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_SILVIA_ROBBINS, Constants.RegisterToSimulator.SearchForServiceInstance.FILTER_SERVICE_INSTANCE_BY_ID_PM, Constants.RegisterToSimulator.SearchForServiceInstance.NAMED_QUERY_VIEW_EDIT_PM, Constants.RegisterToSimulator.SearchForServiceInstance.GET_SDC_CATALOG_SERVICE_PM, @@ -170,33 +208,24 @@ public class BulkRegistration { } - public static void activateDeactivateConfiguration(String orchStatus, String action, String desiredCloudRegionId) { - SimulatorApi.registerExpectation( - new String [] { - Constants.RegisterToSimulator.createConfiguration.MSO_ACTIVATE_CONFIGURATION, - }, ImmutableMap.of("",action,"mdt1", desiredCloudRegionId), SimulatorApi.RegistrationStrategy.APPEND); + public static void activateDeactivateConfiguration(String action) { + appendWithGetStatus(new PresetMSOActOnConfiguration(action), PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC); } - public static void deleteConfiguration(String desiredCloudRegionId) { - SimulatorApi.registerExpectation( - new String [] { - Constants.RegisterToSimulator.createConfiguration.MSO_DELETE_CONFIGURATION, - Constants.RegisterToSimulator.createConfiguration.MSO_CREATE_CONFIGURATION_ORCH_REQ - }, ImmutableMap.of("mdt1", desiredCloudRegionId), SimulatorApi.RegistrationStrategy.APPEND); + public static void deleteConfiguration() { + appendWithGetStatus(new PresetMSODeleteConfiguration(), PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC); } - public static void enableDisablePort(String action, String desiredCloudRegionId){ - SimulatorApi.registerExpectation( - new String [] { - Constants.RegisterToSimulator.createConfiguration.MSO_ACTIVATE_CONFIGURATION, - Constants.RegisterToSimulator.createConfiguration.MSO_ENABLE_DISABLE_PORT, - }, ImmutableMap.of("", action,"mdt1", desiredCloudRegionId), SimulatorApi.RegistrationStrategy.APPEND); + public static void enableDisablePort(String action){ + appendWithGetStatus(new PresetMsoEnableDisablePort( + "c187e9fe-40c3-4862-b73e-84ff056205f6", + "9533-config-LB1113", action), PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC); } public static void addNetwork() { SimulatorApi.registerExpectation( new String [] { - Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_Mobility, + Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_Emanuel, Constants.RegisterToSimulator.addNetwork.AAI_GET_TENANTS, Constants.RegisterToSimulator.addNetwork.AAI_NAMED_QUERY_FOR_VIEW_EDIT, Constants.RegisterToSimulator.addNetwork.FILTER_SERVICE_INSTANCE_BY_ID, @@ -205,13 +234,7 @@ public class BulkRegistration { }, ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); } - public static void msoAddNetwork(String instanceName){ - SimulatorApi.registerExpectation( - new String [] { - Constants.RegisterToSimulator.addNetwork.MSO_ADD_NETWORK_ORCH_REQ, - Constants.RegisterToSimulator.addNetwork.MSO_ADD_NETWORK - }, ImmutableMap.of("",instanceName), SimulatorApi.RegistrationStrategy.APPEND); - } + public static void msoAddNetworkError(String instanceName){ SimulatorApi.registerExpectation( new String [] { @@ -227,13 +250,15 @@ public class BulkRegistration { } - public static void createPolicyConfiguration(boolean isSuccessFlow, String desiredCloudRegionId) { + public static void createPolicyConfiguration(boolean isSuccessFlow, String serviceType) { createConfiguration(); - SimulatorApi.registerExpectation( - new String []{ - Constants.RegisterToSimulator.createConfiguration.GET_PNF_INSTANCES, - Constants.RegisterToSimulator.createConfiguration.GET_MODEL_BY_ONE_INVARIANT_ID - } , ImmutableMap.of("mdt1", desiredCloudRegionId), SimulatorApi.RegistrationStrategy.APPEND); + + SimulatorApi.registerExpectation(SimulatorApi.RegistrationStrategy.APPEND, + Constants.RegisterToSimulator.createConfiguration.GET_MODEL_BY_ONE_INVARIANT_ID); + + SimulatorApi.registerExpectation(Constants.RegisterToSimulator.createConfiguration.GET_PNF_INSTANCES, + ImmutableMap.of("", serviceType), SimulatorApi.RegistrationStrategy.APPEND); + if (isSuccessFlow) { msoCreatePProbeConfiguration(); } else { @@ -241,38 +266,33 @@ public class BulkRegistration { } } - public static void deletePolicyConfiguration(boolean isSuccessFlow, String desiredCloudRegionId) { + public static void deletePolicyConfiguration(boolean isSuccessFlow) { createConfiguration(); - SimulatorApi.registerExpectation( - new String []{ - Constants.RegisterToSimulator.createConfiguration.GET_PNF_INSTANCES, - Constants.RegisterToSimulator.createConfiguration.GET_MODEL_BY_ONE_INVARIANT_ID, - Constants.RegisterToSimulator.createConfiguration.MSO_DELETE_CONFIGURATION, - - } , ImmutableMap.of("mdt1", desiredCloudRegionId), SimulatorApi.RegistrationStrategy.APPEND); - if (isSuccessFlow) { - msoCreatePProbeConfiguration(); - } else { - msoCreatePProbeConfigurationError(); - } + SimulatorApi.registerExpectation(SimulatorApi.RegistrationStrategy.APPEND, + Constants.RegisterToSimulator.createConfiguration.GET_MODEL_BY_ONE_INVARIANT_ID); + appendWithGetStatus(new PresetMSODeleteConfiguration(), PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC); } private static void msoCreatePProbeConfiguration() { - SimulatorApi.registerExpectation( - new String []{ - Constants.RegisterToSimulator.createConfiguration.MSO_CREATE_CONFIGURATION, - Constants.RegisterToSimulator.createConfiguration.MSO_CREATE_CONFIGURATION_ORCH_REQ - } , ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); + appendWithGetStatus(new PresetMSOCreateConfiguration("c187e9fe-40c3-4862-b73e-84ff056205f6"), PresetAAIGetCloudOwnersByCloudRegionId.PRESET_AAIAIC25_TO_ATT_AIC); + } + + private static void appendWithGetStatus(PresetMSOBaseCreateInstancePost createInstancePreset, PresetAAIGetCloudOwnersByCloudRegionId cloudOwnerPreset) { + SimulatorApi.registerExpectationFromPresets(ImmutableList.of( + createInstancePreset, + cloudOwnerPreset, + new PresetMSOOrchestrationRequestGet(PresetMSOOrchestrationRequestGet.COMPLETE, createInstancePreset.getRequestId(), "Success")), + SimulatorApi.RegistrationStrategy.APPEND); } private static void msoCreatePProbeConfigurationError() { - SimulatorApi.registerExpectation( - new String []{ - Constants.RegisterToSimulator.createConfiguration.MSO_CREATE_CONFIGURATION_ERROR - } , ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); + SimulatorApi.registerExpectationFromPresets(ImmutableList.of( + new PresetMSOCreateConfiguration("c187e9fe-40c3-4862-b73e-84ff056205f6", 500, null), + PresetAAIGetCloudOwnersByCloudRegionId.PRESET_AAIAIC25_TO_ATT_AIC), + SimulatorApi.RegistrationStrategy.APPEND); } public static void createConfiguration() { @@ -295,31 +315,28 @@ public class BulkRegistration { } public static void createNewServiceInstance(String subscriber) { - SimulatorApi.registerExpectation( - new String []{ - Constants.RegisterToSimulator.CreateNewServiceInstance.GET_FULL_SUBSCRIBES, - Constants.RegisterToSimulator.CreateNewServiceInstance.GET_SERVICES - } , ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); + SimulatorApi.registerExpectationFromPreset(new PresetAAIGetSubscribersGet(),SimulatorApi.RegistrationStrategy.APPEND); + SimulatorApi.registerExpectation(Constants.RegisterToSimulator.CreateNewServiceInstance.GET_SERVICES, SimulatorApi.RegistrationStrategy.APPEND); switch (subscriber) { - case "USP VOICE": createNewServiceInstanceUspVoice(); break; - case "MSO_1610_ST": createNewServiceInstanceMso1610ST(); break; + case "SILVIA ROBBINS": createNewServiceInstanceUspVoice(); break; + case "CAR_2020_ER": createNewServiceInstanceMso1610ST(); break; } } private static void createNewServiceInstanceMso1610ST() { SimulatorApi.registerExpectation( new String []{ - Constants.RegisterToSimulator.CreateNewServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_MSO_1610_ST, - Constants.RegisterToSimulator.CreateNewServiceInstance.GET_MODELS_BY_SERVICE_TYPE_MSO_1610_ST + Constants.RegisterToSimulator.CreateNewServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_CAR_2020_ER, + Constants.RegisterToSimulator.CreateNewServiceInstance.GET_MODELS_BY_SERVICE_TYPE_CAR_2020_ER } , ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); } private static void createNewServiceInstanceUspVoice() { SimulatorApi.registerExpectation( new String []{ - Constants.RegisterToSimulator.CreateNewServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_USP_VOICE, - Constants.RegisterToSimulator.CreateNewServiceInstance.GET_MODELS_BY_SERVICE_TYPE_USP_VOICE + Constants.RegisterToSimulator.CreateNewServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_SILVIA_ROBBINS, + Constants.RegisterToSimulator.CreateNewServiceInstance.GET_MODELS_BY_SERVICE_TYPE_SILVIA_ROBBINS } , ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); } @@ -336,26 +353,34 @@ public class BulkRegistration { public static void searchExistingServiceInstanceWithoutModelVerId() { SimulatorApi.registerExpectation( new String []{ - Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_FIREWALL_MISC, + Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_CRAIG_ROBERTS, Constants.RegisterToSimulator.SearchForServiceInstance.FILTER_SERVICE_INSTANCE_BY_ID_NO_MODEL_VER_ID, // Constants.RegisterToSimulator.SearchForServiceInstance.NAMED_QUERY_VIEW_EDIT_NO_MODEL_VER_ID } , ImmutableMap.of(), SimulatorApi.RegistrationStrategy.APPEND); } - public static void deleteExistingInstance(String orchStatus, String type) { + public static void deleteExistingInstance(String orchStatus, String type) { + deleteExistingInstance(orchStatus, type, "pending-delete"); + } + + public static void deleteExistingInstance(String orchStatus, String type, String vfModuleOrchStatus) { genericSearchExistingServiceInstance(); SimulatorApi.registerExpectation( new String [] { - Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_USP_VOICE, + Constants.RegisterToSimulator.SearchForServiceInstance.GET_SUBSCRIBERS_FOR_CUSTOMER_SILVIA_ROBBINS, Constants.RegisterToSimulator.SearchForServiceInstance.NAMED_QUERY_VIEW_EDIT, Constants.RegisterToSimulator.CreateNewServiceInstance.deploy.GET_AIC_ZONES - }, ImmutableMap.of("", orchStatus), SimulatorApi.RegistrationStrategy.APPEND); + }, ImmutableMap.of("", orchStatus, "", vfModuleOrchStatus), SimulatorApi.RegistrationStrategy.APPEND); SimulatorApi.registerExpectationFromPresets( ImmutableList.of( new PresetAAIGetTenants(), new PresetMSODeleteInstanceOrchestrationRequestGet(type), new PresetSDCGetServiceMetadataGet("7a6ee536-f052-46fa-aa7e-2fca9d674c44", "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "service-Complexservice-aLaCarte-csar.zip"), - new PresetSDCGetServiceToscaModelGet("7a6ee536-f052-46fa-aa7e-2fca9d674c44", "service-Complexservice-aLaCarte-csar.zip")), + new PresetSDCGetServiceToscaModelGet("7a6ee536-f052-46fa-aa7e-2fca9d674c44", "service-Complexservice-aLaCarte-csar.zip"), + new PresetMSODeactivateAndCloudDelete("3f93c7cb-2fd0-4557-9514-e189b7b04f9d", "c015cc0f-0f37-4488-aabf-53795fd93cd3", + "a231a99c-7e75-4d6d-a0fb-5c7d26f30f77", "c0011670-0e1a-4b74-945d-8bf5aede1d9c", "irma-aic"), + PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MTN6_TO_ATT_AIC + ), SimulatorApi.RegistrationStrategy.APPEND); } @@ -383,7 +408,23 @@ public class BulkRegistration { deleteExistingInstance(orchStatus, "Service"); SimulatorApi.registerExpectationFromPresets(ImmutableList.of( new PresetMSODeleteService(), - new PresetAAIPostNamedQueryForViewEdit("3f93c7cb-2fd0-4557-9514-e189b7b04f9d", false)), SimulatorApi.RegistrationStrategy.APPEND); + new PresetAAIPostNamedQueryForViewEdit("3f93c7cb-2fd0-4557-9514-e189b7b04f9d", false, false)), SimulatorApi.RegistrationStrategy.APPEND); + } + + public static void resumeWithHomingDataVfModule(String serviceOrchStatus, String vfModuleOrchStatus, String vfModuleName) { + SimulatorApi.registerExpectation(Constants.RegisterToSimulator.SearchForServiceInstance.NAMED_QUERY_VIEW_EDIT, + ImmutableMap.of("", serviceOrchStatus, "", vfModuleOrchStatus), + SimulatorApi.RegistrationStrategy.APPEND); + + SimulatorApi.registerExpectationFromPresets( + ImmutableList.of ( + PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC, + new PresetAAIGetHomingForVfModule("c015cc0f-0f37-4488-aabf-53795fd93cd3", "a231a99c-7e75-4d6d-a0fb-5c7d26f30f77", "092eb9e8e4b7412e8787dd091bc58e86", "mdt1"), + new PresetMSOCreateVfModule("3f93c7cb-2fd0-4557-9514-e189b7b04f9d", + "c015cc0f-0f37-4488-aabf-53795fd93cd3", ATT_NC, vfModuleName, + "7a6ee536-f052-46fa-aa7e-2fca9d674c44", "e49fbd11-e60c-4a8e-b4bf-30fbe8f4fcc0", "ComplexService"), + new PresetMSOOrchestrationRequestGet("COMPLETE","c0011670-0e1a-4b74-945d-8bf5aede1d9c",Constants.ViewEdit.VF_MODULE_CREATED_SUCCESSFULLY_TEXT)), + SimulatorApi.RegistrationStrategy.APPEND); } public static void resumeVfModule(String serviceInstanceId, String vnfInstanceId ){ @@ -391,7 +432,8 @@ public class BulkRegistration { SimulatorApi.registerExpectationFromPresets( ImmutableList.of ( new PresetAAIGetTenants(), - new PresetMSOCreateVfModuleInstancePost(serviceInstanceId,vnfInstanceId), + PresetAAIGetCloudOwnersByCloudRegionId.PRESET_MDT1_TO_ATT_NC, + new PresetMSOCreateVfModule(serviceInstanceId,vnfInstanceId, ATT_NC), new PresetMSOOrchestrationRequestGet("COMPLETE","c0011670-0e1a-4b74-945d-8bf5aede1d9c",Constants.ViewEdit.VF_MODULE_CREATED_SUCCESSFULLY_TEXT)), SimulatorApi.RegistrationStrategy.APPEND); diff --git a/vid-automation/src/main/java/vid/automation/test/services/DropTestApiField.java b/vid-automation/src/main/java/vid/automation/test/services/DropTestApiField.java index e175b88b1..bb50438ca 100644 --- a/vid-automation/src/main/java/vid/automation/test/services/DropTestApiField.java +++ b/vid-automation/src/main/java/vid/automation/test/services/DropTestApiField.java @@ -1,64 +1,73 @@ -package vid.automation.test.services; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import vid.automation.test.infra.Features; - -import java.io.IOException; -import java.util.Arrays; -import java.util.function.UnaryOperator; - -public class DropTestApiField { - - public static UnaryOperator dropTestApiFieldFromString() { - if (Features.FLAG_ADD_MSO_TESTAPI_FIELD.isActive()) { - // do nothing - return in -> in; - } else { - final ObjectMapper objectMapper = new ObjectMapper(); - return in -> { - if (!in.contains("testApi")) { - // short circuit - return in; - } - - try { - final JsonNode tree = objectMapper.readTree(in); - final JsonNode node = tree.path("simulatorRequest"); - if (removePath(node, "body", "requestDetails", "requestParameters", "testApi") != null) { - // tree modified, write back to string - return objectMapper.writeValueAsString(tree); - } else { - // else... - return in; - } - } catch (IOException e) { - return in; - } - }; - } - } - - private static JsonNode removePath(JsonNode tree, String... nodes) { - // remove the nodes; remove also the parent, if an empty object was left - // returns the removed node - // returns null if no modification to tree - if (nodes.length > 1) { - final JsonNode node = tree.path(nodes[0]); - final JsonNode removed = removePath(node, Arrays.copyOfRange(nodes, 1, nodes.length)); - if (removed != null && node.size() == 0) { - return removePath(tree, nodes[0]); - } else { - return removed; // non-null if node.size() != 0 - } - } else { - if (tree instanceof ObjectNode) { - return ((ObjectNode) tree).remove(nodes[0]); - } else { - return null; - } - } - } - -} +package vid.automation.test.services; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import vid.automation.test.infra.Features; + +import java.io.IOException; +import java.util.Arrays; +import java.util.function.UnaryOperator; + +public class DropTestApiField { + + public static UnaryOperator dropTestApiFieldFromString() { + return dropFieldFromString("testApi", Features.FLAG_ADD_MSO_TESTAPI_FIELD, + "simulatorRequest", "body", "requestDetails", "requestParameters", "testApi"); + } + + public static UnaryOperator dropFieldCloudOwnerFromString() { + return dropFieldFromString("cloudOwner", Features.FLAG_ADD_MSO_TESTAPI_FIELD, + "simulatorRequest", "body", "requestDetails", "cloudConfiguration", "cloudOwner"); + } + private static UnaryOperator dropFieldFromString(String text, Features featureFlag, String basePath, String... nodes){ + if (featureFlag.isActive()) { + // do nothing + return in -> in; + } else { + final ObjectMapper objectMapper = new ObjectMapper(); + return in -> { + if (!in.contains(text)) { + // short circuit + return in; + } + + try { + final JsonNode tree = objectMapper.readTree(in); + final JsonNode node = tree.path(basePath); + if (removePath(node, nodes) != null) { + // tree modified, write back to string + return objectMapper.writeValueAsString(tree); + } else { + // else... + return in; + } + } catch (IOException e) { + return in; + } + }; + } + } + + private static JsonNode removePath(JsonNode tree, String... nodes) { + // remove the nodes; remove also the parent, if an empty object was left + // returns the removed node + // returns null if no modification to tree + if (nodes.length > 1) { + final JsonNode node = tree.path(nodes[0]); + final JsonNode removed = removePath(node, Arrays.copyOfRange(nodes, 1, nodes.length)); + if (removed != null && node.size() == 0) { + return removePath(tree, nodes[0]); + } else { + return removed; // non-null if node.size() != 0 + } + } else { + if (tree instanceof ObjectNode) { + return ((ObjectNode) tree).remove(nodes[0]); + } else { + return null; + } + } + } + +} diff --git a/vid-automation/src/main/java/vid/automation/test/services/ServicesService.java b/vid-automation/src/main/java/vid/automation/test/services/ServicesService.java index 34303a972..264b2c16d 100644 --- a/vid-automation/src/main/java/vid/automation/test/services/ServicesService.java +++ b/vid-automation/src/main/java/vid/automation/test/services/ServicesService.java @@ -1,7 +1,7 @@ package vid.automation.test.services; import com.fasterxml.jackson.databind.ObjectMapper; -import org.openecomp.sdc.ci.tests.utilities.FileHandling; +import org.onap.sdc.ci.tests.utilities.FileHandling; import vid.automation.test.model.Service; import vid.automation.test.model.ServiceModel; import vid.automation.test.model.ServiceModelsList; diff --git a/vid-automation/src/main/java/vid/automation/test/services/SimulatorApi.java b/vid-automation/src/main/java/vid/automation/test/services/SimulatorApi.java index 29f6eae7c..65ef3679c 100644 --- a/vid-automation/src/main/java/vid/automation/test/services/SimulatorApi.java +++ b/vid-automation/src/main/java/vid/automation/test/services/SimulatorApi.java @@ -1,30 +1,36 @@ package vid.automation.test.services; -import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; -import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; +import static org.testng.Assert.assertEquals; +import static vid.automation.test.services.DropTestApiField.dropFieldCloudOwnerFromString; +import static vid.automation.test.services.DropTestApiField.dropTestApiFieldFromString; + +import com.fasterxml.jackson.databind.DeserializationFeature; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import org.glassfish.jersey.client.ClientProperties; -import org.glassfish.jersey.uri.internal.JerseyUriBuilder; -import org.onap.simulator.presetGenerator.presets.BasePresets.BasePreset; -import org.onap.simulator.presetGenerator.presets.model.RegistrationRequest; -import org.springframework.http.HttpStatus; -import vid.automation.test.utils.ReadFile; - +import java.net.URI; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.function.UnaryOperator; +import java.util.stream.Collectors; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; -import java.net.URI; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.function.UnaryOperator; - -import static org.testng.Assert.assertEquals; -import static vid.automation.test.services.DropTestApiField.dropTestApiFieldFromString; +import org.glassfish.jersey.client.ClientProperties; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.uri.internal.JerseyUriBuilder; +import org.onap.simulator.presetGenerator.presets.BasePresets.BasePreset; +import org.onap.simulator.presetGenerator.presets.model.RegistrationRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import vid.automation.test.utils.ReadFile; public class SimulatorApi { @@ -32,15 +38,31 @@ public class SimulatorApi { APPEND, CLEAR_THEN_SET } + private static final Logger logger = LoggerFactory.getLogger(SimulatorApi.class); + + /* + these classes are partial representation of org.mockserver.model.HttpRequest. + We can not use HttpRequest since it contains Map with NottableString and jackson throw the following error : + com.fasterxml.jackson.databind.JsonMappingException: Can not find a (Map) Key deserializer for type + [simple type, class org.mockserver.model.NottableString] + */ + public static class Path { + public String value; + } + + public static class HttpRequest{ + public Path path; + } + private static final URI uri; //uri for registration private static final URI simulationUri; //uri for getting simulated responses private static final Client client; private static final List> presetStringPostProccessors = - ImmutableList.of(dropTestApiFieldFromString()); + ImmutableList.of(dropTestApiFieldFromString(), dropFieldCloudOwnerFromString()); static { - String host = System.getProperty("VID_HOST", "127.0.0.1" ); + String host = System.getProperty("VID_HOST", "10.0.0.10" ); Integer port = Integer.valueOf(System.getProperty("SIM_PORT", System.getProperty("VID_PORT", "8080"))); //port for registration uri = new JerseyUriBuilder().host(host).port(port).scheme("http").path("vidSimulator").build(); client = ClientBuilder.newClient(); @@ -49,6 +71,7 @@ public class SimulatorApi { // org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: // MessageBodyWriter not found for media type=application/json JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider(); + jacksonJsonProvider.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); client.register(jacksonJsonProvider); Integer simulationPort = Integer.valueOf(System.getProperty("SIMULATION_PORT", "1080")); //port getting simulated responses @@ -84,13 +107,13 @@ public class SimulatorApi { content = content.replaceAll(templateParam.getKey(), templateParam.getValue().toString()); } - registerToSimulatorAndAssertSuccess(content, registrationStrategy); + registerToSimulatorAndAssertSuccess(expectationTemplateFilename, content, registrationStrategy); } public static void registerExpectationFromPreset(BasePreset preset, RegistrationStrategy registrationStrategy) { RegistrationRequest content = preset.generateScenario(); - registerToSimulatorAndAssertSuccess(content, registrationStrategy); + registerToSimulatorAndAssertSuccess(preset.getClass().getCanonicalName(), content, registrationStrategy); } public static void registerExpectationFromPresets(Collection presets, RegistrationStrategy registrationStrategy) { @@ -99,7 +122,7 @@ public class SimulatorApi { } presets.forEach( preset-> { - try {registerToSimulatorAndAssertSuccess(preset.generateScenario());} + try {registerToSimulatorAndAssertSuccess(preset.getClass().getCanonicalName(), preset.generateScenario());} catch (RuntimeException e) { throw new RuntimeException("Failed to register preset "+preset.getClass().getName(), e); } @@ -107,14 +130,31 @@ public class SimulatorApi { ); } - private static void registerToSimulatorAndAssertSuccess(Object content, RegistrationStrategy registrationStrategy) { +// public static List retrieveRecordedRequests() { +// Response response = client.target(uri).path("retrieveRecordedRequests").request().get(); +// return response.readEntity(new GenericType>(){}); +// } + + /* + This method return counter of requests that has been sent to simulator. + The key of the map is a path, and the value is counter + */ + public static Map retrieveRecordedRequestsPathCounter() { + Response response = client.target(uri).path("retrieveRecordedRequests").request().get(); + List httpRequests = response.readEntity(new GenericType>(){}); + return httpRequests.stream().map(x->x.path.value).collect( + Collectors.groupingBy(Function.identity(), Collectors.counting())); + } + + private static void registerToSimulatorAndAssertSuccess(String name, Object content, RegistrationStrategy registrationStrategy) { if (registrationStrategy == RegistrationStrategy.CLEAR_THEN_SET) { clearRegistrations(); } - registerToSimulatorAndAssertSuccess(content); + registerToSimulatorAndAssertSuccess(name, content); } - private static void registerToSimulatorAndAssertSuccess(Object content) { + private static void registerToSimulatorAndAssertSuccess(String name, Object content) { + logger.info("Setting {}", name); content = postProccessContent(content); @@ -137,6 +177,7 @@ public class SimulatorApi { } private static void clearRegistrations() { + logger.info("Clearing Registrations"); Response response = createSimulatorRegistrationWebTarget().request().delete(); assertEquals(response.getStatus(), HttpStatus.OK.value()); } diff --git a/vid-automation/src/main/java/vid/automation/test/services/UsersService.java b/vid-automation/src/main/java/vid/automation/test/services/UsersService.java index ac8af4511..aae7917f7 100644 --- a/vid-automation/src/main/java/vid/automation/test/services/UsersService.java +++ b/vid-automation/src/main/java/vid/automation/test/services/UsersService.java @@ -1,12 +1,10 @@ package vid.automation.test.services; -import com.google.common.primitives.Ints; -import org.apache.commons.lang3.StringUtils; -import vid.automation.test.model.User; -import vid.automation.test.model.UsersObject; -import vid.automation.test.utils.DB_CONFIG; -import vid.automation.test.utils.ReadFile; +import static org.hamcrest.CoreMatchers.everyItem; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.greaterThan; +import com.google.common.primitives.Ints; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@ -15,10 +13,11 @@ import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; - -import static org.hamcrest.CoreMatchers.everyItem; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.greaterThan; +import org.apache.commons.lang3.StringUtils; +import vid.automation.test.model.User; +import vid.automation.test.model.UsersObject; +import vid.automation.test.utils.DB_CONFIG; +import vid.automation.test.utils.ReadFile; /** * Created by itzikliderman on 08/09/2017. @@ -53,7 +52,7 @@ public class UsersService { /* Creates a user in the DB, were: - Login user name is a deterministic number, hashed from the userId string, with 3 trailing zeroes, - and two leading letters from the userId itself; e.g. "mo26063000" for mobility. + and two leading letters from the userId itself; e.g. "mo26063000" for emanuel. - Login user name == user password - 'user.credentials.userId' and 'user.credentials.password' input fields are overridden with the generated values. - Roles are "read" (roleId==16) and all other roles in object (like subscriberName___serviceType___tenant). @@ -77,7 +76,7 @@ public class UsersService { user.credentials.password = getLoginId(userId); stmt.addBatch("INSERT INTO `fn_user` (`USER_ID`, `ORG_USER_ID`, `FIRST_NAME`, `LOGIN_ID`, `LOGIN_PWD`) " + - "VALUES (" + userNumber + ", '" + userId + "', '" + userId + "', '" + user.credentials.userId + "', '" + user.credentials.password + "')"); + "VALUES (" + userNumber + ", '" + user.credentials.userId + "', '" + userId + "', '" + user.credentials.userId + "', '" + user.credentials.password + "')"); List roles = user.roles != null ? user.roles : new LinkedList<>(); roles.add("Standard User"); -- cgit 1.2.3-korg