backend/server/rhnServer/server_hardware.py | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
New commits:
commit 97d2de42f4f2e5fc64e9eab459b79fd8d2a24d28
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Wed Nov 23 16:22:12 2011 +0100
IPv6: filter out params, which are not used in query
addressing:
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/spacewalk/server/apacheRequest.py",
line 123, in call_function
response = apply(func, params)
File "/usr/share/rhn/server/handlers/xmlrpc/registration.py", line 999, in
refresh_hw_profile
server.save_hardware()
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_wrapper.py",
line 90, in save_hardware
ret = self.save_hardware_byid(self.server["id"])
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 917, in save_hardware_byid
hw.save(sysid)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 473, in save
info['ipv6'].save(self.get_server_id(server_id, name))
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 635, in save
self._delete(deletes)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 657, in _delete
return _dml(h, params)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 742, in _dml
rowcount = apply(statement.executemany, (), params)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnSQL/sql_base.py", line
172, in executemany
return apply(self._execute_wrapper, (self._executemany, ) + p, kw)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnSQL/driver_cx_Oracle.py",
line 108, in _execute_wrapper
retval = apply(function, p, kw)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnSQL/driver_cx_Oracle.py",
line 208, in _executemany
self._real_cursor.executemany(None, arr)
SQLError: (1036, 'ORA-01036: illegal variable name/number\n', 'delete from
rhnServerNetAddress6 where interface_id =
+:interface_id and address = :address and scope = :scope')
diff --git a/backend/server/rhnServer/server_hardware.py
b/backend/server/rhnServer/server_hardware.py
index 43a465f..2fac31b 100644
--- a/backend/server/rhnServer/server_hardware.py
+++ b/backend/server/rhnServer/server_hardware.py
@@ -654,7 +654,9 @@ class NetIfaceAddress(Device):
columns = self.unique
wheres = map(lambda x: '%s = :%s' % (x, x), columns)
h = rhnSQL.prepare(q % (self.table, string.join(wheres, " and ")))
- return _dml(h, params)
+ # filter out params, which are not used in query
+ bind_params = dict((c, params[c]) for c in columns)
+ return _dml(h, bind_params)
def _update(self, params):
q = """update %s
commit b28d0d9f41c015293013cfe47f95d78f32e17e82
Author: Miroslav Suchý <msuchy(a)redhat.com>
Date: Wed Nov 23 15:51:19 2011 +0100
IPv6: do not pass to oracle more params then is necessary
oracle binds all parameter it get and if it could match the type to
some SQL type it will raise an error.
Exception Handler Information
Traceback (most recent call last):
File "/usr/lib/python2.4/site-packages/spacewalk/server/apacheRequest.py",
line 123, in call_function
response = apply(func, params)
File "/usr/share/rhn/server/handlers/xmlrpc/registration.py", line 999, in
refresh_hw_profile
server.save_hardware()
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_wrapper.py",
line 90, in save_hardware
ret = self.save_hardware_byid(self.server["id"])
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 913, in save_hardware_byid
hw.save(sysid)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 463, in save
self._update(updates)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 528, in _update
return _dml(h, params)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnServer/server_hardware.py",
line 738, in _dml
rowcount = apply(statement.executemany, (), params)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnSQL/sql_base.py", line
172, in executemany
return apply(self._execute_wrapper, (self._executemany, ) + p, kw)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnSQL/driver_cx_Oracle.py",
line 108, in _execute_wrapper
retval = apply(function, p, kw)
File
"/usr/lib/python2.4/site-packages/spacewalk/server/rhnSQL/driver_cx_Oracle.py",
line 208, in _executemany
self._real_cursor.executemany(None, arr)
SQLError: (None, 'Variable_TypeByValue(): unhandled data type instance',
'update rhnServerNetInterface set hw_addr =
+:hw_addr, module = :module where server_id = :server_id and name = :name')
diff --git a/backend/server/rhnServer/server_hardware.py
b/backend/server/rhnServer/server_hardware.py
index 68073da..43a465f 100644
--- a/backend/server/rhnServer/server_hardware.py
+++ b/backend/server/rhnServer/server_hardware.py
@@ -445,6 +445,10 @@ class NetIfaceInformation(Device):
# Same value
continue
uploaded_iface.update({'name' : name, 'server_id' :
server_id})
+ if 'ipv4' in uploaded_iface:
+ del(uploaded_iface['ipv4'])
+ if 'ipv6' in uploaded_iface:
+ del(uploaded_iface['ipv6'])
updates.append(uploaded_iface)
# Everything else in self.ifaces has to be inserted