v3 Credential CRUD

Change-Id: I646ff7db3ccf827f912ebdb78fdf8d765d52c26c
This commit is contained in:
Dolph Mathews 2012-09-11 15:42:38 -05:00 committed by Gerrit Code Review
parent 298b1c4903
commit 6c84d7bf85
3 changed files with 81 additions and 0 deletions

@ -16,6 +16,7 @@ import json
import logging import logging
from keystoneclient.v2_0 import client from keystoneclient.v2_0 import client
from keystoneclient.v3 import credentials
from keystoneclient.v3 import endpoints from keystoneclient.v3 import endpoints
from keystoneclient.v3 import domains from keystoneclient.v3 import domains
from keystoneclient.v3 import policies from keystoneclient.v3 import policies
@ -64,6 +65,7 @@ class Client(client.Client):
""" Initialize a new client for the Keystone v2.0 API. """ """ Initialize a new client for the Keystone v2.0 API. """
super(Client, self).__init__(endpoint=endpoint, **kwargs) super(Client, self).__init__(endpoint=endpoint, **kwargs)
self.credentials = credentials.CredentialManager(self)
self.endpoints = endpoints.EndpointManager(self) self.endpoints = endpoints.EndpointManager(self)
self.domains = domains.DomainManager(self) self.domains = domains.DomainManager(self)
self.policies = policies.PolicyManager(self) self.policies = policies.PolicyManager(self)

@ -0,0 +1,57 @@
# Copyright 2011 OpenStack LLC.
# Copyright 2011 Nebula, Inc.
# 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.
from keystoneclient import base
class Credential(base.Resource):
"""Represents an Identity credential.
Attributes:
* id: a uuid that identifies the credential
"""
pass
class CredentialManager(base.CrudManager):
"""Manager class for manipulating Identity credentials."""
resource_class = Credential
collection_key = 'credentials'
key = 'credential'
def create(self, user, type, data, project=None):
return super(CredentialManager, self).create(
user_id=base.getid(user),
type=type,
data=data,
project_id=base.getid(project))
def get(self, credential):
return super(CredentialManager, self).get(
credential_id=base.getid(credential))
def update(self, credential, user, type=None, data=None, project=None):
return super(CredentialManager, self).update(
credential_id=base.getid(credential),
user_id=base.getid(user),
type=type,
data=data,
project_id=base.getid(project))
def delete(self, credential):
return super(CredentialManager, self).delete(
credential_id=base.getid(credential))

@ -0,0 +1,22 @@
import uuid
from keystoneclient.v3 import credentials
from tests.v3 import utils
class CredentialTests(utils.TestCase, utils.CrudTests):
def setUp(self):
super(CredentialTests, self).setUp()
self.additionalSetUp()
self.key = 'credential'
self.collection_key = 'credentials'
self.model = credentials.Credential
self.manager = self.client.credentials
def new_ref(self, **kwargs):
kwargs = super(CredentialTests, self).new_ref(**kwargs)
kwargs.setdefault('data', uuid.uuid4().hex)
kwargs.setdefault('project_id', uuid.uuid4().hex)
kwargs.setdefault('type', uuid.uuid4().hex)
kwargs.setdefault('user_id', uuid.uuid4().hex)
return kwargs