[lxc-devel] [nova-lxd/master] Check for LXD block devices
zulcss on Github
lxc-bot at linuxcontainers.org
Tue Mar 8 18:29:38 UTC 2016
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 427 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20160308/b158f744/attachment.bin>
-------------- next part --------------
From 6c0145c293f1e74bdf72a26691a5b26650c95b0d Mon Sep 17 00:00:00 2001
From: Chuck Short <chuck.short at canonical.com>
Date: Tue, 8 Mar 2016 13:13:22 -0500
Subject: [PATCH] Check for LXD block devices
Check for LXD block device type before trying
to set the quota.
Signed-off-by: Chuck Short <chuck.short at canonical.com>
---
nova_lxd/nova/virt/lxd/config.py | 6 +++++-
nova_lxd/nova/virt/lxd/session.py | 11 +++++++++++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/nova_lxd/nova/virt/lxd/config.py b/nova_lxd/nova/virt/lxd/config.py
index 90294d5..0b0a156 100644
--- a/nova_lxd/nova/virt/lxd/config.py
+++ b/nova_lxd/nova/virt/lxd/config.py
@@ -104,7 +104,11 @@ def create_profile(self, instance, network_info):
config['config'] = self.create_config(instance_name, instance)
# Restrict the size of the "/" disk
- config['devices'] = self.configure_container_root(instance)
+ lxd_config = self.session.host_config(instance)
+ if str(lxd_config['storage']) in ['btrfs', 'zfs']:
+ config['devices'] = self.configure_container_root(instance)
+ else:
+ config['devices'] = {}
if network_info:
config['devices'].update(self.create_network(instance_name,
diff --git a/nova_lxd/nova/virt/lxd/session.py b/nova_lxd/nova/virt/lxd/session.py
index f4f4f64..6494843 100644
--- a/nova_lxd/nova/virt/lxd/session.py
+++ b/nova_lxd/nova/virt/lxd/session.py
@@ -811,6 +811,17 @@ def host_certificate(self, instance, host):
'ex': ex}
LOG.error(msg)
+ def host_config(self, instance):
+ LOG.debug('host_config called for instance', instance=instance)
+ try:
+ client = self.get_session()
+ return client.host_config()['environment']
+ except lxd_exceptions.APIError as ex:
+ msg = _('Failed to communicate with LXD %(instance)s:'
+ ' %(reason)s') % {'instance': instance.name,
+ 'ex': ex}
+ LOG.error(msg)
+
#
# Migrate methods
#
More information about the lxc-devel
mailing list