Change-Id: Ib53375645de7fb32d0f235c6c25b4ac645475b73
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/2679
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
... | ... |
@@ -1,6 +1,6 @@ |
1 | 1 |
Name: cloud-init |
2 | 2 |
Version: 0.7.9 |
3 |
-Release: 2%{?dist} |
|
3 |
+Release: 3%{?dist} |
|
4 | 4 |
Summary: Cloud instance init scripts |
5 | 5 |
Group: System Environment/Base |
6 | 6 |
License: GPLv3 |
... | ... |
@@ -8,6 +8,7 @@ URL: http://launchpad.net/cloud-init |
8 | 8 |
Source0: https://launchpad.net/cloud-init/trunk/%{version}/+download/%{name}-%{version}.tar.gz |
9 | 9 |
%define sha1 cloud-init=3b4345267e72e28b877e2e3f0735c1f672674cfc |
10 | 10 |
Source1: cloud-photon.cfg |
11 |
+Source2: 99-disable-networking-config.cfg |
|
11 | 12 |
|
12 | 13 |
Patch0: photon-distro.patch |
13 | 14 |
Patch1: change-requires.patch |
... | ... |
@@ -72,9 +73,12 @@ rm -rf $RPM_BUILD_ROOT |
72 | 72 |
rm -r $RPM_BUILD_ROOT%{python_sitelib}/tests |
73 | 73 |
|
74 | 74 |
mkdir -p $RPM_BUILD_ROOT/var/lib/cloud |
75 |
+mkdir -p $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg.d/ |
|
75 | 76 |
|
76 | 77 |
# We supply our own config file since our software differs from Ubuntu's. |
77 | 78 |
cp -p %{SOURCE1} $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg |
79 |
+# Disable networking config by cloud-init |
|
80 |
+cp -p %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/cloud/cloud.cfg.d/ |
|
78 | 81 |
|
79 | 82 |
%check |
80 | 83 |
openssl req \ |
... | ... |
@@ -142,6 +146,7 @@ rm -rf $RPM_BUILD_ROOT |
142 | 142 |
%config(noreplace) %{_sysconfdir}/cloud/templates/* |
143 | 143 |
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/05_logging.cfg |
144 | 144 |
%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg |
145 |
+%config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d/99-disable-networking-config.cfg |
|
145 | 146 |
%{_sysconfdir}/NetworkManager/dispatcher.d/hook-network-manager |
146 | 147 |
%{_sysconfdir}/dhcp/dhclient-exit-hooks.d/hook-dhclient |
147 | 148 |
/lib/systemd/system-generators/cloud-init-generator |
... | ... |
@@ -155,6 +160,8 @@ rm -rf $RPM_BUILD_ROOT |
155 | 155 |
|
156 | 156 |
|
157 | 157 |
%changelog |
158 |
+* Thu May 15 2017 Anish Swaminathan <anishs@vmware.com> 0.7.9-3 |
|
159 |
+- Disable networking config by cloud-init |
|
158 | 160 |
* Thu May 04 2017 Anish Swaminathan <anishs@vmware.com> 0.7.9-2 |
159 | 161 |
- Support userdata in vmx guestinfo |
160 | 162 |
* Thu Apr 27 2017 Anish Swaminathan <anishs@vmware.com> 0.7.9-1 |
... | ... |
@@ -1,7 +1,7 @@ |
1 |
-=== added file './cloudinit/distros/photon.py' |
|
2 |
-+++ ./cloudinit/distros/photon.py 2017-04-17 01:28:00 +0000 |
|
3 |
-@@ -0,0 +1,299 @@ |
|
1 |
+diff -rupN cloud-init-0.7.9/cloudinit/distros/photon.py cloud-init-0.7.9-new/cloudinit/distros/photon.py |
|
2 |
+--- cloud-init-0.7.9/cloudinit/distros/photon.py 1969-12-31 16:00:00.000000000 -0800 |
|
3 |
+@@ -0,0 +1,319 @@ |
|
4 | 4 |
+# vi: ts=4 expandtab |
5 | 5 |
+# |
6 | 6 |
+# Copyright (C) 2017 VMware Inc. |
... | ... |
@@ -25,7 +25,7 @@ |
25 | 25 |
+ hostname_conf_fn = "/etc/hostname" |
26 | 26 |
+ locale_conf_fn = "/etc/default/locale" |
27 | 27 |
+ network_conf_dir = "/etc/systemd/network/" |
28 |
-+ resolve_conf_fn = "/etc/resolv.conf" |
|
28 |
++ resolve_conf_fn = "/etc/systemd/resolved.conf" |
|
29 | 29 |
+ init_cmd = ['systemctl'] # init scripts |
30 | 30 |
+ |
31 | 31 |
+ def __init__(self, name, cfg, paths): |
... | ... |
@@ -110,9 +110,23 @@ |
110 | 110 |
+ searchdomains.extend(info['dns-search']) |
111 | 111 |
+ dev_index = dev_index + 1; |
112 | 112 |
+ |
113 |
++ resolve_data = [] |
|
114 |
++ new_resolve_data = [] |
|
115 |
++ with open(self.resolve_conf_fn, "r") as rf: |
|
116 |
++ resolve_data = rf.readlines() |
|
117 |
++ LOG.debug("Old Resolve Data\n") |
|
118 |
++ LOG.debug("%s",resolve_data) |
|
119 |
++ for item in resolve_data: |
|
120 |
++ if (nameservers and ('DNS=' in item)) or (searchdomains and ('Domains=' in item)): |
|
121 |
++ continue |
|
122 |
++ else: |
|
123 |
++ new_resolve_data.append(item) |
|
124 |
++ |
|
125 |
++ new_resolve_data = new_resolve_data + convert_resolv_conf(nameservers, searchdomains) |
|
126 |
++ LOG.debug("New resolve data\n") |
|
127 |
++ LOG.debug("%s",new_resolve_data) |
|
113 | 128 |
+ if nameservers or searchdomains: |
114 |
-+ util.write_file(self.resolve_conf_fn, |
|
115 |
-+ convert_resolv_conf(nameservers, searchdomains)) |
|
129 |
++ util.write_file(self.resolve_conf_fn, ''.join(new_resolve_data)) |
|
116 | 130 |
+ |
117 | 131 |
+ return dev_names |
118 | 132 |
+ |
... | ... |
@@ -150,7 +164,7 @@ |
150 | 150 |
+ |
151 | 151 |
+ |
152 | 152 |
+ def _bring_up_interfaces(self, device_names): |
153 |
-+ cmd = ['systemctl', 'restart', 'systemd-networkd', 'systemd-resolved'] |
|
153 |
++ cmd = ['systemctl', 'status', 'systemd-networkd', 'systemd-resolved'] |
|
154 | 154 |
+ LOG.debug("Attempting to run bring up interfaces using command %s", |
155 | 155 |
+ cmd) |
156 | 156 |
+ try: |
... | ... |
@@ -236,13 +250,19 @@ |
236 | 236 |
+ |
237 | 237 |
+def convert_resolv_conf(nameservers, searchdomains): |
238 | 238 |
+ """Returns a string formatted for resolv.conf.""" |
239 |
-+ result = '' |
|
239 |
++ result = [] |
|
240 | 240 |
+ if isinstance(nameservers, list): |
241 |
++ nslist = "DNS=" |
|
241 | 242 |
+ for ns in nameservers: |
242 |
-+ result = result + 'nameserver %s\n' % ns |
|
243 |
++ nslist = nslist + '%s ' % ns |
|
244 |
++ nslist = nslist + '\n' |
|
245 |
++ result.append(str(nslist)) |
|
243 | 246 |
+ if isinstance(searchdomains, list): |
247 |
++ sdlist = "Domains=" |
|
244 | 248 |
+ for sd in searchdomains: |
245 |
-+ result = result + 'search %s\n' % sd |
|
249 |
++ sdlist = sdlist + '%s ' % sd |
|
250 |
++ sdlist = sdlist + '\n' |
|
251 |
++ result.append(str(sdlist)) |
|
246 | 252 |
+ return result |
247 | 253 |
+ |
248 | 254 |
+def translate_routes(settings): |