diff options
author | Serena Feng <feng.xiaowei@zte.com.cn> | 2017-08-28 09:28:11 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@opnfv.org> | 2017-08-28 09:28:11 +0000 |
commit | 2a46ee4c60e3eeb95311cf406a9bef71d2d66777 (patch) | |
tree | 886694f2623cd0bffd6b7d8de194b1bb6269e3fb /utils/test/testapi/opnfv_testapi/resources | |
parent | a45e3e956f9a23ec963318f56575974e1a755c93 (diff) | |
parent | 858f34a8a3bd8949260dc37f87d13864617ad944 (diff) |
Merge "update installer under scenario"
Diffstat (limited to 'utils/test/testapi/opnfv_testapi/resources')
-rw-r--r-- | utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py b/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py index d6918a69b..6cdf99ea0 100644 --- a/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py +++ b/utils/test/testapi/opnfv_testapi/resources/scenario_handlers.py @@ -150,6 +150,9 @@ class ScenarioUpdater(object): ('versions', 'post'): self._update_requests_add_versions, ('versions', 'put'): self._update_requests_update_versions, ('versions', 'delete'): self._update_requests_delete_versions, + ('installers', 'post'): self._update_requests_add_installers, + ('installers', 'put'): self._update_requests_update_installers, + ('installers', 'delete'): self._update_requests_delete_installers, } updates[(item, action)](self.data) @@ -250,6 +253,19 @@ class ScenarioUpdater(object): def _update_requests_delete_versions(self, installer): installer.versions = self._remove_versions(installer.versions) + def _update_requests_add_installers(self, scenario): + scenario.installers = self._update_with_body(models.ScenarioInstaller, + 'installer', + scenario.installers) + + def _update_requests_update_installers(self, scenario): + scenario.installers = self._update_with_body(models.ScenarioInstaller, + 'installer', + list()) + + def _update_requests_delete_installers(self, scenario): + scenario.installers = self._remove_installers(scenario.installers) + def _update_with_body(self, clazz, field, withs): exists = list() malformat = list() @@ -272,6 +288,9 @@ class ScenarioUpdater(object): def _filter_installers(self, installers): return self._filter('installer', installers) + def _remove_installers(self, installers): + return self._remove('installer', installers) + def _filter_versions(self, versions): return self._filter('version', versions) @@ -688,3 +707,56 @@ class ScenarioVersionsHandler(GenericScenarioUpdateHandler): 'delete', locators={'scenario': scenario, 'installer': None}) + + +class ScenarioInstallersHandler(GenericScenarioUpdateHandler): + @swagger.operation(nickname="addInstallersUnderScenario") + def post(self, scenario): + """ + @description: add installers to scenario + @notes: add one or multiple installers + POST /api/v1/scenarios/<scenario_name>/installers + @param body: installers to be added + @type body: C{list} of L{ScenarioInstaller} + @in body: body + @return 200: installers are added. + @raise 400: bad schema + @raise 409: conflict, installer already exists + @raise 404: scenario not exist + """ + self.do_update('installers', + 'post', + locators={'scenario': scenario}) + + @swagger.operation(nickname="updateInstallersUnderScenario") + def put(self, scenario): + """ + @description: replace all installers + @notes: substitute all installers as a totality + PUT /api/v1/scenarios/<scenario_name>/installers + @param body: new installers + @type body: C{list} of L{ScenarioInstaller} + @in body: body + @return 200: replace versions success. + @raise 400: bad schema + @raise 404: scenario/installer not exist + """ + self.do_update('installers', + 'put', + locators={'scenario': scenario}) + + @swagger.operation(nickname="deleteInstallersUnderScenario") + def delete(self, scenario): + """ + @description: delete one or multiple installers + @notes: delete one or multiple installers + DELETE /api/v1/scenarios/<scenario_name>/installers + @param body: installers(names) to be deleted + @type body: C{list} of L{string} + @in body: body + @return 200: delete versions success. + @raise 404: scenario/installer not exist + """ + self.do_update('installers', + 'delete', + locators={'scenario': scenario}) |