Fixed glaringly obvious issues with core auth

* Added missing licenses
* Added missing super calls to base class for some models
* Definitely other issues to address that I'm noting for
  later (non-pythonic variable names, etc)

Change-Id: I1054c4d95a350f4a4b94e20874ef704279ee904e
This commit is contained in:
Daryl Walleck
2013-09-11 19:19:09 -05:00
parent 13fea14a1b
commit dbe1e40cbc
8 changed files with 78 additions and 15 deletions

View File

@@ -0,0 +1,15 @@
"""
Copyright 2013 Rackspace
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.
"""

View File

@@ -1,3 +1,19 @@
"""
Copyright 2013 Rackspace
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.
"""
from cloudcafe.common.models.configuration import ConfigSectionInterface

View File

@@ -1,3 +1,19 @@
"""
Copyright 2013 Rackspace
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.
"""
from cloudcafe.extensions.rax_auth.v2_0.tokens_api.client import \
TokenAPI_Client as RaxTokenAPI_Client
from cloudcafe.extensions.rax_auth.v2_0.tokens_api.behaviors import \

View File

@@ -25,15 +25,24 @@ class BaseIdentityModel(AutoMarshallingModel):
@classmethod
def _remove_identity_xml_namespaces(cls, element):
cls._remove_namespace(element, V2_0Constants.XML_NS)
cls._remove_namespace(element, V2_0Constants.XML_NS_OS_KSADM)
cls._remove_namespace(element, V2_0Constants.XML_NS_RAX_KSKEY)
cls._remove_namespace(element, V2_0Constants.XML_NS_OS_KSEC2)
cls._remove_namespace(element, V2_0Constants.XML_NS_RAX_KSQA)
cls._remove_namespace(element, V2_0Constants.XML_NS_RAX_AUTH)
cls._remove_namespace(element, V2_0Constants.XML_NS_RAX_KSGRP)
cls._remove_namespace(element, V2_0Constants.XML_NS_OPENSTACK_COMMON)
cls._remove_namespace(element, V2_0Constants.XML_NS_ATOM)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_OS_KSADM)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_RAX_KSKEY)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_OS_KSEC2)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_RAX_KSQA)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_RAX_AUTH)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_RAX_KSGRP)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_OPENSTACK_COMMON)
cls._remove_xml_etree_namespace(
element, V2_0Constants.XML_NS_ATOM)
class BaseIdentityListModel(AutoMarshallingListModel):

View File

@@ -31,6 +31,7 @@ class Auth(BaseIdentityModel):
def __init__(self, apiKeyCredentials=None,
tenantId=None, token=None):
super(Auth, self).__init__()
self.apiKeyCredentials = apiKeyCredentials
self.token = token
self.tenantId = tenantId

View File

@@ -24,6 +24,7 @@ class Access(BaseIdentityModel):
TAG = 'access'
def __init__(self):
super(Access, self).__init__()
self.metadata = {}
self.service_catalog = ServiceCatalog()
self.user = User()
@@ -68,6 +69,7 @@ class ServiceCatalog(BaseIdentityListModel):
class Service(BaseIdentityModel):
def __init__(self):
super(Service, self).__init__()
self.endpoints = EndpointList()
self.endpoint_links = []
self.name = None
@@ -112,6 +114,7 @@ class Endpoint(BaseIdentityModel):
def __init__(self, admin_url, internal_url, public_url,
region, id, tenant_id=None):
super(Endpoint, self).__init__()
self.admin_url = admin_url
self.internal_url = internal_url
self.public_url = public_url
@@ -134,6 +137,7 @@ class Token(BaseIdentityModel):
TAG = 'token'
def __init__(self):
super(Token, self).__init__()
self.expires = None
self.issued_at = None
self.id_ = None
@@ -154,6 +158,7 @@ class Tenant(BaseIdentityModel):
TAG = 'tenant'
def __init__(self):
super(Tenant, self).__init__()
self.description = None
self.enabled = None
self.id_ = None
@@ -174,6 +179,7 @@ class User(BaseIdentityModel):
TAG = 'user'
def __init__(self):
super(User, self).__init__()
self.id_ = None
self.name = None
self.roles = RoleList()
@@ -208,4 +214,5 @@ class RoleList(BaseIdentityListModel):
class Role(BaseIdentityListModel):
def __init__(self, name=None):
super(Role, self).__init__()
self.name = name

View File

@@ -60,7 +60,6 @@ class Endpoint(BaseIdentityModel):
def __init__(self, tenantId=None, region=None, id=None, publicURL=None,
name=None, adminURL=None, type=None, internalURL=None,
versionId=None, versionInfo=None, versionList=None):
# version=None
super(Endpoint, self).__init__()
self.tenantId = tenantId
self.region = region
@@ -73,9 +72,8 @@ class Endpoint(BaseIdentityModel):
self.versionId = versionId
self.versionInfo = versionInfo
self.versionList = versionList
#currently json has version attributes as part of the Endpoint
#xml has it as a seprate element.
# self.version = version
# currently json has version attributes as part of the Endpoint
# xml has it as a separate element.
@classmethod
def _json_to_obj(cls, serialized_str):
@@ -122,6 +120,7 @@ class Version(BaseIdentityModel):
ROOT_TAG = 'version'
def __init__(self, id=None, info=None, list=None):
super(Version, self).__init__()
self.id = id
self.info = info
self.list = list

View File

@@ -142,8 +142,8 @@ class User(BaseIdentityModel):
kwargs['enabled'] = json.loads(xml_ele.get('enabled').lower())
roles = xml_ele.find(Roles.ROOT_TAG)
if roles is not None:
#if roles is not a list it is a single element with a list of
#role elements
# if roles is not a list it is a single element with a list of
# role elements
roles = roles.findall(Role.ROOT_TAG)
if roles is not None:
kwargs['roles'] = Roles._xml_list_to_obj(roles)