From 403f4d0efd452338e99147f58115eb9da675e6ba Mon Sep 17 00:00:00 2001 From: Kobi Samoray Date: Sun, 10 Oct 2021 15:53:54 +0300 Subject: [PATCH] NSXV: validate metadata config for AZs When an AZ is configured with a non-default DVS id, it must have a metadata configuration as well. The minimum required is the metadata edge IPs. Change-Id: Iebbbf6e73975c67876a925a4d54a6a263c4da10f (cherry picked from commit 8031a854209562db7576909eadd8b4d385b18c01) --- vmware_nsx/plugins/nsx_v/availability_zones.py | 8 ++++++++ vmware_nsx/tests/unit/nsx_v/test_availability_zones.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/vmware_nsx/plugins/nsx_v/availability_zones.py b/vmware_nsx/plugins/nsx_v/availability_zones.py index 5b1227e6ab..f5fabeaecc 100644 --- a/vmware_nsx/plugins/nsx_v/availability_zones.py +++ b/vmware_nsx/plugins/nsx_v/availability_zones.py @@ -175,6 +175,14 @@ class NsxVAvailabilityZone(common_az.ConfiguredAvailabilityZone): self.mgt_net_default_gateway = ( cfg.CONF.nsxv.mgt_net_default_gateway) + elif (az_info.get('dvs_id') and + az_info['dvs_id'] != cfg.CONF.nsxv.dvs_id): + raise nsx_exc.NsxInvalidConfiguration( + opt_name="mgt_net_proxy_ips", + opt_value='None', + reason=(_("mgt_net_proxy_ips for availability zone " + "%s must specified when DVS id is non-default") % + az_name)) else: self.az_metadata_support = False self.mgt_net_moid = None diff --git a/vmware_nsx/tests/unit/nsx_v/test_availability_zones.py b/vmware_nsx/tests/unit/nsx_v/test_availability_zones.py index 1863c8dd66..eda868c54b 100644 --- a/vmware_nsx/tests/unit/nsx_v/test_availability_zones.py +++ b/vmware_nsx/tests/unit/nsx_v/test_availability_zones.py @@ -185,7 +185,7 @@ class NsxvAvailabilityZonesTestCase(base.BaseTestCase): self.assertEqual(DEF_GLOBAL_POOL, az.backup_edge_pool) def test_availability_zone_missing_metadata(self): - self._config_az(mgt_net_proxy_ips=None) + self._config_az(mgt_net_proxy_ips=None, dvs_id=None) az = nsx_az.NsxVAvailabilityZone(self.az_name) self.assertIsNone(az.mgt_net_moid) self.assertEqual([], az.mgt_net_proxy_ips)