Merge ~nniehoff/maas:nniehoff-vendor-data-feature into maas:master

Proposed by Nick Niehoff
Status: Rejected
Rejected by: Adam Collard
Proposed branch: ~nniehoff/maas:nniehoff-vendor-data-feature
Merge into: maas:master
Diff against target: 54 lines (+22/-1)
1 file modified
src/metadataserver/vendor_data.py (+22/-1)
Reviewer Review Type Date Requested Status
Adam Collard (community) Needs Information
MAAS Lander Needs Fixing
Review via email: mp+379492@code.launchpad.net
To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b nniehoff-vendor-data-feature lp:~nniehoff/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci-jenkins.internal:8080/job/maas/job/branch-tester/7143/console
COMMIT: d8ddda539b9c2a033eef839c478706c83912a73b

review: Needs Fixing
Revision history for this message
Adam Collard (adam-collard) wrote :

Posted a comment on the linked bug with request for more information

review: Needs Information

Unmerged commits

d8ddda5... by Nick Niehoff

Adding Support for cloud-init vendor data

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/src/metadataserver/vendor_data.py b/src/metadataserver/vendor_data.py
index 54c8019..2ff6aec 100644
--- a/src/metadataserver/vendor_data.py
+++ b/src/metadataserver/vendor_data.py
@@ -9,6 +9,7 @@ from base64 import b64encode
9from crypt import crypt9from crypt import crypt
10from itertools import chain10from itertools import chain
11from os import urandom11from os import urandom
12from os import path
1213
13from netaddr import IPAddress14from netaddr import IPAddress
14import yaml15import yaml
@@ -20,13 +21,16 @@ from maasserver.permissions import NodePermission
20from maasserver.preseed import get_network_yaml_settings21from maasserver.preseed import get_network_yaml_settings
21from maasserver.preseed_network import NodeNetworkConfiguration22from maasserver.preseed_network import NodeNetworkConfiguration
22from maasserver.server_address import get_maas_facing_server_host23from maasserver.server_address import get_maas_facing_server_host
24from metadataserver import logger
23from provisioningserver.ntp.config import normalise_address25from provisioningserver.ntp.config import normalise_address
24from provisioningserver.utils.text import make_gecos_field26from provisioningserver.utils.text import make_gecos_field
25from provisioningserver.utils.version import get_maas_version_track_channel27from provisioningserver.utils.version import get_maas_version_track_channel
2628
2729
28def get_vendor_data(node, proxy):30def get_vendor_data(node, proxy):
29 return dict(31 """Generate cloud-init vendor data for the given node."""
32 vendordata = dict(load_local_data())
33 generated_data = dict(
30 chain(34 chain(
31 generate_system_info(node),35 generate_system_info(node),
32 generate_ntp_configuration(node),36 generate_ntp_configuration(node),
@@ -37,6 +41,23 @@ def get_vendor_data(node, proxy):
37 generate_vcenter_configuration(node),41 generate_vcenter_configuration(node),
38 )42 )
39 )43 )
44 vendordata.update(generated_data)
45 return vendordata
46
47
48def load_local_data():
49 """Load user defined cloud-init vendor data file from /etc/maas/vendordata.yaml"""
50 filepath = '/etc/maas/vendordata.yaml'
51 useryaml = {}
52 if path.exists(filepath):
53 try:
54 with open(file=filepath, mode='r') as filecontents:
55 useryaml = yaml.safe_load(filecontents)
56 except Exception:
57 logger.error(
58 "Invalid vendor data yaml %s" % filepath
59 )
60 return useryaml
4061
4162
42def generate_system_info(node):63def generate_system_info(node):

Subscribers

People subscribed via source and target branches