Merge ~ack/maas:1988759-lxd-storage-pool-null-config into maas:master

Proposed by Alberto Donato
Status: Merged
Approved by: Alberto Donato
Approved revision: bb340cc5ed660b53540ea364ad8c46f1ef0d266e
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~ack/maas:1988759-lxd-storage-pool-null-config
Merge into: maas:master
Diff against target: 122 lines (+41/-12)
4 files modified
src/metadataserver/tests/test_vendor_data.py (+1/-1)
src/metadataserver/vendor_data.py (+1/-1)
src/provisioningserver/drivers/pod/lxd.py (+7/-6)
src/provisioningserver/drivers/pod/tests/test_lxd.py (+32/-4)
Reviewer Review Type Date Requested Status
MAAS Lander Approve
Björn Tillenius Approve
Review via email: mp+431629@code.launchpad.net

Commit message

LP:1988759 allow null config from storage pools

This also reverts change to make certificate unrestricted on deployed host

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b 1988759-lxd-storage-pool-null-config lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas-tester/1052/consoleText
COMMIT: 6ccab106d99151ba9eff28cc7b6305b94d20da12

review: Needs Fixing
Revision history for this message
Björn Tillenius (bjornt) wrote :

+1

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b 1988759-lxd-storage-pool-null-config lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://maas-ci.internal:8080/job/maas-tester/1054/consoleText

Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b 1988759-lxd-storage-pool-null-config lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://maas-ci.internal:8080/job/maas-tester/1060/consoleText

Revision history for this message
MAAS Lander (maas-lander) wrote :

LANDING
-b 1988759-lxd-storage-pool-null-config lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED BUILD
LOG: http://maas-ci.internal:8080/job/maas-tester/1062/consoleText

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b 1988759-lxd-storage-pool-null-config lp:~ack/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: bb340cc5ed660b53540ea364ad8c46f1ef0d266e

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/metadataserver/tests/test_vendor_data.py b/src/metadataserver/tests/test_vendor_data.py
index c682bcb..ba3519e 100644
--- a/src/metadataserver/tests/test_vendor_data.py
+++ b/src/metadataserver/tests/test_vendor_data.py
@@ -441,7 +441,7 @@ class TestGenerateKVMPodConfiguration(MAASServerTestCase):
441 "lxd init --auto --network-address=[::]",441 "lxd init --auto --network-address=[::]",
442 "lxc project create maas",442 "lxc project create maas",
443 "sh -c 'lxc project edit maas </root/maas-project.yaml'",443 "sh -c 'lxc project edit maas </root/maas-project.yaml'",
444 "lxc config trust add /root/lxd.crt",444 "lxc config trust add /root/lxd.crt --restricted --projects maas",
445 "rm /root/lxd.crt /root/maas-project.yaml",445 "rm /root/lxd.crt /root/maas-project.yaml",
446 ],446 ],
447 ),447 ),
diff --git a/src/metadataserver/vendor_data.py b/src/metadataserver/vendor_data.py
index f32b54c..edbde39 100644
--- a/src/metadataserver/vendor_data.py
+++ b/src/metadataserver/vendor_data.py
@@ -229,7 +229,7 @@ def generate_kvm_pod_configuration(node):
229 "lxd init --auto --network-address=[::]",229 "lxd init --auto --network-address=[::]",
230 f"lxc project create {maas_project}",230 f"lxc project create {maas_project}",
231 f"sh -c 'lxc project edit {maas_project} <{project_conf_file}'",231 f"sh -c 'lxc project edit {maas_project} <{project_conf_file}'",
232 f"lxc config trust add {cert_file}",232 f"lxc config trust add {cert_file} --restricted --projects {maas_project}",
233 f"rm {cert_file} {project_conf_file}",233 f"rm {cert_file} {project_conf_file}",
234 ]234 ]
235235
diff --git a/src/provisioningserver/drivers/pod/lxd.py b/src/provisioningserver/drivers/pod/lxd.py
index 05b6575..a2d79b6 100644
--- a/src/provisioningserver/drivers/pod/lxd.py
+++ b/src/provisioningserver/drivers/pod/lxd.py
@@ -386,7 +386,7 @@ class LXDPodDriver(PodDriver):
386 pools = []386 pools = []
387 local_storage = 0387 local_storage = 0
388 for storage_pool in storage_pools:388 for storage_pool in storage_pools:
389 discovered_storage_pool = self._get_discovered_pod_storage_pool(389 discovered_storage_pool = self._get_discovered_storage_pool(
390 storage_pool390 storage_pool
391 )391 )
392 local_storage += discovered_storage_pool.storage392 local_storage += discovered_storage_pool.storage
@@ -804,11 +804,12 @@ class LXDPodDriver(PodDriver):
804 location=machine.location,804 location=machine.location,
805 )805 )
806806
807 def _get_discovered_pod_storage_pool(self, storage_pool):807 def _get_discovered_storage_pool(self, storage_pool):
808 """Get the Pod storage pool."""808 """Get storage pool info by name."""
809 storage_pool_config = storage_pool.config809 # Storage configuration can either be empty or None (if credentials are
810 # Sometimes the config is empty, use get() method on the dictionary in case.810 # restricted to a project)
811 storage_pool_path = storage_pool_config.get("source")811 storage_pool_config = storage_pool.config or {}
812 storage_pool_path = storage_pool_config.get("source", "")
812 storage_pool_resources = storage_pool.resources.get()813 storage_pool_resources = storage_pool.resources.get()
813 total_storage = storage_pool_resources.space["total"]814 total_storage = storage_pool_resources.space["total"]
814815
diff --git a/src/provisioningserver/drivers/pod/tests/test_lxd.py b/src/provisioningserver/drivers/pod/tests/test_lxd.py
index 1205407..8f790fa 100644
--- a/src/provisioningserver/drivers/pod/tests/test_lxd.py
+++ b/src/provisioningserver/drivers/pod/tests/test_lxd.py
@@ -763,12 +763,11 @@ class TestLXDPodDriver(MAASTestCase):
763 ],763 ],
764 )764 )
765765
766 def test_get_discovered_pod_storage_pool(self):766 def test_get_discovered_storage_pool(self):
767 mock_storage_pool = Mock()767 mock_storage_pool = Mock()
768 mock_storage_pool.name = factory.make_name("pool")768 mock_storage_pool.name = factory.make_name("pool")
769 mock_storage_pool.driver = "dir"769 mock_storage_pool.driver = "dir"
770 mock_storage_pool.config = {770 mock_storage_pool.config = {
771 "size": "61203283968",
772 "source": "/home/chb/mnt/l2/disks/default.img",771 "source": "/home/chb/mnt/l2/disks/default.img",
773 "volume.size": "0",772 "volume.size": "0",
774 "zfs.pool_name": "default",773 "zfs.pool_name": "default",
@@ -776,8 +775,8 @@ class TestLXDPodDriver(MAASTestCase):
776 mock_resources = Mock()775 mock_resources = Mock()
777 mock_resources.space = {"used": 207111192576, "total": 306027577344}776 mock_resources.space = {"used": 207111192576, "total": 306027577344}
778 mock_storage_pool.resources.get.return_value = mock_resources777 mock_storage_pool.resources.get.return_value = mock_resources
779 discovered_pod_storage_pool = (778 discovered_pod_storage_pool = self.driver._get_discovered_storage_pool(
780 self.driver._get_discovered_pod_storage_pool(mock_storage_pool)779 mock_storage_pool
781 )780 )
782 self.assertEqual(781 self.assertEqual(
783 mock_storage_pool.name, discovered_pod_storage_pool.id782 mock_storage_pool.name, discovered_pod_storage_pool.id
@@ -796,6 +795,35 @@ class TestLXDPodDriver(MAASTestCase):
796 mock_resources.space["total"], discovered_pod_storage_pool.storage795 mock_resources.space["total"], discovered_pod_storage_pool.storage
797 )796 )
798797
798 def test_get_discovered_storage_pool_no_source(self):
799 mock_storage_pool = Mock()
800 mock_storage_pool.name = factory.make_name("pool")
801 mock_storage_pool.driver = "dir"
802 mock_storage_pool.config = {
803 "volume.size": "0",
804 "zfs.pool_name": "default",
805 }
806 mock_resources = Mock()
807 mock_resources.space = {"used": 207111192576, "total": 306027577344}
808 mock_storage_pool.resources.get.return_value = mock_resources
809 discovered_pod_storage_pool = self.driver._get_discovered_storage_pool(
810 mock_storage_pool
811 )
812 self.assertEqual(discovered_pod_storage_pool.path, "")
813
814 def test_get_discovered_storage_pool_no_config(self):
815 mock_storage_pool = Mock()
816 mock_storage_pool.name = factory.make_name("pool")
817 mock_storage_pool.driver = "dir"
818 mock_storage_pool.config = None
819 mock_resources = Mock()
820 mock_resources.space = {"used": 207111192576, "total": 306027577344}
821 mock_storage_pool.resources.get.return_value = mock_resources
822 discovered_pod_storage_pool = self.driver._get_discovered_storage_pool(
823 mock_storage_pool
824 )
825 self.assertEqual(discovered_pod_storage_pool.path, "")
826
799 def test_get_discovered_machine(self):827 def test_get_discovered_machine(self):
800 mock_machine = Mock()828 mock_machine = Mock()
801 mock_machine.name = factory.make_name("machine")829 mock_machine.name = factory.make_name("machine")

Subscribers

People subscribed via source and target branches