diff --git a/ara/cli/record.py b/ara/cli/record.py index 645419b5..3a2a1beb 100644 --- a/ara/cli/record.py +++ b/ara/cli/record.py @@ -5,6 +5,7 @@ import logging import os import sys +from cliff.command import Command from cliff.lister import Lister from cliff.show import ShowOne @@ -138,3 +139,34 @@ class RecordShow(ShowOne): ) # fmt: on return (columns, ([record[column] for column in columns])) + + +class RecordDelete(Command): + """ Deletes the specified record and associated resources """ + + log = logging.getLogger(__name__) + + def get_parser(self, prog_name): + parser = super(RecordDelete, self).get_parser(prog_name) + parser = global_arguments(parser) + # fmt: off + parser.add_argument( + "record_id", + metavar="", + help="Record to delete", + ) + # fmt: on + return parser + + def take_action(self, args): + client = get_client( + client=args.client, + endpoint=args.server, + timeout=args.timeout, + username=args.username, + password=args.password, + verify=False if args.insecure else True, + ) + + # TODO: Improve client to be better at handling exceptions + client.delete("/api/v1/records/%s" % args.record_id) diff --git a/doc/source/cli.rst b/doc/source/cli.rst index 6938493b..538cd59e 100644 --- a/doc/source/cli.rst +++ b/doc/source/cli.rst @@ -203,6 +203,11 @@ Examples: # Show a specific record and format the results as json ara record show 9001 -f json +ara record delete +----------------- + +.. command-output:: ara record delete --help + ara result list --------------- diff --git a/setup.cfg b/setup.cfg index c4e85715..7ba50ecc 100644 --- a/setup.cfg +++ b/setup.cfg @@ -46,6 +46,7 @@ ara.cli = host delete = ara.cli.host:HostDelete record list = ara.cli.record:RecordList record show = ara.cli.record:RecordShow + record delete = ara.cli.record:RecordDelete result list = ara.cli.result:ResultList result show = ara.cli.result:ResultShow result delete = ara.cli.result:ResultDelete