Exemple #1
0
 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))
Exemple #2
0
    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)
Exemple #3
0
 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)
Exemple #4
0
 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)
Exemple #9
0
 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))