From 4e0032f8bb6b73171f9744ed42d941827d3e8004 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Sun, 30 Apr 2017 22:07:21 +0000 Subject: [PATCH] support querying available volumes by name Change-Id: I120926424b5b07d8adfb7bb701bd8b2ef66013a0 Signed-off-by: Doug Hellmann --- downpour/query.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/downpour/query.py b/downpour/query.py index 199c3bf..08fc4f4 100644 --- a/downpour/query.py +++ b/downpour/query.py @@ -27,6 +27,7 @@ class ResourceFileEditor: self._resources = resources.load(filename, missing_ok=True) self._servers = set(s.name for s in self._resources.servers) self._images = set(i.name for i in self._resources.images) + self._volumes = set(v.name for v in self._resources.volumes) def add_server(self, info): if info.name in self._servers: @@ -46,6 +47,15 @@ class ResourceFileEditor: 'name': info.name, }) + def add_volume(self, info): + if info.name in self._volumes: + return + LOG.info('found volume %s to export', info.name) + self._resources.volumes.append({ + 'name': info.name, + 'save_state': self._save_state, + }) + def save(self): resources.save(self._filename, self._resources) @@ -83,6 +93,12 @@ def register_command(subparsers): default=[], help='pattern to match against image names', ) + do_query.add_argument( + '--volume-name', + action='append', + default=[], + help='pattern to match against volume names', + ) do_query.set_defaults(func=query_data) @@ -105,4 +121,14 @@ def query_data(cloud, config, args): for info in cloud.search_images(name_or_id=pattern): editor.add_image(info) + for pattern in args.volume_name: + LOG.info('searching for available volumes matching pattern %r', + pattern) + for info in cloud.search_volumes( + name_or_id=pattern, + filters={ + 'status': 'available', + }): + editor.add_volume(info) + editor.save()