diff options
Diffstat (limited to 'app-emulation/openstack-guest-agents-unix/files')
4 files changed, 455 insertions, 0 deletions
diff --git a/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch b/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch new file mode 100644 index 000000000000..bf95287a86f9 --- /dev/null +++ b/app-emulation/openstack-guest-agents-unix/files/0513f013625b6a652d7dcb663eb396b9b5bb924e.patch @@ -0,0 +1,60 @@ +From 84e1a32ee2b8d0607f2868365aa46aaea58f014c Mon Sep 17 00:00:00 2001 +From: Nate House <nathan.house@rackspace.com> +Date: Mon, 20 Oct 2014 18:50:52 -0500 +Subject: [PATCH] Updated regexp to work with config headers added sometime ago + +--- + tests/test_resetnetwork_interfaces.py | 26 +++++++++++--------------- + 1 file changed, 11 insertions(+), 15 deletions(-) + +diff --git a/tests/test_resetnetwork_interfaces.py b/tests/test_resetnetwork_interfaces.py +index dc8e7e7..b12b84c 100644 +--- a/tests/test_resetnetwork_interfaces.py ++++ b/tests/test_resetnetwork_interfaces.py +@@ -344,17 +344,13 @@ def test_gentoo_legacy_ipv4(self): + + generated = outfiles['net'].rstrip() + # (todo: naterh) Update tests to mock for both ifconfig/iproute2 +- pattern = ('modules=\( "ifconfig|iproute2" \)\n*' + ++ # (todo: naterh) Remove excessive unused kwargs ++ pattern = ('.*?modules="(ifconfig|iproute2)"\n*' + + '# Label public\n*' + + 'config_eth0=\(\s*"192.0.2.42 netmask 255.255.255.0"\s*\)\n*' + + 'routes_eth0=\(\s*"default via 192.0.2.1"\s*\)\n*' + +- 'dns_servers_eth0=\(\s*"192.0.2.2"\s*\)').format( +- ip=interface['ipv4'][0][0], +- netmask=interface['ipv4'][0][1], +- gateway=interface['gateway4'], +- dns=interface['dns'][0] +- ) +- expected_regex = re.compile(pattern, re.MULTILINE) ++ 'dns_servers_eth0=\(\s*"192.0.2.2"\s*\)') ++ expected_regex = re.compile(pattern, re.DOTALL) + + self.assertRegexpMatches(generated, expected_regex) + +@@ -373,17 +369,17 @@ def test_gentoo_legacy_ipv6(self): + + # (todo: naterh) Update tests to mock for both ifconfig/iproute2 + generated = outfiles['net'].rstrip() +- pattern = ('modules=\( "ifconfig|iproute2" \)\n*' + ++ pattern = ('.*?modules="(ifconfig|iproute2)"\n*' + + '# Label public\n*' + + 'config_eth0=\(\s*"{ip}/{netmask_len}"\s*\)\n*' + + 'routes_eth0=\(\s*"default via {gateway}"\s*\)\n*' + + 'dns_servers_eth0=\(\s*"{dns}"\s*\)').format( +- ip=interface['ipv6'][0][0], +- netmask_len=interface['ipv6'][0][1], +- gateway=interface['gateway6'], +- dns=interface['dns'][0] +- ) +- expected_regex = re.compile(pattern, re.MULTILINE) ++ ip=interface['ipv6'][0][0], ++ netmask_len=interface['ipv6'][0][1], ++ gateway=interface['gateway6'], ++ dns=interface['dns'][0] ++ ) ++ expected_regex = re.compile(pattern, re.DOTALL) + + self.assertRegexpMatches(generated, expected_regex) + diff --git a/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch b/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch new file mode 100644 index 000000000000..ea506845ed36 --- /dev/null +++ b/app-emulation/openstack-guest-agents-unix/files/4453b4773688eef6c60736d9cf07100716308a5e.patch @@ -0,0 +1,57 @@ +From 4453b4773688eef6c60736d9cf07100716308a5e Mon Sep 17 00:00:00 2001 +From: Nate House <nathan.house@rackspace.com> +Date: Sun, 19 Oct 2014 15:49:35 -0500 +Subject: [PATCH] Updated tests to check for either ifconfig/iproute2 + +--- + tests/test_resetnetwork_interfaces.py | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/tests/test_resetnetwork_interfaces.py b/tests/test_resetnetwork_interfaces.py +index f2b73bf..dc8e7e7 100644 +--- a/tests/test_resetnetwork_interfaces.py ++++ b/tests/test_resetnetwork_interfaces.py +@@ -343,8 +343,8 @@ def test_gentoo_legacy_ipv4(self): + self.assertTrue('net' in outfiles) + + generated = outfiles['net'].rstrip() +- +- pattern = ('modules=\( "ifconfig" \)\n*' + ++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2 ++ pattern = ('modules=\( "ifconfig|iproute2" \)\n*' + + '# Label public\n*' + + 'config_eth0=\(\s*"192.0.2.42 netmask 255.255.255.0"\s*\)\n*' + + 'routes_eth0=\(\s*"default via 192.0.2.1"\s*\)\n*' + +@@ -371,8 +371,9 @@ def test_gentoo_legacy_ipv6(self): + + self.assertTrue('net' in outfiles) + ++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2 + generated = outfiles['net'].rstrip() +- pattern = ('modules=\( "ifconfig" \)\n*' + ++ pattern = ('modules=\( "ifconfig|iproute2" \)\n*' + + '# Label public\n*' + + 'config_eth0=\(\s*"{ip}/{netmask_len}"\s*\)\n*' + + 'routes_eth0=\(\s*"default via {gateway}"\s*\)\n*' + +@@ -399,8 +400,9 @@ def test_gentoo_openrc_ipv4(self): + + self.assertTrue('net' in outfiles) + ++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2 + generated = outfiles['net'].rstrip() +- pattern = ('modules="ifconfig"\n*' + ++ pattern = ('modules="ifconfig|iproute2"\n*' + + '# Label public\n*' + + 'config_eth0="\s*{ip}/{netmask_len}\s*"\n*' + + 'routes_eth0="\s*default via {gateway}\s*"\n*' + +@@ -429,8 +431,9 @@ def test_gentoo_openrc_ipv6(self): + + self.assertTrue('net' in outfiles) + ++ # (todo: naterh) Update tests to mock for both ifconfig/iproute2 + generated = outfiles['net'].rstrip() +- pattern = ('modules="ifconfig"\n*' + ++ pattern = ('modules="ifconfig|iproute2"\n*' + + '# Label public\n*' + + 'config_eth0="\s*{ip}/{netmask_len}\s*"\n*' + + 'routes_eth0="\s*default via {gateway}\s*"\n*' + diff --git a/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch b/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch new file mode 100644 index 000000000000..0010e9ea5eae --- /dev/null +++ b/app-emulation/openstack-guest-agents-unix/files/openstack-guest-agents-unix-1.39.0-python2.patch @@ -0,0 +1,15 @@ +diff -Nuar openstack-guest-agents-unix-1.39.0.orig/scripts/gentoo/nova-agent.in openstack-guest-agents-unix-1.39.0/scripts/gentoo/nova-agent.in +--- openstack-guest-agents-unix-1.39.0.orig/scripts/gentoo/nova-agent.in 2013-12-31 02:02:57.000000000 -0800 ++++ openstack-guest-agents-unix-1.39.0/scripts/gentoo/nova-agent.in 2014-06-21 17:20:01.527148493 -0700 +@@ -35,8 +35,9 @@ + NOVA_PYTHONPATH="${reallibdir}/${NOVA_PYTHONPATH}" + NOVA_PYTHONPATH="${NOVA_PYTHONPATH}:${NOVA_PYTHONPATH}/site-packages" + +-if [ `which python > /dev/null 2>&1 ; echo $?` -eq 0 ]; then +- PYTHONPATH="$(python -c 'import sys; print ":".join(sys.path)')" ++PYTHON=python2 ++if [ `which $PYTHON > /dev/null 2>&1 ; echo $?` -eq 0 ]; then ++ PYTHONPATH="$($PYTHON -c 'import sys; print ":".join(sys.path)')" + fi + export PYTHONPATH="$NOVA_PYTHONPATH:$PYTHONPATH" + export PYTHONHOME="$NOVA_PYTHONPATH:$PYTHONPATH" diff --git a/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch b/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch new file mode 100644 index 000000000000..c275982fa94b --- /dev/null +++ b/app-emulation/openstack-guest-agents-unix/files/patches-1.39.0-20140621.patch @@ -0,0 +1,323 @@ +commit fc8c9fe076e321ff98cc6717abbb21ee57808c52 +Merge: eaaae09 1ecec49 +Author: teran-mckinney <teran.mckinney@rackspace.com> +Date: Wed Apr 30 15:33:43 2014 +0000 + + Merge pull request #43 from gtmanfred/master + + sbindir changes to exec_prefix + +commit eaaae09c27a33998374a8d63702c75b04ab3e5c2 +Merge: 773e431 1505a5a +Author: teran-mckinney <teran.mckinney@rackspace.com> +Date: Tue Apr 29 18:21:27 2014 +0000 + + Merge pull request #45 from leader716/master + + Added addditional logic to deterine if the hardware address for and inte... + +commit 1505a5a8e180910c3307bf04ccfc4eed09c0f40a +Author: John Ward <john.ward@rackspace.com> +Date: Tue Apr 29 14:28:34 2014 +0000 + + Added addditional logic to deterine if the hardware address for and interface is 0x0 if so go to the next interface. + I put this into place to handle tun adapters that have a hardware address of 0x0 which was causing the agent to + segfault when it encounterd this type of adapter. + +commit 1ecec499d5bea73980a8aec992b394339acc83c7 +Author: Daniel Wallace <danielwallace@gtmanfred.com> +Date: Fri Apr 25 20:38:35 2014 -0500 + + sbindir changes to exec_prefix + + Systemd requires a full path for the start of the command, and there + isn't one that isn't a nice way to change this. + +commit 773e431997a6612cbda9f11ec9d57f5685a29eea +Merge: 1ca2056 12c0294 +Author: teran-mckinney <teran.mckinney@rackspace.com> +Date: Fri Apr 25 18:41:56 2014 +0000 + + Merge pull request #39 from Camisa/master + + nova-agent should replace the Slice or Image ID rather than append + +commit 1ca2056a455f8075ed951f0a82b92820c0b33b54 +Merge: 1b05c75 f9a365e +Author: teran-mckinney <teran.mckinney@rackspace.com> +Date: Fri Apr 25 18:40:29 2014 +0000 + + Merge pull request #42 from gtmanfred/master + + Do not add static routes that are the default route, if a default gateway already exists. + + Courtesy of gtmanfred. Thank you! + +commit f9a365e7a9543d407ca9d75164688faa0ff53528 +Author: Daniel Wallace <danielwallace@gtmanfred.com> +Date: Fri Apr 25 10:54:29 2014 -0500 + + remove extra and from debian network.py + +commit 387d4e77695598a07be9e4593c5b236b81a1aeea +Author: Daniel Wallace <danielwallace@gtmanfred.com> +Date: Fri Apr 25 09:31:15 2014 -0500 + + Do not add static routes that are the default route + +commit 1b05c75530c8b4cbf5347e84815e275ee0bbacd4 +Author: teran-mckinney <teran.mckinney@rackspace.com> +Date: Thu Feb 13 19:26:36 2014 +0000 + + Fix nova-agent not starting on some systems + + data/host existing could cause a fault on xs_handle.mkdir(self.request_path) if request_path (data/host) already existed. Wrap it in a try/except clause to ignore the fault as if the directory already exists, there's no reason to throw an exception while trying to create it. + + Workaround without this patch is to xenstore-rm data/host from affected VMs, or to do it from dom0 with the full path. + +commit 12c02941ef02dc6645e6d4700e8a028decbf0c19 +Author: Christopher J. Camisa <cjc@operator.host> +Date: Thu Jan 30 03:11:51 2014 -0600 + + nova-agent should replace the Slice or Image ID rather than append + +commit ce388bf600136736fdb790edef58a57aad8adfc1 +Author: AbhishekKr <abhikumar163@gmail.com> +Date: Tue Jan 21 17:22:23 2014 +0530 + + shebang fixed for installer.sh and bintar script; gitignore updated + +commit 91fe7d0262fe8ad685a287df291b504250b1184c +Author: AbhishekKr <abhikumar163@gmail.com> +Date: Fri Jan 3 16:51:54 2014 +0530 + + FreeBSD changed ports, so bintar creation script need to +diff --git a/.gitignore b/.gitignore +index ae1ae1b..6bdeda8 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -55,3 +55,4 @@ unix/scripts/generic/nova-agent + unix/scripts/gentoo/nova-agent + unix/scripts/freebsd/nova-agent + .idea/* ++**/.venv +diff --git a/commands/arch/network.py b/commands/arch/network.py +index 1d698ca..2bc0aff 100644 +--- a/commands/arch/network.py ++++ b/commands/arch/network.py +@@ -373,6 +373,11 @@ def _update_rc_conf_legacy(infile, interfaces): + ifaces.append((ifname.replace(':', '_'), ' '.join(line))) + + for i, route in enumerate(interface['routes']): ++ if route['network'] == '0.0.0.0' and \ ++ route['netmask'] == '0.0.0.0' and \ ++ route['gateway'] == gateway4: ++ continue ++ + line = "-net %(network)s netmask %(netmask)s gw %(gateway)s" % \ + route + +@@ -499,7 +504,10 @@ def _get_file_data_netctl(ifname, interface): + print >>outfile, 'Gateway6=%s' % gateway6 + + routes = ['%(network)s/%(netmask)s via %(gateway)s' % route +- for route in interface['routes']] ++ for route in interface['routes'] if not ++ route['network'] == '0.0.0.0' and not ++ route['netmask'] == '0.0.0.0' and not ++ route['gateway'] == gateway4] + + if routes: + print >>outfile, 'Routes=(\'%s\')' % '\' \''.join(routes) +@@ -552,7 +560,10 @@ def _get_file_data_netcfg(ifname, interface): + print >>outfile, 'GATEWAY6="%s"' % gateway6 + + routes = ['"%(network)s/%(netmask)s via %(gateway)s"' % route +- for route in interface['routes']] ++ for route in interface['routes'] if not ++ route['network'] == '0.0.0.0' and not ++ route['netmask'] == '0.0.0.0' and not ++ route['gateway'] == gateway4] + + if routes: + print >>outfile, 'ROUTES=(%s)' % ' '.join(routes) +diff --git a/commands/debian/network.py b/commands/debian/network.py +index d91d602..3b82d97 100644 +--- a/commands/debian/network.py ++++ b/commands/debian/network.py +@@ -234,6 +234,11 @@ def _get_file_data(interfaces): + ifname_suffix_num += 1 + + for route in interface['routes']: ++ if route['network'] == '0.0.0.0' \ ++ and route['netmask'] == '0.0.0.0'\ ++ and 'gateway4' in interface \ ++ and route['gateway'] == interface['gateway4']: ++ continue + file_data += " post-up route add -net %(network)s " \ + "netmask %(netmask)s gw %(gateway)s || true\n" % route + file_data += " pre-down route del -net %(network)s " \ +diff --git a/commands/freebsd/network.py b/commands/freebsd/network.py +index 2d5d7f1..87e5e9e 100644 +--- a/commands/freebsd/network.py ++++ b/commands/freebsd/network.py +@@ -211,6 +211,10 @@ def _create_rcconf_file(infile, interfaces, hostname): + ifname_suffix_num += 1 + + for route in interface['routes']: ++ if route['network'] == '0.0.0.0' and \ ++ route['netmask'] == '0.0.0.0' and \ ++ route['gateway'] == gateway4: ++ continue + if ':' in route['network']: + # ipv6 + fmt = '-net %(network)s/%(netmask)s %(gateway)s' +diff --git a/commands/gentoo/network.py b/commands/gentoo/network.py +index f3ceff5..f3e5251 100644 +--- a/commands/gentoo/network.py ++++ b/commands/gentoo/network.py +@@ -199,7 +199,11 @@ def _confd_net_file(interfaces): + lines.extend([ " {0}/{1} via {2}".format(route['network'], + commands.network.NETMASK_TO_PREFIXLEN[route['netmask']], + route['gateway'] +- ) for route in interface['routes'] ]) ++ ) for route in interface['routes'] if not ++ route['network'] == '0.0.0.0' and not ++ route['netmask'] == '0.0.0.0' and ++ 'gateway4' in interface and not ++ route['gateway'] == interface['gateway4']]) + if 'gateway4' in interface and interface['gateway4']: + lines.append(" default via {0}".format(interface['gateway4'])) + if 'gateway6' in interface and interface['gateway6']: +@@ -247,7 +251,11 @@ def _confd_net_file_legacy(interfaces): + lines.append("routes_{0}=(".format(name)) + lines.extend([ " \"{0} netmask {1} gw {2}\"".format( + route['network'], route['netmask'], route['gateway'] +- ) for route in interface['routes'] ]) ++ ) for route in interface['routes'] if not ++ route['network'] == '0.0.0.0' and not ++ route['netmask'] == '0.0.0.0' and ++ 'gateway4' in interface and not ++ route['gateway'] == interface['gateway4'] ]) + if 'gateway4' in interface and interface['gateway4']: + lines.append(" \"default via {0}\"".format(interface['gateway4'])) + if 'gateway6' in interface and interface['gateway6']: +diff --git a/commands/redhat/network.py b/commands/redhat/network.py +index a85ed6b..e853fbd 100644 +--- a/commands/redhat/network.py ++++ b/commands/redhat/network.py +@@ -202,6 +202,11 @@ def _get_file_data(ifname_prefix, interface): + + route_data = '' + for i, route in enumerate(interface['routes']): ++ if route['network'] == '0.0.0.0' and \ ++ route['netmask'] == '0.0.0.0' and \ ++ 'gateway4' in interface and \ ++ route['gateway'] == interface['gateway4']: ++ continue + route_data += "ADDRESS%d=%s\n" % (i, route['network']) + route_data += "NETMASK%d=%s\n" % (i, route['netmask']) + route_data += "GATEWAY%d=%s\n" % (i, route['gateway']) +diff --git a/commands/suse/network.py b/commands/suse/network.py +index 2947974..baad7b2 100644 +--- a/commands/suse/network.py ++++ b/commands/suse/network.py +@@ -191,6 +191,10 @@ def _get_file_data(ifname, interface): + + route_data = '' + for route in interface['routes']: ++ if route['network'] == '0.0.0.0' and \ ++ route['netmask'] == '0.0.0.0' and \ ++ route['gateway'] == gateway4: ++ continue + network = route['network'] + netmask = route['netmask'] + gateway = route['gateway'] +diff --git a/lib/agentlib.c b/lib/agentlib.c +index ccba6e3..cced430 100644 +--- a/lib/agentlib.c ++++ b/lib/agentlib.c +@@ -73,7 +73,10 @@ static PyObject *_agentlib_get_interfaces(PyObject *self, PyObject *args) + goto next; + + #if defined(__linux__) +- if (ifa->ifa_addr->sa_family != PF_PACKET) ++ if (ifa->ifa_addr == NULL) ++ goto next; ++ ++ if (ifa->ifa_addr->sa_family != PF_PACKET) + goto next; + + struct sockaddr_ll *sll = (struct sockaddr_ll *)ifa->ifa_addr; +diff --git a/plugins/xscomm.py b/plugins/xscomm.py +index e3faa2e..9b8a33b 100644 +--- a/plugins/xscomm.py ++++ b/plugins/xscomm.py +@@ -41,7 +41,11 @@ class XSComm(object): + XENSTORE_RESPONSE_PATH) + + self.xs_handle = pyxenstore.Handle() +- self.xs_handle.mkdir(self.request_path) ++ try: ++ self.xs_handle.mkdir(self.request_path) ++ except: ++ pass ++ + self.requests = [] + + def _check_handle(self): +diff --git a/scripts/gentoo/nova-agent.in b/scripts/gentoo/nova-agent.in +index a043394..7f2687e 100755 +--- a/scripts/gentoo/nova-agent.in ++++ b/scripts/gentoo/nova-agent.in +@@ -59,7 +59,7 @@ start() { + /usr/bin/xenstore write data/host/system-init '{"name":"resetnetwork","value":""}' + /usr/bin/xenstore watch -n 1 data/guest/system-init >/dev/null + [ "$(/usr/bin/xenstore read data/guest/system-init | wc -l)" -gt "0" ] || eend 1 +- echo "UUID=\"$(/usr/bin/xenstore read name)\"" >> /etc/conf.d/nova-agent ++ echo "UUID=\"$(/usr/bin/xenstore read name)\"" > /etc/conf.d/nova-agent + fi + + eend $RET +diff --git a/scripts/installer.sh.in b/scripts/installer.sh.in +index 8ef793d..3fbf352 100755 +--- a/scripts/installer.sh.in ++++ b/scripts/installer.sh.in +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env bash + + # vim: tabstop=4 shiftwidth=4 softtabstop=4 + # +diff --git a/scripts/systemd/nova-agent.service.in b/scripts/systemd/nova-agent.service.in +index 9d8a4a7..b73ebbe 100644 +--- a/scripts/systemd/nova-agent.service.in ++++ b/scripts/systemd/nova-agent.service.in +@@ -4,7 +4,7 @@ Description=nova-agent service + [Service] + Environment=LD_LIBRARY_PATH=@prefix@/share/@PACKAGE@/@PACKAGE_VERSION@/lib + EnvironmentFile=-/etc/nova-agent.env +-ExecStart=@sbindir@/nova-agent -n -l info @prefix@/share/@PACKAGE@/nova-agent.py ++ExecStart=@prefix@/sbin/nova-agent -n -l info @prefix@/share/@PACKAGE@/nova-agent.py + + + [Install] +diff --git a/tools/nova-agent-builder.sh b/tools/nova-agent-builder.sh +index 1823639..fcaa7c7 100755 +--- a/tools/nova-agent-builder.sh ++++ b/tools/nova-agent-builder.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env bash + ##### NOVA AGENT BUILDER + ##### how_to:$ sh nova-agent-builder.sh help + ##### W.I.P. works fine for most of cases, +@@ -202,7 +202,7 @@ install_pre_requisite_freebsd(){ + export INSTALL_D="" + uname -a + +- pkg_add -r git autogen automake wget bash ++ pkg_add -r git autogen automake wget bash libtool + pkg_add -r py27-unittest2 py27-cryptkit py27-pycrypto py27-mox + + # re-install xen-tool :: required for pyxenstore install |