From 05316d56cb23af04b483bcc4e77be672a85f0920 Mon Sep 17 00:00:00 2001 From: Matthew Farrellee Date: Thu, 23 Jan 2014 08:20:04 -0500 Subject: [PATCH] Add job-binary-data-create to CLI The /job-binary-internals endpoint is used to store data in an internal Savanna data store for later retrieval when a job is run. It should only be used when Swift is not available. Implements: blueprint python-savannaclient-cli Change-Id: I8bb7ca72b3e3009a531cc06d20c2c70414c0ddde --- savannaclient/api/shell.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/savannaclient/api/shell.py b/savannaclient/api/shell.py index 45ce5c23..3b2e5950 100644 --- a/savannaclient/api/shell.py +++ b/savannaclient/api/shell.py @@ -14,6 +14,7 @@ # under the License. import argparse +import datetime import inspect import json from savannaclient.nova import utils @@ -489,6 +490,22 @@ def do_job_binary_data_list(cs, args): _show_job_binary_data(cs.job_binary_internals.list()) +@utils.arg('--file', + default=sys.stdin, + type=argparse.FileType('r'), + help='Data to store') +def do_job_binary_data_create(cs, args): + """Store data in Savanna's internal DB. + Use 'swift upload' instead of this command. + Use this command only if Swift is not available. + """ + # Should be %F-%T except for type validation errors + _show_job_binary_data((cs.job_binary_internals.create( + datetime.datetime.now().strftime('d%Y%m%d%H%M%S'), + args.file.read()),) + ) + + @utils.arg('--id', required=True, help='Id of internally stored job binary data')