backend/server/rhnServer/server_packages.py | 10 ++++++---- backend/server/rhnServer/server_solarispatches.py | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-)
New commits: commit b7d8b3172eb76cc3ed03f2adba43e5b8f00d8658 Author: Jan Pazdziora jpazdziora@redhat.com Date: Fri Mar 16 13:14:05 2012 +0100
802688 - Forcing empty strings to be Nones.
Addressing Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/spacewalk/server/apacheRequest.py", line 122, in call_function response = apply(func, params) File "/usr/share/rhn/server/handlers/xmlrpc/registration.py", line 924, in update_packages server.save_packages() File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnServer/server_wrapper.py", line 75, in save_packages ret = self.save_packages_byid(self.server["id"], schedule=schedule) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnServer/server_packages.py", line 240, in save_packages_byid update_errata_cache(sysid) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnServer/server_packages.py", line 321, in update_errata_cache update_needed_cache(server_id) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/driver_postgresql.py", line 115, in __call__ result = Function.__call__(self, *args) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/driver_postgresql.py", line 92, in __call__ raise sql_base.SQLError(error_code, e.pgerror, e) SQLError: (99999, 'ERROR: invalid input syntax for integer: "None"\nCONTEXT: PL/pgSQL function "vercmp" line 14 at assignment\nPL/pgSQL function "evr_t_compare" line 2 at RETURN\nPL/pgSQL function "evr_t_gt" line 2 at RETURN\nPL/pgSQL function "evr_t_larger" line 2 at IF\nSQL statement "insert into rhnServerNeededCache (server_id, errata_id, package_id) (select distinct server_id, errata_id, package_id from rhnServerNeededView where server_id = $1 )"\nPL/pgSQL function "update_needed_cache" line 4 at SQL statement\n', DataError('invalid input syntax for integer: "None"\nCONTEXT: PL/pgSQL function "vercmp" line 14 at assignment\nPL/pgSQL function "evr_t_compare" line 2 at RETURN\nPL/pgSQL function "evr_t_gt" line 2 at RETURN\nPL/pgSQL function "evr_t_larger" line 2 at IF\nSQL statement "insert into rhnServerNeededCache (server_id, errata_id, package_id) (select distinct server_id, errata_id, package_id from rhnServerNeededView where server_id = $1 )"\nPL/pgSQL function "update_needed_cache" line 4 at SQL statement\n',))
diff --git a/backend/server/rhnServer/server_solarispatches.py b/backend/server/rhnServer/server_solarispatches.py index 92f6afb..82b2f53 100644 --- a/backend/server/rhnServer/server_solarispatches.py +++ b/backend/server/rhnServer/server_solarispatches.py @@ -52,6 +52,8 @@ class DBPatch(object): """[constructor] This method looks up the patch in the databse, the 'id' field is the rhnPackage id. The 'id' field will be None if the patch does not exist in the database""" + if patch['epoch'] == '': + patch['epoch'] == None self.id = get_package_id(patch)
# solaris patches server class -------------------------------------------
commit 788ed1011b832297571ea5f41f37cb2797eb7f5d Author: Jan Pazdziora jpazdziora@redhat.com Date: Fri Mar 16 11:19:09 2012 +0100
802688 - Forcing empty strings to be Nones.
Addressing Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/spacewalk/server/apacheRequest.py", line 122, in call_function response = apply(func, params) File "/usr/share/rhn/server/handlers/xmlrpc/registration.py", line 923, in update_packages server.add_package(package) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnServer/server_wrapper.py", line 62, in add_package SolarisPatches.add_patch(self, self.server.get("id"), entry) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnServer/server_solarispatches.py", line 89, in add_patch self._patches[sysid].append(DBPatch(patch)) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnServer/server_solarispatches.py", line 55, in __init__ self.id = get_package_id(patch) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnServer/server_solarispatches.py", line 39, in get_packa ge_id handle.execute(name=p.n, epoch=p.e, ver=p.v, rel=p.r, arch=p.a) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/sql_base.py", line 163, in execute return apply(self._execute_wrapper, (self._execute, ) + p, kw) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/driver_postgresql.py", line 282, in _execute_wrappe r retval = apply(function, p, kw) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/sql_base.py", line 217, in _execute return self._execute_(args, kwargs) File "/usr/lib/python2.6/site-packages/spacewalk/server/rhnSQL/driver_postgresql.py", line 295, in _execute_ self._real_cursor.execute(self.sql, params) IntegrityError: new row for relation "rhnpackageevr" violates check constraint "vn_rhnpackageevr_epoch" CONTEXT: Error occurred on dblink connection named "unnamed": could not execute command. SQL statement "SELECT dblink_exec('at_conn', $1 , true)" PL/pgSQL function "pg_dblink_exec" line 4 at PERFORM SQL statement "SELECT pg_dblink_exec( 'insert into rhnPackageEVR(id, epoch, version, release, evr) values (' || $1 || ', ' || coalesce(quote_literal( $2 ), 'NULL') || ', ' || coalesce(quote_literal( $3 ), 'NULL') || ', ' || coalesce(quote_literal( $4 ), 'NULL') || ', ' || evr_t(coalesce(quote_literal( $2 ), 'NULL'), coalesce(quote_literal( $3 ), 'NULL'), coalesce(quote_literal( $4 ), 'NULL')) || ')' )" PL/pgSQL function "lookup_evr" line 14 at PERFORM
diff --git a/backend/server/rhnServer/server_packages.py b/backend/server/rhnServer/server_packages.py index a738f34..31545d1 100644 --- a/backend/server/rhnServer/server_packages.py +++ b/backend/server/rhnServer/server_packages.py @@ -44,15 +44,17 @@ class dbPackage: return None if not pdict.has_key('arch') or pdict['arch'] is None: pdict['arch'] = "" - if string.lower(str(pdict['epoch'])) == "(none)" or pdict['epoch'] == None: - pdict['epoch'] = "" - for k in ('name', 'version', 'release', 'epoch', 'arch'): + if string.lower(str(pdict['epoch'])) == "(none)" or pdict['epoch'] == "" or pdict['epoch'] == None: + pdict['epoch'] = None + else: + pdict['epoch'] = str(pdict['epoch']) + for k in ('name', 'version', 'release', 'arch'): if pdict[k] == None: return None self.n = str(pdict['name']) self.v = str(pdict['version']) self.r = str(pdict['release']) - self.e = str(pdict['epoch']) + self.e = pdict['epoch'] self.a = str(pdict['arch']) if pdict.has_key('installtime'): self.installtime = pdict['installtime']
spacewalk-commits@lists.fedorahosted.org