You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
324 lines
13 KiB
324 lines
13 KiB
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
|