backend/server/handlers/app/packages.py | 8 +-
backend/wsgi/wsgiHandler.py | 4 -
java/code/src/com/redhat/rhn/common/db/datasource/xml/Package_queries.xml | 36
++++++----
java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java | 1
4 files changed, 31 insertions(+), 18 deletions(-)
New commits:
commit 182ac7bda4d4c078f98634daa201a6552159602d
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Mon Nov 1 12:22:13 2010 -0400
fixing package upload, to pass in checksums
diff --git a/backend/server/handlers/app/packages.py
b/backend/server/handlers/app/packages.py
index da66d81..e4f0301 100644
--- a/backend/server/handlers/app/packages.py
+++ b/backend/server/handlers/app/packages.py
@@ -34,6 +34,7 @@ from spacewalk.server.importlib.packageUpload import uploadPackages,
listChannel
from spacewalk.server.importlib.userAuth import UserAuth
from spacewalk.server.importlib.errataCache import schedule_errata_cache_update
from spacewalk.common.checksum import getFileChecksum
+from spacewalk.server.rhnSQL.const import ORACLE, POSTGRESQL
#12/22/05 wregglej 173287
#I made a decent number of changes to this file to implement session authentication.
@@ -259,7 +260,6 @@ class Packages(RPC_Base):
log_debug(3)
channels = info.get('channels', [])
force = info.get('force', 0)
-
org_id, force = rhnPackageUpload.authenticate_session(session_string,
channels=channels, force=force)
return self._uploadPackage(channels, org_id, force, info)
@@ -275,11 +275,13 @@ class Packages(RPC_Base):
header, payload_stream, header_start, header_end = \
rhnPackageUpload.load_package(package_stream)
- relative_path = rhnPackageUpload.relative_path_from_header(
- header, org_id=org_id)
checksum_type = header.checksum_type()
checksum = getFileChecksum(header.checksum_type(), file=payload_stream)
+
+ relative_path = rhnPackageUpload.relative_path_from_header(
+ header, org_id=org_id,checksum=checksum, checksum_type=checksum_type)
+
package_dict, diff_level = rhnPackageUpload.push_package(
header, payload_stream, checksum_type, checksum, org_id=org_id, force=force,
header_start=header_start, header_end=header_end,
commit e1fa0f14a32509f8f806b097e89ac4c9b24e71e7
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Mon Nov 1 12:17:11 2010 -0400
fixing ISE on package deletion due to RHNSAT.RHN_PFDQUEUE_PATH_UQ violation
also added user id checking during set queries
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Package_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Package_queries.xml
index 2e60759..6705862 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Package_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Package_queries.xml
@@ -178,12 +178,13 @@ WHERE id IN
<!-- Deletes references from a channel to a package for all packages in the given
RhnSet.
The set must contain the package ID in the "element" of the set. -->
<write-mode name="cleanup_package_channels_from_set">
- <query params="set_label">
+ <query params="set_label, uid">
DELETE FROM rhnChannelPackage
WHERE package_id IN (
SELECT s.element
FROM rhnSet s
WHERE s.label = :set_label
+ AND S.user_id = :uid
)
</query>
</write-mode>
@@ -1459,12 +1460,15 @@ SELECT P.id, PE.epoch, PE.version, PE.release
<!-- Schedules the deletion of all packages found in the given RhnSet. The set must
contain the package ID in the "element" of the set. -->
<write-mode name="schedule_pkg_for_delete_from_set">
- <query params="set_label">
- INSERT INTO rhnPackageFileDeleteQueue (path, created)
- (SELECT p.path, current_timestamp
+ <query params="set_label, uid">
+ INSERT INTO rhnPackageFileDeleteQueue (path)
+ (SELECT distinct(p.path)
FROM rhnPackage p, rhnSet s
WHERE p.id = s.element
AND s.label = :set_label
+ AND S.user_id = :uid
+ AND not exists
+ (select path from rhnPackageFileDeleteQueue Q where Q.path = p.path)
)
</query>
</write-mode>
@@ -1472,12 +1476,13 @@ SELECT P.id, PE.epoch, PE.version, PE.release
<!-- Deletes packages found in the given RhnSet. The set must contain the package ID
in
the "element" of the set. -->
<write-mode name="delete_packages_from_set">
- <query params="set_label">
+ <query params="set_label, uid">
DELETE FROM rhnPackage p
WHERE p.id IN (
SELECT s.element
FROM rhnSet s
WHERE s.label = :set_label
+ AND S.user_id = :uid
)
</query>
</write-mode>
@@ -1781,34 +1786,37 @@ SELECT distinct P.id AS ID,
<!-- Runs the cache cleanup for all packages in an RhnSet. The package ID must be in
"element" of the set. -->
<write-mode name="cleanup_needed_package_cache_from_set">
- <query params="set_label">
+ <query params="set_label, uid">
DELETE FROM rhnServerNeededCache r
WHERE r.package_id IN
(SELECT element
FROM rhnSet s
- WHERE s.label = :set_label)
+ WHERE s.label = :set_label
+ AND S.user_id = :uid)
</query>
</write-mode>
<write-mode name="cleanup_package_files_from_set">
- <query params="set_label">
+ <query params="set_label, uid">
DELETE FROM rhnPackageFile r
WHERE r.package_id IN
(SELECT element
FROM rhnSet s
- WHERE s.label = :set_label)
+ WHERE s.label = :set_label
+ AND S.user_id = :uid)
</query>
</write-mode>
<write-mode name="cleanup_package_changelog_from_set">
- <query params="set_label">
+ <query params="set_label, uid">
DELETE FROM rhnPackageChangeLogRec r
WHERE r.package_id IN
(SELECT element
FROM rhnSet s
- WHERE s.label = :set_label)
+ WHERE s.label = :set_label
+ AND S.user_id = :uid)
</query>
</write-mode>
@@ -1872,13 +1880,14 @@ ORDER BY P.package_arch_id DESC
<!-- Deletes sources of all packages found in the given RhnSet. The set must
contain the package ID in the "element" of the set. -->
<write-mode name="delete_package_sources_from_set">
- <query params="set_label">
+ <query params="set_label, uid">
DELETE FROM rhnPackageSource ps
WHERE ps.source_rpm_id IN (
SELECT p.source_rpm_id
FROM rhnPackage p, rhnSet s
WHERE p.id = s.element
AND s.label = :set_label
+ AND S.user_id = :uid
)
</query>
@@ -1887,11 +1896,12 @@ ORDER BY P.package_arch_id DESC
<!-- Returns the set of channels that any of the packages in the given set belong to.
The set must contain the package ID in the "element" of the set. -->
<mode name="determine_channels_for_packages_in_set">
- <query params="set_label">
+ <query params="set_label, uid">
SELECT DISTINCT cp.channel_id
FROM rhnChannelPackage cp, rhnSet s
WHERE cp.package_id = s.element
AND s.label = :set_label
+ AND S.user_id = :uid
</query>
</mode>
diff --git a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
index ed72ab3..8c99b4f 100644
--- a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
+++ b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
@@ -1159,6 +1159,7 @@ public class PackageManager extends BaseManager {
WriteMode mode;
Map<String, Object> params = new HashMap<String, Object>();
params.put("set_label", set.getLabel());
+ params.put("uid", user.getId());
// First, capture all of the channels that have one or more of the packages
// to delete (we'll need this later)
commit ab86740a73da2a319b1e416c95df80f2432d3092
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Mon Nov 1 09:43:21 2010 -0400
fixing wsgiHandler to look in new location for apacheServer
diff --git a/backend/wsgi/wsgiHandler.py b/backend/wsgi/wsgiHandler.py
index b722f2b..6e2ae25 100644
--- a/backend/wsgi/wsgiHandler.py
+++ b/backend/wsgi/wsgiHandler.py
@@ -14,12 +14,12 @@
#
#
-
+import os
from wsgi import wsgiRequest
from spacewalk.common import log_debug
-def handle(environ, start_response, server, component_type,
type="server.apacheServer"):
+def handle(environ, start_response, server, component_type,
type="spacewalk.server.apacheServer"):
#wsgi seems to capitalize incoming headers and add HTTP- to the front :/
# so we strip out the first 5 letters, and transform it into what we want.
replacements = {'_':'-', 'Rhn':'RHN',
'Md5Sum':'MD5sum', 'Xml':'XML'}