
This patch resolves the issues with the gate by passing the tests that are trying to use the old keystoneauth plugins. This is not the correct fix, but it get's us past the gate issues. We need to look at deprecating python-keystoneclient. Change-Id: I6bd85d18432d0d077e774fcd51a6ba40d1d66be0
126 lines
3.9 KiB
Python
126 lines
3.9 KiB
Python
# Copyright 2011 OpenStack Foundation
|
|
# 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 Policy(base.Resource):
|
|
"""Represents an Identity policy.
|
|
|
|
Attributes:
|
|
* id: a uuid that identifies the policy
|
|
* blob: a policy document (blob)
|
|
* type: the MIME type of the policy blob
|
|
|
|
"""
|
|
|
|
def update(self, blob=None, type=None):
|
|
kwargs = {
|
|
'blob': blob if blob is not None else self.blob,
|
|
'type': type if type is not None else self.type,
|
|
}
|
|
|
|
try:
|
|
retval = self.manager.update(self.id, **kwargs)
|
|
self = retval
|
|
except Exception:
|
|
retval = None
|
|
|
|
return retval
|
|
|
|
|
|
class PolicyManager(base.CrudManager):
|
|
"""Manager class for manipulating Identity policies."""
|
|
|
|
resource_class = Policy
|
|
collection_key = 'policies'
|
|
key = 'policy'
|
|
|
|
def create(self, blob, type='application/json', **kwargs):
|
|
"""Create a policy.
|
|
|
|
:param str blob: the policy document.
|
|
:param str type: the MIME type of the policy blob.
|
|
:param kwargs: any other attribute provided will be passed to the
|
|
server.
|
|
|
|
:returns: the created policy returned from server.
|
|
:rtype: :class:`keystoneclient.v3.policies.Policy`
|
|
|
|
"""
|
|
return super(PolicyManager, self).create(
|
|
blob=blob,
|
|
type=type,
|
|
**kwargs)
|
|
|
|
def get(self, policy):
|
|
"""Retrieve a policy.
|
|
|
|
:param policy: the policy to be retrieved from the server.
|
|
:type policy: str or :class:`keystoneclient.v3.policies.Policy`
|
|
|
|
:returns: the specified policy returned from server.
|
|
:rtype: :class:`keystoneclient.v3.policies.Policy`
|
|
|
|
"""
|
|
return super(PolicyManager, self).get(
|
|
policy_id=base.getid(policy))
|
|
|
|
def list(self, **kwargs):
|
|
"""List policies.
|
|
|
|
:param kwargs: allows filter criteria to be passed where
|
|
supported by the server.
|
|
|
|
:returns: a list of policies.
|
|
:rtype: list of :class:`keystoneclient.v3.policies.Policy`.
|
|
|
|
"""
|
|
return super(PolicyManager, self).list(**kwargs)
|
|
|
|
def update(self, policy, blob=None, type=None, **kwargs):
|
|
"""Update a policy.
|
|
|
|
:param policy: the policy to be updated on the server.
|
|
:type policy: str or :class:`keystoneclient.v3.policies.Policy`
|
|
:param str blob: the new policy document.
|
|
:param str type: the new MIME type of the policy blob.
|
|
:param kwargs: any other attribute provided will be passed to the
|
|
server.
|
|
|
|
:returns: the updated policy returned from server.
|
|
:rtype: :class:`keystoneclient.v3.policies.Policy`
|
|
|
|
"""
|
|
return super(PolicyManager, self).update(
|
|
policy_id=base.getid(policy),
|
|
blob=blob,
|
|
type=type,
|
|
**kwargs)
|
|
|
|
def delete(self, policy):
|
|
"""Delete a policy.
|
|
|
|
:param policy: the policy to be deleted on the server.
|
|
:type policy: str or :class:`keystoneclient.v3.policies.Policy`
|
|
|
|
:returns: Response object with 204 status.
|
|
:rtype: :class:`requests.models.Response`
|
|
|
|
"""
|
|
return super(PolicyManager, self).delete(
|
|
policy_id=base.getid(policy))
|