|
@@ -6,6 +6,7 @@ import io
|
|
|
import argparse
|
|
|
import requests
|
|
|
import ConfigParser
|
|
|
+import logging
|
|
|
from nova import memtar
|
|
|
|
|
|
|
|
@@ -51,6 +52,13 @@ class Config(object):
|
|
|
|
|
|
return '{}{}'.format(self.remote, u)
|
|
|
|
|
|
+ @property
|
|
|
+ def dataset_url(self):
|
|
|
+ if not self.id:
|
|
|
+ sys.exit("No identifier specified.")
|
|
|
+
|
|
|
+ return self.url('/api/datasets/{}'.format(self.id))
|
|
|
+
|
|
|
def __repr__(self):
|
|
|
return '<Config remote={}, token={}, id={}>'.format(self.remote, self.token, self.id)
|
|
|
|
|
@@ -68,7 +76,7 @@ def clone(config):
|
|
|
params = dict(token=config.token)
|
|
|
|
|
|
if not config.name:
|
|
|
- r = requests.get(config.url('/api/datasets/') + config.id, params=params)
|
|
|
+ r = requests.get(config.dataset_url, params=params)
|
|
|
name = r.json()['name']
|
|
|
else:
|
|
|
name = config.name
|
|
@@ -82,6 +90,15 @@ def clone(config):
|
|
|
config.write()
|
|
|
|
|
|
|
|
|
+def close(config):
|
|
|
+ params = dict(token=config.token)
|
|
|
+ data = dict( id=config.id, closed=True)
|
|
|
+ r = requests.put(config.dataset_url, params=params, data=data)
|
|
|
+
|
|
|
+ if r.status_code != 200:
|
|
|
+ logging.error(r.reason)
|
|
|
+
|
|
|
+
|
|
|
def init(config):
|
|
|
name = config.name if config.name else os.path.basename(os.path.abspath(os.curdir))
|
|
|
|
|
@@ -131,5 +148,8 @@ if __name__ == '__main__':
|
|
|
clone_parser.add_argument('--name', type=str, help="Alternative directory name")
|
|
|
clone_parser.set_defaults(run=clone)
|
|
|
|
|
|
+ close_parser = cmd_parsers.add_parser('close', help="Close dataset")
|
|
|
+ close_parser.set_defaults(run=close)
|
|
|
+
|
|
|
args = parser.parse_args()
|
|
|
args.run(Config(args))
|