mirror of https://github.com/OpenKMIP/PyKMIP.git
74 lines
2.7 KiB
Python
74 lines
2.7 KiB
Python
# Copyright (c) 2014 The Johns Hopkins University/Applied Physics Laboratory
|
|
# 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.
|
|
|
|
|
|
class ManagedObjectRepo(object):
|
|
"""Stores and manages KMIP managed objects.
|
|
|
|
The KMIP specification details the managed objects that are stored by a
|
|
KMIP server. This repository abstraction is an interface for KMIP servers
|
|
to store managed objects.
|
|
"""
|
|
|
|
def __init__(self):
|
|
pass
|
|
|
|
def save(self, managed_object, attributes):
|
|
"""Save a managed object
|
|
|
|
This saves a managed object into the repository and returns a UUID
|
|
string that can be used to reference the object in the repository.
|
|
:param managed_object: managed object to save from secrets.py
|
|
:param attributes: attributes to store with the managed object
|
|
:returns: a UUID string that can be used to retrieve the object later
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def get(self, uuid):
|
|
"""Retrieve a managed object
|
|
|
|
Retrieve a managed object from the repository. The UUID is used to
|
|
identify the managed object to return. The UUID is returned from the
|
|
save call.
|
|
|
|
A tuple is returned that contains the managed object and all of its
|
|
attributes.
|
|
:param uuid: UUID of the managed object
|
|
:returns: (managed_object, attributes) if object exists, otherwise
|
|
(None, None)
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def update(self, uuid, managed_object, attributes):
|
|
"""Updates a managed object
|
|
|
|
Updates the values for a managed_object.
|
|
:param uuid: UUID of the managed object
|
|
:param managed_object: managed object
|
|
:param attributes: attributes to store with the managed object
|
|
:returns: True if object existed and successfully updated, otherwise
|
|
False
|
|
"""
|
|
raise NotImplementedError
|
|
|
|
def delete(self, uuid):
|
|
"""Delete a managed object from the repository
|
|
|
|
Delete a managed object from the repository.
|
|
:param uuid: UUID of the managed object
|
|
:returns: True if successfully deleted, False if not found
|
|
"""
|
|
raise NotImplementedError
|