Repository URL to install this package:
| 
      
     
      
        
        
        Version: 
        
         
  
        
    
          
          4.2.54-4.2  ▾
        
         
  
      
        
      
  
      
  
     | 
# Copyright 2018 TrilioData Inc.
# All Rights Reserved.
import copy
from oslo_log import log as logging
import oslo_messaging as messaging
from oslo_utils import strutils
from oslo_utils import timeutils
from oslo_utils import uuidutils
import six
import webob
from webob import exc
from dmapi.api.openstack import api_version_request
from dmapi.api.openstack import common
from dmapi.api.openstack.dm.schemas import servers as schema_servers
from dmapi.api.openstack import wsgi
from dmapi.api import validation
import dmapi.conf
from dmapi import context as dmapi_context
from dmapi import exception
from dmapi.policies import servers as server_policies
from dmapi import utils
TAG_SEARCH_FILTERS = ('tags', 'tags-any', 'not-tags', 'not-tags-any')
DEVICE_TAGGING_MIN_COMPUTE_VERSION = 14
CONF = dmapi.conf.CONF
LOG = logging.getLogger(__name__)
class ServersController(wsgi.Controller):
    """The Server API base controller class for the DM API."""
    def __init__(self, **kwargs):
        super(ServersController, self).__init__(**kwargs)
        self.dm_api = None
    @wsgi.response(202)
    @wsgi.expected_errors((404, 409))
    @wsgi.action('reboot')
    @validation.schema(schema_servers.reboot)
    def _action_reboot(self, req, id, body):
        reboot_type = body['reboot']['type'].upper()
        context = req.environ['dmapi.context']
        context.can(server_policies.SERVERS % 'reboot')
        instance = self._get_server(context, req, id)
        try:
            self.dm_api.reboot(context, instance, reboot_type)
        except exception.InstanceIsLocked as e:
            raise exc.HTTPConflict(explanation=e.format_message())
        except exception.InstanceInvalidState as state_error:
            common.raise_http_conflict_for_instance_invalid_state(state_error,
                    'reboot', id)