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): |