diff --git a/kmip/demos/pie/get_attributes.py b/kmip/demos/pie/get_attributes.py new file mode 100644 index 0000000..864c478 --- /dev/null +++ b/kmip/demos/pie/get_attributes.py @@ -0,0 +1,53 @@ +# 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. + +import logging +import sys + +from kmip.core import enums +from kmip.demos import utils +from kmip.pie import client + + +if __name__ == '__main__': + logger = utils.build_console_logger(logging.INFO) + + # Build and parse arguments + parser = utils.build_cli_parser(enums.Operation.GET_ATTRIBUTES) + opts, args = parser.parse_args(sys.argv[1:]) + + config = opts.config + unique_identifier = opts.uuid + + attribute_names = [] + + # Build the client and connect to the server + with client.ProxyKmipClient(config=config) as client: + try: + retrieved_id, retrieved_attributes = client.get_attributes( + unique_identifier, + attribute_names + ) + logger.info( + "Successfully retrieved attributes for object: {0}".format( + retrieved_id + ) + ) + logger.info( + "Successfully retrieved {0} attributes:".format( + len(retrieved_attributes) + ) + ) + for attribute in retrieved_attributes: + logger.info("Attribute: {0}".format(attribute)) + except Exception as e: + logger.error(e) diff --git a/kmip/demos/utils.py b/kmip/demos/utils.py index 7212e0c..7e0c531 100644 --- a/kmip/demos/utils.py +++ b/kmip/demos/utils.py @@ -174,6 +174,15 @@ def build_cli_parser(operation=None): dest="format", help=("Format in which to retrieve the secret. Supported formats " "include: RAW, PKCS_1, PKCS_8, X_509")) + elif operation is Operation.GET_ATTRIBUTES: + parser.add_option( + "-i", + "--uuid", + action="store", + type="str", + default=None, + dest="uuid", + help="UUID of secret attributes to retrieve from the KMIP server") elif operation is Operation.GET_ATTRIBUTE_LIST: parser.add_option( "-i",