Skip to content

Commit 6d48919

Browse files
author
Tervooren, Dominik
committed
Add network metadata support for vmware metadata service
- Added parsing of vmware metadata as NetworkDetailsV2 - Using NoCloudNetworkConfigV1Parser for parsing the data - Functionality is analog to cloud-init
1 parent 07cae6e commit 6d48919

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

cloudbaseinit/metadata/services/vmwareguestinfoservice.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
from cloudbaseinit.metadata.services import base
2626
from cloudbaseinit.osutils import factory as osutils_factory
2727
from cloudbaseinit.utils import serialization
28+
from cloudbaseinit.metadata.services.nocloudservice import NoCloudNetworkConfigV1Parser
2829

2930
CONF = cloudbaseinit_conf.CONF
3031
LOG = oslo_logging.getLogger(__name__)
@@ -151,3 +152,23 @@ def get_admin_username(self):
151152

152153
def get_admin_password(self):
153154
return self._meta_data.get('admin-password')
155+
156+
def get_network_details_v2(self):
157+
try:
158+
raw_data = self._meta_data.get('network-config', decode=True)
159+
network_data = serialization.parse_json_yaml(raw_data)
160+
except base.NotExistingMetadataException:
161+
LOG.info("V2 network metadata not found")
162+
return
163+
except serialization.YamlParserConfigError:
164+
LOG.exception("V2 network metadata could not be deserialized")
165+
return
166+
167+
network_data_version = network_data.get('version')
168+
if network_data_version != 1:
169+
LOG.error("Network data version '%s' is not supported",
170+
network_data_version)
171+
return
172+
173+
network_config_parser = NoCloudNetworkConfigV1Parser()
174+
return network_config_parser.parse(network_data.get("config"))

0 commit comments

Comments
 (0)