예제 #1
0
def authorize(context, action_name):
    extensions.os_compute_authorizer(ALIAS)(context, action=action_name)
예제 #2
0
#    License for the specific language governing permissions and limitations
#    under the License.

import webob

from jacket.api.compute.openstack.compute.schemas import flavor_manage
from jacket.api.compute.openstack.compute.views import flavors as flavors_view
from jacket.api.compute.openstack import extensions
from jacket.api.compute.openstack import wsgi
from jacket.api.compute import validation
from jacket.compute.cloud import flavors
from jacket.compute import exception

ALIAS = "os-flavor-manage"

authorize = extensions.os_compute_authorizer(ALIAS)


class FlavorManageController(wsgi.Controller):
    """The Flavor Lifecycle API controller for the OpenStack API."""
    _view_builder_class = flavors_view.ViewBuilderV21

    def __init__(self):
        super(FlavorManageController, self).__init__()

    # NOTE(oomichi): Return 202 for backwards compatibility but should be
    # 204 as this operation complete the deletion of aggregate resource and
    # return no response body.
    @wsgi.response(202)
    @extensions.expected_errors((404))
    @wsgi.action("delete")
예제 #3
0
 def test_os_compute_api_authorizer_throws_exception_if_policy_fails(self):
     authorize = base_extensions.os_compute_authorizer(
         'used_limits_for_admin')
     self._test_extension_authorizer_throws_exception_if_policy_fails(
         "os_compute_api:used_limits_for_admin",
         authorize)
예제 #4
0
파일: shelve.py 프로젝트: bopopescu/jacket
#   distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#   WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#   License for the specific language governing permissions and limitations
#   under the License.
"""The shelved mode extension."""

from webob import exc

from jacket.api.compute.openstack import common
from jacket.api.compute.openstack import extensions as exts
from jacket.api.compute.openstack import wsgi
from jacket.compute import cloud
from jacket.compute import exception

ALIAS = 'os-shelve'
authorize = exts.os_compute_authorizer(ALIAS)


class ShelveController(wsgi.Controller):
    def __init__(self, *args, **kwargs):
        super(ShelveController, self).__init__(*args, **kwargs)
        self.compute_api = cloud.API(skip_policy_check=True)

    @wsgi.response(202)
    @exts.expected_errors((404, 409))
    @wsgi.action('shelve')
    def _shelve(self, req, id, body):
        """Move an instance into shelved mode."""
        context = req.environ["compute.context"]
        authorize(context, action='shelve')
예제 #5
0
 def test_os_compute_api_authorizer_throws_exception_if_policy_fails(self):
     authorize = base_extensions.os_compute_authorizer(
         'used_limits_for_admin')
     self._test_extension_authorizer_throws_exception_if_policy_fails(
         "os_compute_api:used_limits_for_admin", authorize)
예제 #6
0
from jacket.api.compute.openstack import api_version_request
from jacket.api.compute.openstack import common
from jacket.api.compute.openstack.compute.schemas import volumes as volumes_schema
from jacket.api.compute.openstack import extensions
from jacket.api.compute.openstack import wsgi
from jacket.api.compute import validation
from jacket.compute import cloud
from jacket.compute.cloud import vm_states
from jacket.compute import exception
from jacket.i18n import _
from jacket.objects import compute as objects
from jacket.compute import volume

ALIAS = "os-volumes"
authorize = extensions.os_compute_authorizer(ALIAS)
authorize_attach = extensions.os_compute_authorizer('os-volumes-attachments')


def _translate_volume_detail_view(context, vol):
    """Maps keys for volumes details view."""

    d = _translate_volume_summary_view(context, vol)

    # No additional data / lookups at the moment

    return d


def _translate_volume_summary_view(context, vol):
    """Maps keys for volumes summary view."""
예제 #7
0
def authorize(context, action_name):
    extensions.os_compute_authorizer(ALIAS)(context, action=action_name)