forked from pool/cloud-init
Accepting request 228217 from Cloud:Tools
- fix implementation of the openSUSE handler, properly read the configuration from sysconfig - do not package any none SUSE/openSUSE templates bnc#839707 - add patch openSUSEhostsTemplate.diff to add an openSUSE hosts template - enable growing of root partition by default bnc#861473 - include the LICENSE - include in SLE 12 (FATE #315990, #315991, and 316167) - add patch azure_1269626.diff, fix for upstream bug 1269626 + Azure instance do not boot properly after a capture operation - add dependency on growpart to support root partition expansion OBS-URL: https://build.opensuse.org/request/show/228217 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/cloud-init?expand=0&rev=10
This commit is contained in:
commit
6554f0e50b
87
azure_1269626.diff
Normal file
87
azure_1269626.diff
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
=== modified file 'cloudinit/sources/DataSourceAzure.py'
|
||||||
|
--- cloudinit/sources/DataSourceAzure.py 2014-01-09 18:12:40 +0000
|
||||||
|
+++ cloudinit/sources/DataSourceAzure.py 2014-02-07 11:51:56 +0000
|
||||||
|
@@ -84,9 +84,14 @@
|
||||||
|
|
||||||
|
candidates = [self.seed_dir]
|
||||||
|
candidates.extend(list_possible_azure_ds_devs())
|
||||||
|
+ previous_ovf_cfg = None
|
||||||
|
if ddir:
|
||||||
|
candidates.append(ddir)
|
||||||
|
|
||||||
|
+ previous_ovf_cfg = None
|
||||||
|
+ if os.path.exists("%s/ovf-env.xml" % ddir):
|
||||||
|
+ previous_ovf_cfg = load_azure_ds_dir(ddir)
|
||||||
|
+
|
||||||
|
found = None
|
||||||
|
|
||||||
|
for cdev in candidates:
|
||||||
|
@@ -104,6 +109,11 @@
|
||||||
|
LOG.warn("%s was not mountable" % cdev)
|
||||||
|
continue
|
||||||
|
|
||||||
|
+ if ret != previous_ovf_cfg:
|
||||||
|
+ LOG.info(("instance configuration has changed, "
|
||||||
|
+ "removing old agent directory"))
|
||||||
|
+ util.del_dir(ddir)
|
||||||
|
+
|
||||||
|
(md, self.userdata_raw, cfg, files) = ret
|
||||||
|
self.seed = cdev
|
||||||
|
self.metadata = util.mergemanydict([md, DEFAULT_METADATA])
|
||||||
|
|
||||||
|
=== modified file 'tests/unittests/test_datasource/test_azure.py'
|
||||||
|
--- tests/unittests/test_datasource/test_azure.py 2013-10-02 21:05:15 +0000
|
||||||
|
+++ tests/unittests/test_datasource/test_azure.py 2014-02-07 11:51:56 +0000
|
||||||
|
@@ -119,6 +119,10 @@
|
||||||
|
{'ovf-env.xml': data['ovfcontent']})
|
||||||
|
|
||||||
|
mod = DataSourceAzure
|
||||||
|
+ ddir = "%s/var/lib/waagent" % self.tmp
|
||||||
|
+ mod.BUILTIN_DS_CONFIG['data_dir'] = ddir
|
||||||
|
+ if not os.path.isdir(ddir):
|
||||||
|
+ os.makedirs(ddir)
|
||||||
|
|
||||||
|
self.apply_patches([(mod, 'list_possible_azure_ds_devs', dsdevs)])
|
||||||
|
|
||||||
|
@@ -338,6 +342,40 @@
|
||||||
|
|
||||||
|
self.assertEqual(userdata, dsrc.userdata_raw)
|
||||||
|
|
||||||
|
+ def test_existing_ovf_same(self):
|
||||||
|
+ mydata = "FOOBAR"
|
||||||
|
+ odata = {'UserData': base64.b64encode(mydata)}
|
||||||
|
+ data = {'ovfcontent': construct_valid_ovf_env(data=odata)}
|
||||||
|
+
|
||||||
|
+ with open("%s/ovf-env.xml" % self.tmp, 'w') as fp:
|
||||||
|
+ fp.write(construct_valid_ovf_env(data=odata))
|
||||||
|
+ with open("%s/sem" % self.tmp, 'w') as fp:
|
||||||
|
+ fp.write("test")
|
||||||
|
+
|
||||||
|
+ dsrc = self._get_ds(data)
|
||||||
|
+ ret = dsrc.get_data()
|
||||||
|
+ self.assertTrue(ret)
|
||||||
|
+ self.assertEqual(dsrc.userdata_raw, mydata)
|
||||||
|
+ self.assertTrue(os.path.exists("%s/sem" % self.tmp))
|
||||||
|
+
|
||||||
|
+ def test_existing_ovf_diff(self):
|
||||||
|
+ mydata = "FOOBAR"
|
||||||
|
+ odata = {'UserData': base64.b64encode(mydata)}
|
||||||
|
+ data = {'ovfcontent': construct_valid_ovf_env(data=odata)}
|
||||||
|
+
|
||||||
|
+ data_dir = "%s/var/lib/waagent" % self.tmp
|
||||||
|
+ os.makedirs(data_dir)
|
||||||
|
+ with open("%s/ovf-env.xml" % data_dir, 'w') as fp:
|
||||||
|
+ fp.write(construct_valid_ovf_env())
|
||||||
|
+ with open("%s/sem" % data_dir, 'w') as fp:
|
||||||
|
+ fp.write("test")
|
||||||
|
+
|
||||||
|
+ dsrc = self._get_ds(data)
|
||||||
|
+ ret = dsrc.get_data()
|
||||||
|
+ self.assertTrue(ret)
|
||||||
|
+ self.assertEqual(dsrc.userdata_raw, mydata)
|
||||||
|
+ self.assertFalse(os.path.exists("%s/sem" % data_dir))
|
||||||
|
+
|
||||||
|
|
||||||
|
class TestReadAzureOvf(MockerTestCase):
|
||||||
|
def test_invalid_xml_raises_non_azure_ds(self):
|
||||||
|
|
@ -1,3 +1,37 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Mar 29 21:40:00 UTC 2014 - rschweikert@suse.com
|
||||||
|
|
||||||
|
- fix implementation of the openSUSE handler, properly read the configuration
|
||||||
|
from sysconfig
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 19 21:36:19 UTC 2014 - rschweikert@suse.com
|
||||||
|
|
||||||
|
- do not package any none SUSE/openSUSE templates bnc#839707
|
||||||
|
- add patch openSUSEhostsTemplate.diff to add an openSUSE hosts template
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 19 20:49:32 UTC 2014 - rschweikert@suse.com
|
||||||
|
|
||||||
|
- enable growing of root partition by default bnc#861473
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 18 15:01:51 UTC 2014 - rschweikert@suse.com
|
||||||
|
|
||||||
|
- include the LICENSE
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 17 18:37:58 UTC 2014 - rschweikert@suse.com
|
||||||
|
|
||||||
|
- include in SLE 12 (FATE #315990, #315991, and 316167)
|
||||||
|
- add patch azure_1269626.diff, fix for upstream bug 1269626
|
||||||
|
+ Azure instance do not boot properly after a capture operation
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 17 17:58:23 UTC 2014 - rschweikert@suse.com
|
||||||
|
|
||||||
|
- add dependency on growpart to support root partition expansion
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Jan 20 17:51:24 UTC 2014 - dmueller@suse.com
|
Mon Jan 20 17:51:24 UTC 2014 - dmueller@suse.com
|
||||||
|
|
||||||
|
@ -28,10 +28,13 @@ Patch0: suseSysVInit.diff
|
|||||||
Patch1: addopenSUSEBase.diff
|
Patch1: addopenSUSEBase.diff
|
||||||
Patch2: openSUSEHandler.diff
|
Patch2: openSUSEHandler.diff
|
||||||
Patch3: setupSUSEsysVInit.diff
|
Patch3: setupSUSEsysVInit.diff
|
||||||
|
Patch4: azure_1269626.diff
|
||||||
|
Patch5: openSUSEhostsTemplate.diff
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: filesystem
|
BuildRequires: filesystem
|
||||||
BuildRequires: python-devel
|
BuildRequires: python-devel
|
||||||
BuildRequires: python-setuptools
|
BuildRequires: python-setuptools
|
||||||
|
Requires: growpart
|
||||||
Requires: python-argparse
|
Requires: python-argparse
|
||||||
Requires: python-boto >= 2.7
|
Requires: python-boto >= 2.7
|
||||||
Requires: python-cheetah
|
Requires: python-cheetah
|
||||||
@ -95,6 +98,9 @@ Unit tests for the cloud-init tools
|
|||||||
%patch1 -p1
|
%patch1 -p1
|
||||||
%patch2 -p1
|
%patch2 -p1
|
||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
|
%patch4
|
||||||
|
%patch5
|
||||||
|
|
||||||
%if 0%{?suse_version} <= 1130
|
%if 0%{?suse_version} <= 1130
|
||||||
# disable ecdsa for SLE 11 (not available)
|
# disable ecdsa for SLE 11 (not available)
|
||||||
echo "ssh_genkeytypes: ['rsa', 'dsa']" >> %{SOURCE1}
|
echo "ssh_genkeytypes: ['rsa', 'dsa']" >> %{SOURCE1}
|
||||||
@ -117,19 +123,32 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/cloud
|
|||||||
mkdir -p %{buildroot}%{_defaultdocdir}
|
mkdir -p %{buildroot}%{_defaultdocdir}
|
||||||
mv %{buildroot}%{_datadir}/doc/%{name} %{buildroot}%{docdir}
|
mv %{buildroot}%{_datadir}/doc/%{name} %{buildroot}%{docdir}
|
||||||
cp -a %{SOURCE1} %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg
|
cp -a %{SOURCE1} %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg
|
||||||
|
# copy the LICENSE
|
||||||
|
cp LICENSE %{buildroot}%{docdir}
|
||||||
# Set the distribution indicator
|
# Set the distribution indicator
|
||||||
%if 0%{?suse_version}
|
%if 0%{?suse_version}
|
||||||
%if 0%{?suse_version} < 1130
|
%if 0%{?suse_version} < 1130
|
||||||
|
#SLE 11, openSUSE 11.x is EOL
|
||||||
sed -i s/INSERT_SUSE_DISTRO/sles/ %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg
|
sed -i s/INSERT_SUSE_DISTRO/sles/ %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg
|
||||||
%endif
|
%endif
|
||||||
%if 0%{?suse_version} > 1140
|
%if 0%{?suse_version} > 1140
|
||||||
|
%if 0%{?suse_version} == 1315
|
||||||
|
# SLE 12
|
||||||
|
sed -i s/INSERT_SUSE_DISTRO/sles/ %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg
|
||||||
|
%else
|
||||||
sed -i s/INSERT_SUSE_DISTRO/opensuse/ %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg
|
sed -i s/INSERT_SUSE_DISTRO/opensuse/ %{buildroot}/%{_sysconfdir}/cloud/cloud.cfg
|
||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
|
%endif
|
||||||
|
|
||||||
# remove debian/ubuntu specific profile.d file (bnc#779553)
|
# remove debian/ubuntu specific profile.d file (bnc#779553)
|
||||||
rm -f %{buildroot}%{_sysconfdir}/profile.d/Z99-cloud-locale-test.sh
|
rm -f %{buildroot}%{_sysconfdir}/profile.d/Z99-cloud-locale-test.sh
|
||||||
|
|
||||||
|
# Remove non-SUSE templates
|
||||||
|
rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.debian.*
|
||||||
|
rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.redhat.*
|
||||||
|
rm %{buildroot}/%{_sysconfdir}/cloud/templates/*.ubuntu.*
|
||||||
|
|
||||||
# move sysvinit scripts into the "right" place
|
# move sysvinit scripts into the "right" place
|
||||||
%if 0%{?suse_version} && 0%{?suse_version} <= 1210
|
%if 0%{?suse_version} && 0%{?suse_version} <= 1210
|
||||||
mkdir -p %{buildroot}/%{_initddir}
|
mkdir -p %{buildroot}/%{_initddir}
|
||||||
@ -151,6 +170,8 @@ popd
|
|||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
|
# do not mark as doc or we get conflicts with the doc package
|
||||||
|
%{docdir}/LICENSE
|
||||||
%{_bindir}/cloud-init
|
%{_bindir}/cloud-init
|
||||||
%{_bindir}/cloud-init-per
|
%{_bindir}/cloud-init-per
|
||||||
%config(noreplace) %{_sysconfdir}/cloud/
|
%config(noreplace) %{_sysconfdir}/cloud/
|
||||||
@ -174,10 +195,15 @@ popd
|
|||||||
%{systemd_prefix}/systemd/system/cloud-final.service
|
%{systemd_prefix}/systemd/system/cloud-final.service
|
||||||
%endif
|
%endif
|
||||||
%dir %attr(0755, root, root) %{_localstatedir}/lib/cloud
|
%dir %attr(0755, root, root) %{_localstatedir}/lib/cloud
|
||||||
|
%dir %{docdir}
|
||||||
|
|
||||||
%files doc
|
%files doc
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc %{docdir}
|
%{docdir}/examples/*
|
||||||
|
%{docdir}/README
|
||||||
|
%{docdir}/*.txt
|
||||||
|
%{docdir}/*.rst
|
||||||
|
%dir %{docdir}/examples
|
||||||
|
|
||||||
%files test
|
%files test
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
|
@ -13,6 +13,7 @@ cloud_init_modules:
|
|||||||
- migrator
|
- migrator
|
||||||
- bootcmd
|
- bootcmd
|
||||||
- write-files
|
- write-files
|
||||||
|
- gowpart
|
||||||
- resizefs
|
- resizefs
|
||||||
- set_hostname
|
- set_hostname
|
||||||
- update_hostname
|
- update_hostname
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
diff -urN cloud-init-0.7.4/cloudinit/distros/opensuse.py cloud-init-0.7.4.os/cloudinit/distros/opensuse.py
|
diff -urN cloud-init-0.7.4/cloudinit/distros/opensuse.py cloud-init-0.7.4.os/cloudinit/distros/opensuse.py
|
||||||
--- cloud-init-0.7.4/cloudinit/distros/opensuse.py 1969-12-31 19:00:00.000000000 -0500
|
--- cloud-init-0.7.4/cloudinit/distros/opensuse.py 1969-12-31 19:00:00.000000000 -0500
|
||||||
+++ cloud-init-0.7.4.os/cloudinit/distros/opensuse.py 2013-06-15 06:26:15.312348359 -0400
|
+++ cloud-init-0.7.4.os/cloudinit/distros/opensuse.py 2013-06-15 06:26:15.312348359 -0400
|
||||||
@@ -0,0 +1,86 @@
|
@@ -0,0 +1,87 @@
|
||||||
+# vi: ts=4 expandtab
|
+# vi: ts=4 expandtab
|
||||||
+#
|
+#
|
||||||
+# Copyright (C) 2013 SUSE LLC
|
+# Copyright (C) 2013 SUSE LLC
|
||||||
@ -25,6 +25,7 @@ diff -urN cloud-init-0.7.4/cloudinit/distros/opensuse.py cloud-init-0.7.4.os/clo
|
|||||||
+import os
|
+import os
|
||||||
+
|
+
|
||||||
+from cloudinit.distros import sles
|
+from cloudinit.distros import sles
|
||||||
|
+from cloudinit.distros import rhel_util
|
||||||
+
|
+
|
||||||
+from cloudinit.distros.parsers.resolv_conf import ResolvConf
|
+from cloudinit.distros.parsers.resolv_conf import ResolvConf
|
||||||
+from cloudinit.distros.parsers.sys_conf import SysConf
|
+from cloudinit.distros.parsers.sys_conf import SysConf
|
||||||
@ -81,7 +82,7 @@ diff -urN cloud-init-0.7.4/cloudinit/distros/opensuse.py cloud-init-0.7.4.os/clo
|
|||||||
+ if len(out):
|
+ if len(out):
|
||||||
+ return out
|
+ return out
|
||||||
+ else:
|
+ else:
|
||||||
+ (_exists, contents) = self._read_conf(filename)
|
+ (_exists, contents) = rhel_util.read_sysconfig_file(filename)
|
||||||
+ if 'HOSTNAME' in contents:
|
+ if 'HOSTNAME' in contents:
|
||||||
+ return contents['HOSTNAME']
|
+ return contents['HOSTNAME']
|
||||||
+ else:
|
+ else:
|
||||||
|
29
openSUSEhostsTemplate.diff
Normal file
29
openSUSEhostsTemplate.diff
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
--- /dev/null
|
||||||
|
+++ templates/hosts.opensuse.tmpl
|
||||||
|
@@ -0,0 +1,26 @@
|
||||||
|
+*
|
||||||
|
+ This file /etc/cloud/templates/hosts.opensuse.tmpl is only utilized
|
||||||
|
+ if enabled in cloud-config. Specifically, in order to enable it
|
||||||
|
+ you need to add the following to config:
|
||||||
|
+ manage_etc_hosts: True
|
||||||
|
+*#
|
||||||
|
+# Your system has configured 'manage_etc_hosts' as True.
|
||||||
|
+# As a result, if you wish for changes to this file to persist
|
||||||
|
+# then you will need to either
|
||||||
|
+# a.) make changes to the master file in
|
||||||
|
+# /etc/cloud/templates/hosts.opensuse.tmpl
|
||||||
|
+# b.) change or remove the value of 'manage_etc_hosts' in
|
||||||
|
+# /etc/cloud/cloud.cfg or cloud-config from user-data
|
||||||
|
+#
|
||||||
|
+# The following lines are desirable for IPv4 capable hosts
|
||||||
|
+127.0.0.1 localhost
|
||||||
|
+
|
||||||
|
+# The following lines are desirable for IPv6 capable hosts
|
||||||
|
+::1 localhost ipv6-localhost ipv6-loopback
|
||||||
|
+fe00::0 ipv6-localnet
|
||||||
|
+
|
||||||
|
+ff00::0 ipv6-mcastprefix
|
||||||
|
+ff02::1 ipv6-allnodes
|
||||||
|
+ff02::2 ipv6-allrouters
|
||||||
|
+ff02::3 ipv6-allhosts
|
||||||
|
+
|
Loading…
Reference in New Issue
Block a user