Use base context and uuidutils in oslo utils

Change-Id: Id4ede2ce4bf33038e130c292a56db966f064304d
Partial-bug: #1552282
This commit is contained in:
gong yong sheng 2016-06-09 12:19:57 +08:00
parent 57de373803
commit cdf455bde8
7 changed files with 6 additions and 123 deletions

View File

@ -25,6 +25,7 @@ six>=1.9.0 # MIT
stevedore>=1.10.0 # Apache-2.0
oslo.concurrency>=3.8.0 # Apache-2.0
oslo.config>=3.10.0 # Apache-2.0
oslo.context>=2.4.0 # Apache-2.0
oslo.db>=4.1.0 # Apache-2.0
oslo.log>=1.14.0 # Apache-2.0
oslo.messaging>=5.2.0 # Apache-2.0

View File

@ -17,11 +17,11 @@ import re
import netaddr
from oslo_log import log as logging
from oslo_utils import uuidutils
from six import iteritems
from tacker.common import constants
from tacker.common import exceptions as n_exc
from tacker.openstack.common import uuidutils
LOG = logging.getLogger(__name__)

View File

@ -18,10 +18,10 @@
import copy
import datetime
from oslo_context import context as oslo_context
from oslo_log import log as logging
from tacker.db import api as db_api
from tacker.openstack.common import context as common_context
from tacker.openstack.common import local
from tacker import policy
@ -29,7 +29,7 @@ from tacker import policy
LOG = logging.getLogger(__name__)
class ContextBase(common_context.RequestContext):
class ContextBase(oslo_context.RequestContext):
"""Security context and request information.
Represents the user taking a given action within the system.

View File

@ -13,10 +13,10 @@
# License for the specific language governing permissions and limitations
# under the License.
from oslo_utils import uuidutils
import sqlalchemy as sa
from tacker.db import types
from tacker.openstack.common import uuidutils
class HasTenant(object):

View File

@ -1,81 +0,0 @@
# Copyright 2011 OpenStack Foundation.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# 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.
"""
Simple class that stores security context information in the web request.
Projects should subclass this class if they wish to enhance the request
context or provide additional information in their specific WSGI pipeline.
"""
import itertools
from tacker.openstack.common import uuidutils
def generate_request_id():
return 'req-%s' % uuidutils.generate_uuid()
class RequestContext(object):
"""Helper class to represent useful information about a request context.
Stores information about the security context under which the user
accesses the system, as well as additional request information.
"""
def __init__(self, auth_token=None, user=None, tenant=None, is_admin=False,
read_only=False, show_deleted=False, request_id=None):
self.auth_token = auth_token
self.user = user
self.tenant = tenant
self.is_admin = is_admin
self.read_only = read_only
self.show_deleted = show_deleted
if not request_id:
request_id = generate_request_id()
self.request_id = request_id
def to_dict(self):
return {'user': self.user,
'tenant': self.tenant,
'is_admin': self.is_admin,
'read_only': self.read_only,
'show_deleted': self.show_deleted,
'auth_token': self.auth_token,
'request_id': self.request_id}
def get_admin_context(show_deleted="no"):
context = RequestContext(None,
tenant=None,
is_admin=True,
show_deleted=show_deleted)
return context
def get_context_from_function_and_args(function, args, kwargs):
"""Find an arg of type RequestContext and return it.
This is useful in a couple of decorators where we don't
know much about the function we're wrapping.
"""
for arg in itertools.chain(kwargs.values(), args):
if isinstance(arg, RequestContext):
return arg
return None

View File

@ -1,37 +0,0 @@
# Copyright (c) 2012 Intel Corporation.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# 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.
"""
UUID related utilities and helper functions.
"""
import uuid
def generate_uuid():
return str(uuid.uuid4())
def is_uuid_like(val):
"""Returns validation of a value as a UUID.
For our purposes, a UUID is a canonical form string:
aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
"""
try:
return str(uuid.UUID(val)) == val
except (TypeError, ValueError, AttributeError):
return False

View File

@ -17,6 +17,7 @@ import os
import mock
from oslo_config import cfg
from oslo_utils import uuidutils
import six
import six.moves.urllib.parse as urlparse
import webob
@ -32,7 +33,6 @@ from tacker.common import exceptions as n_exc
from tacker import context
from tacker import manager
from tacker.openstack.common import policy as common_policy
from tacker.openstack.common import uuidutils
from tacker import policy
from tacker.tests import base
from tacker.tests import fake_notifier