Add command to list openstack containers 75/14075/2
authorThanh Ha <thanh.ha@linuxfoundation.org>
Fri, 4 Jan 2019 17:58:00 +0000 (12:58 -0500)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Sun, 10 Feb 2019 18:28:19 +0000 (13:28 -0500)
Change-Id: I5586888ba7c418f92ddc90727f349f695cd6d67d
Signed-off-by: Thanh Ha <thanh.ha@linuxfoundation.org>
docs/commands/openstack.rst
lftools/openstack/cmd.py
lftools/openstack/object.py [new file with mode: 0644]
releasenotes/notes/openstack-object-list-containers-ef156a5351bc6d5f.yaml [new file with mode: 0644]

index fefa86e..aeffa8f 100644 (file)
@@ -32,6 +32,18 @@ list
 
 .. program-output:: lftools openstack --os-cloud docs image list --help
 
+object
+------
+
+Command for managing objects.
+
+.. program-output:: lftools openstack --os-cloud docs object --help
+
+list-containers
+^^^^^^^^^^^^^^^
+
+.. program-output:: lftools openstack --os-cloud docs object list-containers --help
+
 stack
 -----
 
index 522eca0..8437dd0 100644 (file)
@@ -16,6 +16,7 @@ __author__ = 'Thanh Ha'
 import click
 
 from lftools.openstack import image as os_image
+from lftools.openstack import object as os_object
 from lftools.openstack import server as os_server
 from lftools.openstack import stack as os_stack
 from lftools.openstack import volume as os_volume
@@ -109,6 +110,23 @@ image.add_command(share)
 image.add_command(upload)
 
 
+@openstack.group()
+@click.pass_context
+def object(ctx):
+    """Command for manipulating objects."""
+    pass
+
+
+@click.command()
+@click.pass_context
+def list_containers(ctx):
+    """List available containers."""
+    os_object.list_containers(ctx.obj['os_cloud'])
+
+
+object.add_command(list_containers)
+
+
 @openstack.group()
 @click.pass_context
 def server(ctx):
diff --git a/lftools/openstack/object.py b/lftools/openstack/object.py
new file mode 100644 (file)
index 0000000..864aa6f
--- /dev/null
@@ -0,0 +1,24 @@
+# -*- code: utf-8 -*-
+# SPDX-License-Identifier: EPL-1.0
+##############################################################################
+# Copyright (c) 2019 The Linux Foundation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+##############################################################################
+"""Object related sub-commands for openstack command."""
+
+__author__ = 'Thanh Ha'
+
+import shade
+
+
+def list_containers(os_cloud):
+    """List volumes found according to parameters."""
+    cloud = shade.openstack_cloud(cloud=os_cloud)
+    containers = cloud.list_containers()
+
+    for container in containers:
+        print(container)
diff --git a/releasenotes/notes/openstack-object-list-containers-ef156a5351bc6d5f.yaml b/releasenotes/notes/openstack-object-list-containers-ef156a5351bc6d5f.yaml
new file mode 100644 (file)
index 0000000..484a597
--- /dev/null
@@ -0,0 +1,10 @@
+---
+features:
+  - |
+    Add command to list openstack containers.
+
+    Usage:
+
+    .. code-block:: bash
+
+       lftools openstack --os-cloud example object list-containers