def update(self, req, id, body): context = req.environ["coriolis.context"] context.can(pools_policies.get_minion_pools_policy_label("update")) updated_values = self._validate_update_body(id, context, body) return minion_pool_view.single( req, self._minion_pool_api.update( req.environ['coriolis.context'], id, updated_values))
def show(self, req, id): context = req.environ["coriolis.context"] context.can(pools_policies.get_minion_pools_policy_label("show")) minion_pool = self._minion_pool_api.get_minion_pool(context, id) if not minion_pool: raise exc.HTTPNotFound() return minion_pool_view.single(req, minion_pool)
def delete(self, req, id): context = req.environ["coriolis.context"] context.can(pools_policies.get_minion_pools_policy_label("delete")) try: self._minion_pool_api.delete(req.environ['coriolis.context'], id) raise exc.HTTPNoContent() except exception.NotFound as ex: raise exc.HTTPNotFound(explanation=ex.msg)
def create(self, req, body): context = req.environ["coriolis.context"] context.can(pools_policies.get_minion_pools_policy_label("create")) (name, endpoint_id, pool_platform, pool_os_type, environment_options, minimum_minions, maximum_minions, minion_max_idle_time, minion_retention_strategy, notes) = ( self._validate_create_body(context, body)) return minion_pool_view.single(req, self._minion_pool_api.create( context, name, endpoint_id, pool_platform, pool_os_type, environment_options, minimum_minions, maximum_minions, minion_max_idle_time, minion_retention_strategy, notes=notes))
def _refresh_pool(self, req, id, body): context = req.environ['coriolis.context'] context.can( minion_pool_policies.get_minion_pools_policy_label("refresh")) try: return minion_pool_view.single( req, self.minion_pool_api.refresh_minion_pool(context, id)) except exception.NotFound as ex: raise exc.HTTPNotFound(explanation=ex.msg) except exception.InvalidParameterValue as ex: raise exc.HTTPNotFound(explanation=ex.msg)
def _allocate_pool_machines(self, req, id, body): context = req.environ['coriolis.context'] context.can( minion_pool_policies.get_minion_pools_policy_label( "allocate_machines")) try: return minion_pool_tasks_execution_view.single( req, self.minion_pool_api.allocate_machines(context, id)) except exception.NotFound as ex: raise exc.HTTPNotFound(explanation=ex.msg) except exception.InvalidParameterValue as ex: raise exc.HTTPNotFound(explanation=ex.msg)
def _tear_down_shared_resources(self, req, id, body): context = req.environ['coriolis.context'] context.can( minion_pool_policies.get_minion_pools_policy_label( "tear_down_shared_resources")) force = (body["tear-down-shared-resources"] or {}).get("force", False) try: return minion_pool_tasks_execution_view.single( req, self.minion_pool_api.tear_down_shared_pool_resources( context, id, force=force)) except exception.NotFound as ex: raise exc.HTTPNotFound(explanation=ex.msg) except exception.InvalidParameterValue as ex: raise exc.HTTPNotFound(explanation=ex.msg)
def _deallocate_pool(self, req, id, body): context = req.environ['coriolis.context'] context.can( minion_pool_policies.get_minion_pools_policy_label("deallocate")) force = (body["deallocate"] or {}).get("force", False) try: return minion_pool_view.single( req, self.minion_pool_api.deallocate_minion_pool(context, id, force=force)) except exception.NotFound as ex: raise exc.HTTPNotFound(explanation=ex.msg) except exception.InvalidParameterValue as ex: raise exc.HTTPNotFound(explanation=ex.msg)
def index(self, req): context = req.environ["coriolis.context"] context.can(pools_policies.get_minion_pools_policy_label("list")) return minion_pool_view.collection( req, self._minion_pool_api.get_minion_pools(context))