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
1diff --git a/src/metadataserver/vendor_data.py b/src/metadataserver/vendor_data.py
2index 54c8019..2ff6aec 100644
3--- a/src/metadataserver/vendor_data.py
4+++ b/src/metadataserver/vendor_data.py
5@@ -9,6 +9,7 @@ from base64 import b64encode
6 from crypt import crypt
7 from itertools import chain
8 from os import urandom
9+from os import path
10
11 from netaddr import IPAddress
12 import yaml
13@@ -20,13 +21,16 @@ from maasserver.permissions import NodePermission
14 from maasserver.preseed import get_network_yaml_settings
15 from maasserver.preseed_network import NodeNetworkConfiguration
16 from maasserver.server_address import get_maas_facing_server_host
17+from metadataserver import logger
18 from provisioningserver.ntp.config import normalise_address
19 from provisioningserver.utils.text import make_gecos_field
20 from provisioningserver.utils.version import get_maas_version_track_channel
21
22
23 def get_vendor_data(node, proxy):
24- return dict(
25+ """Generate cloud-init vendor data for the given node."""
26+ vendordata = dict(load_local_data())
27+ generated_data = dict(
28 chain(
29 generate_system_info(node),
30 generate_ntp_configuration(node),
31@@ -37,6 +41,23 @@ def get_vendor_data(node, proxy):
32 generate_vcenter_configuration(node),
33 )
34 )
35+ vendordata.update(generated_data)
36+ return vendordata
37+
38+
39+def load_local_data():
40+ """Load user defined cloud-init vendor data file from /etc/maas/vendordata.yaml"""
41+ filepath = '/etc/maas/vendordata.yaml'
42+ useryaml = {}
43+ if path.exists(filepath):
44+ try:
45+ with open(file=filepath, mode='r') as filecontents:
46+ useryaml = yaml.safe_load(filecontents)
47+ except Exception:
48+ logger.error(
49+ "Invalid vendor data yaml %s" % filepath
50+ )
51+ return useryaml
52
53
54 def generate_system_info(node):

Subscribers

People subscribed via source and target branches