[lxc-devel] [lxd/master] Bash completion update

stgraber on Github lxc-bot at linuxcontainers.org
Wed Oct 18 19:31:52 UTC 2017


A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 301 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20171018/56941f80/attachment.bin>
-------------- next part --------------
From b9c2935e4f87b498c75234316f1685c601dc8ef6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 18 Oct 2017 15:03:23 -0400
Subject: [PATCH 1/6] doc: Fix markdown escaping
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 doc/server.md | 32 ++++++++++++++++----------------
 1 file changed, 16 insertions(+), 16 deletions(-)

diff --git a/doc/server.md b/doc/server.md
index 27adb2bf4..4725233a5 100644
--- a/doc/server.md
+++ b/doc/server.md
@@ -7,22 +7,22 @@ currently supported:
  - `core` (core daemon configuration)
  - `images` (image configuration)
 
-Key                             | Type      | Default   | API extension           | Description
-:--                             | :---      | :------   | :------------           | :----------
-core.macaroon.endpoint          | string    | -         | macaroon_authentication | URL of the the external authentication endpoint using Macaroons
-core.https\_address             | string    | -         | -                       | Address to bind for the remote API
-core.https\_allowed\_headers    | string    | -         | -                       | Access-Control-Allow-Headers http header value
-core.https\_allowed\_methods    | string    | -         | -                       | Access-Control-Allow-Methods http header value
-core.https\_allowed\_origin     | string    | -         | -                       | Access-Control-Allow-Origin http header value
-core.https\_allowed\_credentials| boolean   | -         | -                       | Whether to set Access-Control-Allow-Credentials http header value to "true"
-core.proxy\_http                | string    | -         | -                       | http proxy to use, if any (falls back to HTTP\_PROXY environment variable)
-core.proxy\_https               | string    | -         | -                       | https proxy to use, if any (falls back to HTTPS\_PROXY environment variable)
-core.proxy\_ignore\_hosts       | string    | -         | -                       | hosts which don't need the proxy for use (similar format to NO\_PROXY, e.g. 1.2.3.4,1.2.3.5, falls back to NO\_PROXY environment variable)
-core.trust\_password            | string    | -         | -                       | Password to be provided by clients to setup a trust
-images.auto\_update\_cached     | boolean   | true      | -                       | Whether to automatically update any image that LXD caches
-images.auto\_update\_interval   | integer   | 6         | -                       | Interval in hours at which to look for update to cached images (0 disables it)
-images.compression\_algorithm   | string    | gzip      | -                       | Compression algorithm to use for new images (bzip2, gzip, lzma, xz or none)
-images.remote\_cache\_expiry    | integer   | 10        | -                       | Number of days after which an unused cached remote image will be flushed
+Key                             | Type      | Default   | API extension            | Description
+:--                             | :---      | :------   | :------------            | :----------
+core.macaroon.endpoint          | string    | -         | macaroon\_authentication | URL of the the external authentication endpoint using Macaroons
+core.https\_address             | string    | -         | -                        | Address to bind for the remote API
+core.https\_allowed\_headers    | string    | -         | -                        | Access-Control-Allow-Headers http header value
+core.https\_allowed\_methods    | string    | -         | -                        | Access-Control-Allow-Methods http header value
+core.https\_allowed\_origin     | string    | -         | -                        | Access-Control-Allow-Origin http header value
+core.https\_allowed\_credentials| boolean   | -         | -                        | Whether to set Access-Control-Allow-Credentials http header value to "true"
+core.proxy\_http                | string    | -         | -                        | http proxy to use, if any (falls back to HTTP\_PROXY environment variable)
+core.proxy\_https               | string    | -         | -                        | https proxy to use, if any (falls back to HTTPS\_PROXY environment variable)
+core.proxy\_ignore\_hosts       | string    | -         | -                        | hosts which don't need the proxy for use (similar format to NO\_PROXY, e.g. 1.2.3.4,1.2.3.5, falls back to NO\_PROXY environment variable)
+core.trust\_password            | string    | -         | -                        | Password to be provided by clients to setup a trust
+images.auto\_update\_cached     | boolean   | true      | -                        | Whether to automatically update any image that LXD caches
+images.auto\_update\_interval   | integer   | 6         | -                        | Interval in hours at which to look for update to cached images (0 disables it)
+images.compression\_algorithm   | string    | gzip      | -                        | Compression algorithm to use for new images (bzip2, gzip, lzma, xz or none)
+images.remote\_cache\_expiry    | integer   | 10        | -                        | Number of days after which an unused cached remote image will be flushed
 
 Those keys can be set using the lxc tool with:
 

From 1747ed4a224806aae2b332fa7355272af8041cf5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 18 Oct 2017 15:03:50 -0400
Subject: [PATCH 2/6] doc: Sort server.md config keys
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 doc/server.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/doc/server.md b/doc/server.md
index 4725233a5..ab565b7c0 100644
--- a/doc/server.md
+++ b/doc/server.md
@@ -9,14 +9,14 @@ currently supported:
 
 Key                             | Type      | Default   | API extension            | Description
 :--                             | :---      | :------   | :------------            | :----------
-core.macaroon.endpoint          | string    | -         | macaroon\_authentication | URL of the the external authentication endpoint using Macaroons
 core.https\_address             | string    | -         | -                        | Address to bind for the remote API
+core.https\_allowed\_credentials| boolean   | -         | -                        | Whether to set Access-Control-Allow-Credentials http header value to "true"
 core.https\_allowed\_headers    | string    | -         | -                        | Access-Control-Allow-Headers http header value
 core.https\_allowed\_methods    | string    | -         | -                        | Access-Control-Allow-Methods http header value
 core.https\_allowed\_origin     | string    | -         | -                        | Access-Control-Allow-Origin http header value
-core.https\_allowed\_credentials| boolean   | -         | -                        | Whether to set Access-Control-Allow-Credentials http header value to "true"
-core.proxy\_http                | string    | -         | -                        | http proxy to use, if any (falls back to HTTP\_PROXY environment variable)
+core.macaroon.endpoint          | string    | -         | macaroon\_authentication | URL of the the external authentication endpoint using Macaroons
 core.proxy\_https               | string    | -         | -                        | https proxy to use, if any (falls back to HTTPS\_PROXY environment variable)
+core.proxy\_http                | string    | -         | -                        | http proxy to use, if any (falls back to HTTP\_PROXY environment variable)
 core.proxy\_ignore\_hosts       | string    | -         | -                        | hosts which don't need the proxy for use (similar format to NO\_PROXY, e.g. 1.2.3.4,1.2.3.5, falls back to NO\_PROXY environment variable)
 core.trust\_password            | string    | -         | -                        | Password to be provided by clients to setup a trust
 images.auto\_update\_cached     | boolean   | true      | -                        | Whether to automatically update any image that LXD caches

From b3a94124dda2433938f3b76f71d4ecdd9b1b3043 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 18 Oct 2017 15:07:31 -0400
Subject: [PATCH 3/6] doc: Sort container config keys
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 doc/containers.md | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/doc/containers.md b/doc/containers.md
index c5a72bea9..4425c6f1c 100644
--- a/doc/containers.md
+++ b/doc/containers.md
@@ -42,17 +42,17 @@ limits.network.priority              | integer   | 0 (minimum)   | yes
 limits.processes                     | integer   | - (max)       | yes           | -                                    | Maximum number of processes that can run in the container
 linux.kernel\_modules                | string    | -             | yes           | -                                    | Comma separated list of kernel modules to load before starting the container
 raw.apparmor                         | blob      | -             | yes           | -                                    | Apparmor profile entries to be appended to the generated profile
+raw.idmap                            | blob      | -             | no            | id\_map                              | Raw idmap configuration (e.g. "both 1000 1000")
 raw.lxc                              | blob      | -             | no            | -                                    | Raw LXC configuration to be appended to the generated one
 raw.seccomp                          | blob      | -             | no            | container\_syscall\_filtering        | Raw Seccomp configuration
-raw.idmap                            | blob      | -             | no            | id\_map                              | Raw idmap configuration (e.g. "both 1000 1000")
 security.idmap.base                  | integer   | -             | no            | id\_map\_base                        | The base host ID to use for the allocation (overrides auto-detection)
 security.idmap.isolated              | boolean   | false         | no            | id\_map                              | Use an idmap for this container that is unique among containers with isolated set.
 security.idmap.size                  | integer   | -             | no            | id\_map                              | The size of the idmap to use
 security.nesting                     | boolean   | false         | yes           | -                                    | Support running lxd (nested) inside the container
 security.privileged                  | boolean   | false         | no            | -                                    | Runs the container in privileged mode
-security.syscalls.blacklist\_default | boolean   | true          | no            | container\_syscall\_filtering        | Enables the default syscall blacklist
-security.syscalls.blacklist\_compat  | boolean   | false         | no            | container\_syscall\_filtering        | On x86\_64 this enables blocking of compat\_\* syscalls, it is a no-op on other arches
 security.syscalls.blacklist          | string    | -             | no            | container\_syscall\_filtering        | A '\n' separated list of syscalls to blacklist
+security.syscalls.blacklist\_compat  | boolean   | false         | no            | container\_syscall\_filtering        | On x86\_64 this enables blocking of compat\_\* syscalls, it is a no-op on other arches
+security.syscalls.blacklist\_default | boolean   | true          | no            | container\_syscall\_filtering        | Enables the default syscall blacklist
 security.syscalls.whitelist          | string    | -             | no            | container\_syscall\_filtering        | A '\n' separated list of syscalls to whitelist (mutually exclusive with security.syscalls.blacklist\*)
 user.\*                              | string    | -             | n/a           | -                                    | Free form user key/value storage (can be used in search)
 
@@ -60,9 +60,6 @@ The following volatile keys are currently internally used by LXD:
 
 Key                             | Type      | Default       | Description
 :--                             | :---      | :------       | :----------
-volatile.\<name\>.hwaddr        | string    | -             | Network device MAC address (when no hwaddr property is set on the device itself)
-volatile.\<name\>.name          | string    | -             | Network device name (when no name propery is set on the device itself)
-volatile.\<name\>.host\_name    | string    | -             | Network device name on the host (for nictype=bridged or nictype=p2p)
 volatile.apply\_quota           | string    | -             | Disk quota to be applied on next container start
 volatile.apply\_template        | string    | -             | The name of a template hook which should be triggered upon next startup
 volatile.base\_image            | string    | -             | The hash of the image the container was created from, if any.
@@ -70,17 +67,20 @@ volatile.idmap.base             | integer   | -             | The first id in th
 volatile.idmap.next             | string    | -             | The idmap to use next time the container starts
 volatile.last\_state.idmap      | string    | -             | Serialized container uid/gid map
 volatile.last\_state.power      | string    | -             | Container state as of last host shutdown
+volatile.\<name\>.host\_name    | string    | -             | Network device name on the host (for nictype=bridged or nictype=p2p)
+volatile.\<name\>.hwaddr        | string    | -             | Network device MAC address (when no hwaddr property is set on the device itself)
+volatile.\<name\>.name          | string    | -             | Network device name (when no name propery is set on the device itself)
 
 
 Additionally, those user keys have become common with images (support isn't guaranteed):
 
 Key                         | Type          | Default           | Description
 :--                         | :---          | :------           | :----------
-user.network\_mode          | string        | dhcp              | One of "dhcp" or "link-local". Used to configure network in supported images.
 user.meta-data              | string        | -                 | Cloud-init meta-data, content is appended to seed value.
+user.network-config         | string        | DHCP on eth0      | Cloud-init network-config, content is used as seed value.
+user.network\_mode          | string        | dhcp              | One of "dhcp" or "link-local". Used to configure network in supported images.
 user.user-data              | string        | #!cloud-config    | Cloud-init user-data, content is used as seed value.
 user.vendor-data            | string        | #!cloud-config    | Cloud-init vendor-data, content is used as seed value.
-user.network-config         | string        | DHCP on eth0      | Cloud-init network-config, content is used as seed value.
 
 Note that while a type is defined above as a convenience, all values are
 stored as strings and should be exported over the REST API as strings

From 33c489134aab55e73d101b44250779af4bbefcd9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 18 Oct 2017 15:15:07 -0400
Subject: [PATCH 4/6] doc: Sort network config keys
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 doc/networks.md | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/doc/networks.md b/doc/networks.md
index c6d7b2029..54b01ae4f 100644
--- a/doc/networks.md
+++ b/doc/networks.md
@@ -23,38 +23,38 @@ Key                             | Type      | Condition             | Default
 :--                             | :--       | :--                   | :--                       | :--
 bridge.driver                   | string    | -                     | native                    | Bridge driver ("native" or "openvswitch")
 bridge.external\_interfaces     | string    | -                     | -                         | Comma separate list of unconfigured network interfaces to include in the bridge
-bridge.mtu                      | integer   | -                     | 1500                      | Bridge MTU (default varies if tunnel or fan setup)
 bridge.mode                     | string    | -                     | standard                  | Bridge operation mode ("standard" or "fan")
-fan.underlay\_subnet            | string    | fan mode              | default gateway subnet    | Subnet to use as the underlay for the FAN (CIDR notation)
+bridge.mtu                      | integer   | -                     | 1500                      | Bridge MTU (default varies if tunnel or fan setup)
+dns.domain                      | string    | -                     | lxd                       | Domain to advertise to DHCP clients and use for DNS resolution
+dns.mode                        | string    | -                     | managed                   | DNS registration mode ("none" for no DNS record, "managed" for LXD generated static records or "dynamic" for client generated records)
 fan.overlay\_subnet             | string    | fan mode              | 240.0.0.0/8               | Subnet to use as the overlay for the FAN (CIDR notation)
 fan.type                        | string    | fan mode              | vxlan                     | The tunneling type for the FAN ("vxlan" or "ipip")
-tunnel.NAME.protocol            | string    | standard mode         | -                         | Tunneling protocol ("vxlan" or "gre")
-tunnel.NAME.local               | string    | gre or vxlan          | -                         | Local address for the tunnel (not necessary for multicast vxlan)
-tunnel.NAME.remote              | string    | gre or vxlan          | -                         | Remote address for the tunnel (not necessary for multicast vxlan)
-tunnel.NAME.group               | string    | vxlan                 | 239.0.0.1                 | Multicast address for vxlan (used if local and remote aren't set)
-tunnel.NAME.port                | integer   | vxlan                 | 0                         | Specific port to use for the vxlan tunnel
-tunnel.NAME.id                  | integer   | vxlan                 | 0                         | Specific tunnel ID to use for the vxlan tunnel
-tunnel.NAME.interface           | string    | vxlan                 | -                         | Specific host interface to use for the tunnel
+fan.underlay\_subnet            | string    | fan mode              | default gateway subnet    | Subnet to use as the underlay for the FAN (CIDR notation)
 ipv4.address                    | string    | standard mode         | random unused subnet      | IPv4 address for the bridge (CIDR notation). Use "none" to turn off IPv4 or "auto" to generate a new one
-ipv4.nat                        | boolean   | ipv4 address          | false                     | Whether to NAT (will default to true if unset and a random ipv4.address is generated)
 ipv4.dhcp                       | boolean   | ipv4 address          | true                      | Whether to allocate addresses using DHCP
 ipv4.dhcp.expiry                | string    | ipv4 dhcp             | 1h                        | When to expire DHCP leases
 ipv4.dhcp.ranges                | string    | ipv4 dhcp             | all addresses             | Comma separated list of IP ranges to use for DHCP (FIRST-LAST format)
 ipv4.firewall                   | boolean   | ipv4 address          | true                      | Whether to generate filtering firewall rules for this network
+ipv4.nat                        | boolean   | ipv4 address          | false                     | Whether to NAT (will default to true if unset and a random ipv4.address is generated)
 ipv4.routes                     | string    | ipv4 address          | -                         | Comma separated list of additional IPv4 CIDR subnets to route to the bridge
 ipv4.routing                    | boolean   | ipv4 address          | true                      | Whether to route traffic in and out of the bridge
 ipv6.address                    | string    | standard mode         | random unused subnet      | IPv6 address for the bridge (CIDR notation). Use "none" to turn off IPv6 or "auto" to generate a new one
-ipv6.nat                        | boolean   | ipv6 address          | false                     | Whether to NAT (will default to true if unset and a random ipv6.address is generated)
 ipv6.dhcp                       | boolean   | ipv6 address          | true                      | Whether to provide additional network configuration over DHCP
 ipv6.dhcp.expiry                | string    | ipv6 dhcp             | 1h                        | When to expire DHCP leases
-ipv6.dhcp.stateful              | boolean   | ipv6 dhcp             | false                     | Whether to allocate addresses using DHCP
 ipv6.dhcp.ranges                | string    | ipv6 stateful dhcp    | all addresses             | Comma separated list of IPv6 ranges to use for DHCP (FIRST-LAST format)
+ipv6.dhcp.stateful              | boolean   | ipv6 dhcp             | false                     | Whether to allocate addresses using DHCP
 ipv6.firewall                   | boolean   | ipv6 address          | true                      | Whether to generate filtering firewall rules for this network
+ipv6.nat                        | boolean   | ipv6 address          | false                     | Whether to NAT (will default to true if unset and a random ipv6.address is generated)
 ipv6.routes                     | string    | ipv6 address          | -                         | Comma separated list of additional IPv6 CIDR subnets to route to the bridge
 ipv6.routing                    | boolean   | ipv6 address          | true                      | Whether to route traffic in and out of the bridge
-dns.domain                      | string    | -                     | lxd                       | Domain to advertise to DHCP clients and use for DNS resolution
-dns.mode                        | string    | -                     | managed                   | DNS registration mode ("none" for no DNS record, "managed" for LXD generated static records or "dynamic" for client generated records)
 raw.dnsmasq                     | string    | -                     | -                         | Additional dnsmasq configuration to append to the configuration
+tunnel.NAME.group               | string    | vxlan                 | 239.0.0.1                 | Multicast address for vxlan (used if local and remote aren't set)
+tunnel.NAME.id                  | integer   | vxlan                 | 0                         | Specific tunnel ID to use for the vxlan tunnel
+tunnel.NAME.interface           | string    | vxlan                 | -                         | Specific host interface to use for the tunnel
+tunnel.NAME.local               | string    | gre or vxlan          | -                         | Local address for the tunnel (not necessary for multicast vxlan)
+tunnel.NAME.port                | integer   | vxlan                 | 0                         | Specific port to use for the vxlan tunnel
+tunnel.NAME.protocol            | string    | standard mode         | -                         | Tunneling protocol ("vxlan" or "gre")
+tunnel.NAME.remote              | string    | gre or vxlan          | -                         | Remote address for the tunnel (not necessary for multicast vxlan)
 
 
 Those keys can be set using the lxc tool with:

From bb8e088b22a1ab21c0b2745b9253d4c9703c7baf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 18 Oct 2017 15:30:38 -0400
Subject: [PATCH 5/6] doc: Sort storage config keys
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 doc/storage.md | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/doc/storage.md b/doc/storage.md
index c61619db3..dccff0075 100644
--- a/doc/storage.md
+++ b/doc/storage.md
@@ -12,16 +12,16 @@ source                          | string    | -
 btrfs.mount\_options            | string    | btrfs driver                      | user\_subvol\_rm\_allowed  | storage\_btrfs\_mount\_options     | Mount options for block devices
 ceph.cluster\_name              | string    | ceph driver                       | ceph                       | storage\_driver\_ceph              | Name of the ceph cluster in which to create new storage pools.
 ceph.osd.force\_reuse           | bool      | ceph driver                       | false                      | storage\_ceph\_force\_osd\_reuse   | Force using an osd storage pool that is already in use by another LXD instance.
-ceph.osd.pool\_name             | string    | ceph driver                       | name of the pool           | storage\_driver\_ceph              | Name of the osd storage pool.
 ceph.osd.pg\_num                | string    | ceph driver                       | 32                         | storage\_driver\_ceph              | Number of placement groups for the osd storage pool.
+ceph.osd.pool\_name             | string    | ceph driver                       | name of the pool           | storage\_driver\_ceph              | Name of the osd storage pool.
 ceph.rbd.clone\_copy            | string    | ceph driver                       | true                       | storage\_driver\_ceph              | Whether to use RBD lightweight clones rather than full dataset copies.
 ceph.user.name                  | string    | ceph driver                       | admin                      | storage\_ceph\_user\_name          | The ceph user to use when creating storage pools and volumes.
 lvm.thinpool\_name              | string    | lvm driver                        | LXDPool                    | storage                            | Thin pool where images and containers are created.
 lvm.use\_thinpool               | bool      | lvm driver                        | true                       | storage\_lvm\_use\_thinpool        | Whether the storage pool uses a thinpool for logical volumes.
 lvm.vg\_name                    | string    | lvm driver                        | name of the pool           | storage                            | Name of the volume group to create.
 rsync.bwlimit                   | string    | -                                 | 0 (no limit)               | storage\_rsync\_bwlimit            | Specifies the upper limit to be placed on the socket I/O whenever rsync has to be used to transfer storage entities.
-volatile.pool.pristine          | string    | -                                 | true                       | storage\_driver\_ceph              | Whether the pool has been empty on creation time.
 volatile.initial\_source        | string    | -                                 | -                          | storage\_volatile\_initial\_source | Records the actual source passed during creating (e.g. /dev/sdb).
+volatile.pool.pristine          | string    | -                                 | true                       | storage\_driver\_ceph              | Whether the pool has been empty on creation time.
 volume.block.filesystem         | string    | block based driver (lvm)          | ext4                       | storage                            | Filesystem to use for new volumes
 volume.block.mount\_options     | string    | block based driver (lvm)          | discard                    | storage                            | Mount options for block devices
 volume.size                     | string    | appropriate driver                | 0                          | storage                            | Default volume size

From a45b50e732f2779334c45b3a46a31f26fba2384c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Wed, 18 Oct 2017 15:30:54 -0400
Subject: [PATCH 6/6] Update bash completion
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
 config/bash/lxd-client | 90 +++++++++++++++++++++++++++++---------------------
 1 file changed, 53 insertions(+), 37 deletions(-)

diff --git a/config/bash/lxd-client b/config/bash/lxd-client
index b5e1c56c6..087906833 100644
--- a/config/bash/lxd-client
+++ b/config/bash/lxd-client
@@ -60,40 +60,50 @@ _have lxc && {
       return 0
     fi
 
-    lxc_cmds="config copy delete exec file help image info init launch \
-      list move network profile publish remote restart restore shell snapshot \
-      start stop storage version"
+    lxc_cmds="config copy delete exec file finger help image info init launch \
+      list manpage monitor move network profile publish query remote rename \
+      restart restore shell snapshot start stop storage version"
 
-    global_keys="core.https_address core.https_allowd_origin \
-      core.https_allowed_methods core.https_allowed_headers  \
-      core.https_allowed_credentials core.proxy_https \
-      core.proxy_http core.proxy_ignore_host core.trust_password \
-      images.compression_algorithm \
-      images.remote_cache_expiry images.auto_update_interval \
-      images.auto_update_cached"
+    global_keys="core.https_address core.https_allowed_credentials \
+      core.https_allowed_headers core.https_allowed_methods \
+      core.https_allowed_origin core.macaroon.endpoint core.proxy_https \
+      core.proxy_http core.proxy_ignore_hosts core.trust_password \
+      images.auto_update_cached images.auto_update_interval \
+      images.compression_algorithm images.remote_cache_expiry"
 
-    container_keys="boot.autostart boot.autostart.delay boot.autostart.priority \
-      boot.host_shutdown_timeout limits.cpu limits.cpu.allowance limits.cpu.priority \
-      limits.disk.priority limits.memory limits.memory.enforce limits.memory.swap \
-      limits.memory.swap.priority limits.network.priority limits.processes \
-      linux.kernel_modules raw.apparmor raw.lxc raw.seccomp security.nesting \
-      security.privileged security.syscalls.blacklist_default \
-      security.syscalls.blacklist_compat security.syscalls.blacklist \
-      security.syscalls.whitelist volatile.apply_template volatile.base_image \
-      volatile.last_state.idmap volatile.last_state.power user.network_mode \
-      user.meta-data user.user-data user.vendor-data"
+    container_keys="boot.autostart boot.autostart.delay \
+      boot.autostart.priority boot.host_shutdown_timeout environment. \
+      limits.cpu limits.cpu.allowance limits.cpu.priority \
+      limits.disk.priority limits.memory limits.memory.enforce \
+      limits.memory.swap limits.memory.swap.priority limits.network.priority \
+      limits.processes linux.kernel_modules raw.apparmor raw.idmap raw.lxc \
+      raw.seccomp security.idmap.base security.idmap.isolated \
+      security.idmap.size security.nesting security.privileged \
+      security.syscalls.blacklist security.syscalls.blacklist_compat \
+      security.syscalls.blacklist_default \
+      volatile.apply_quota volatile.apply_template volatile.base_image \
+      volatile.idmap.base volatile.idmap.next volatile.last_state.idmap \
+      volatile.last_state.power user.meta-data user.network-config \
+      user.network_mode user.user-data user.vendor-data"
 
-    networks_keys="bridge.driver bridge.external_interfaces bridge.mtu bridge.mode \
-      fan.underlay_subnet fan.overlay_subnet fan.type ipv4.address ipv4.nat ipv4.dhcp \
-      ipv4.dhcp.expiry ipv4.dhcp.ranges ipv4.routing ipv6.address ipv6.nat ipv6.dhcp ipv6.dhcp.stateful \
-      ipv6.dhcp.expiry ipv6.dhcp.ranges ipv6.routing dns.domain dns.mode raw.dnsmasq"
+    networks_keys="bridge.driver bridge.external_interfaces bridge.mode \
+      bridge.mtu dns.domain dns.mode fan.overlay_subnet fan.type \
+      fan.underlay_subnet ipv4.address ipv4.dhcp ipv4.dhcp.expiry \
+      ipv4.dhcp.ranges ipv4.firewall ipv4.nat ipv4.routes ipv4.routing \
+      ipv6.address ipv6.dhcp ipv6.dhcp.expiry ipv6.dhcp.ranges \
+      ipv6.dhcp.stateful ipv6.firewall ipv6.nat ipv6.routes ipv6.routing \
+      raw.dnsmasq"
 
-    storage_pool_keys="source size volume.block.mount_options
-    volume.block.filesystem volume.size volume.zfs.use_refquota
-    volume.zfs.remove_snapshots volume.lvm.thinpool_name zfs.pool_name"
+    storage_pool_keys="source size btrfs.mount_options ceph.cluster_name \
+      ceph.osd.force_reuse ceph.osd.pg_num ceph.osd.pool_name \
+      ceph.rbd.clone_copy ceph.user.name lvm.thinpool_name lvm.use_thinpool \
+      lvm.vg_name rsync.bwlimit volatile.initial_source \
+      volatile.pool.pristine volume.block.filesystem \
+      volume.block.mount_options volume.size volume.zfs.remove_snapshots \
+      volume.zfs.use_refquota zfs.clone_copy zfs.pool_name"
 
-    storage_volume_keys="block.mount_options block.filesystem size
-    zfs.use_refquota zfs.remove_snapshots"
+    storage_volume_keys="size block.filesystem block.mount_options \
+      zfs.remove_snapshots zfs.use_refquota"
 
     if [ $COMP_CWORD -eq 1 ]; then
       COMPREPLY=( $(compgen -W "$lxc_cmds" -- ${COMP_WORDS[COMP_CWORD]}) )
@@ -113,7 +123,7 @@ _have lxc && {
       "config")
         case $pos in
           2)
-            COMPREPLY=( $(compgen -W "device edit get set show trust" -- $cur) )
+            COMPREPLY=( $(compgen -W "get set unset show edit metadata template device trust" -- $cur) )
             ;;
           3)
             case ${no_dashargs[2]} in
@@ -123,6 +133,12 @@ _have lxc && {
               "device")
                 COMPREPLY=( $(compgen -W "add get set unset list show remove" -- $cur) )
                 ;;
+              "metadata")
+                COMPREPLY=( $(compgen -W "show edit" -- $cur) )
+                ;;
+              "template")
+                COMPREPLY=( $(compgen -W "list show create edit delete" -- $cur) )
+                ;;
               "show"|"edit")
                 _lxd_names
                 ;;
@@ -164,7 +180,7 @@ _have lxc && {
         COMPREPLY=( $(compgen -W "$lxc_cmds" -- $cur) )
         ;;
       "image")
-        COMPREPLY=( $(compgen -W "import copy delete edit export info list show alias" -- $cur) )
+        COMPREPLY=( $(compgen -W "import copy delete refresh export info list show edit alias" -- $cur) )
         ;;
       "info")
         _lxd_names
@@ -181,11 +197,11 @@ _have lxc && {
       "network")
         case $pos in
           2)
-            COMPREPLY=( $(compgen -W "list show create get set unset delete edit attach attach-profile detach detach-profile" -- $cur) )
+            COMPREPLY=( $(compgen -W "list show create get set unset delete edit rename attach attach-profile detach detach-profile" -- $cur) )
             ;;
           3)
             case ${no_dashargs[2]} in
-              "show"|"get"|"set"|"unset"|"delete"|"edit"|"attach"|"attach-profile"|"detach"|"detach-profile")
+              "show"|"get"|"set"|"unset"|"delete"|"edit"|"rename"|"attach"|"attach-profile"|"detach"|"detach-profile")
                 _lxd_networks
                 ;;
             esac
@@ -207,12 +223,12 @@ _have lxc && {
       "profile")
         case $pos in
           2)
-            COMPREPLY=( $(compgen -W "list copy delete apply device edit get set show" -- $cur) )
+            COMPREPLY=( $(compgen -W "list show create copy get set unset delete edit rename assign add remove device " -- $cur) )
             ;;
           3)
             case ${no_dashargs[2]} in
               "device")
-                COMPREPLY=( $(compgen -W "add get set unset list show remove" -- $cur) )
+                COMPREPLY=( $(compgen -W "list show remove get set unset add" -- $cur) )
                 ;;
               *)
                 _lxd_profiles
@@ -279,11 +295,11 @@ _have lxc && {
       "storage_volumes")
         case $pos in
           2)
-            COMPREPLY=( $(compgen -W "list show create get set unset delete edit attach attach-profile detach detach-profile" -- $cur) )
+            COMPREPLY=( $(compgen -W "list show create rename get set unset delete edit attach attach-profile detach detach-profile" -- $cur) )
             ;;
           3)
             case ${no_dashargs[2]} in
-              "show"|"get"|"set"|"unset"|"delete"|"edit"|"attach"|"attach-profile"|"detach"|"detach-profile")
+              "show"|"get"|"set"|"unset"|"rename"|"delete"|"edit"|"attach"|"attach-profile"|"detach"|"detach-profile")
                 _lxd_storage_volumes
                 ;;
             esac


More information about the lxc-devel mailing list