web/html/nav/system_detail.xml | 2
web/modules/rhn/RHN/DB/ConfigRevision.pm | 39
web/modules/rhn/RHN/DB/DataSource/xml/config_queries.xml | 625 ---------------
web/modules/sniglets/Sniglets/ListView/FileList.pm | 208 ----
web/modules/sniglets/Sniglets/Lists.pm | 4
5 files changed, 35 insertions(+), 843 deletions(-)
New commits:
commit e8b0ad2b9c56c313b546c5e597578e9583f0f157
Author: Partha Aji <paji(a)redhat.com>
Date: Wed Sep 15 19:37:52 2010 -0400
Cleanedup old/proted/unused config queries and updated the one for snapshot
diff --git a/web/html/nav/system_detail.xml b/web/html/nav/system_detail.xml
index 5f5b69e..6f44a83 100644
--- a/web/html/nav/system_detail.xml
+++ b/web/html/nav/system_detail.xml
@@ -82,7 +82,7 @@
</rhn-tab>
- <rhn-tab name="Configuration" acl="system_feature(ftr_config)"
url="/rhn/systems/details/configuration/Overview.do"
node-id="selected_configfiles">
+ <rhn-tab name="Configuration" acl="system_feature(ftr_config)"
url="/rhn/systems/details/configuration/Overview.do">
<rhn-tab-directory>/rhn/systems/details/configuration</rhn-tab-directory>
diff --git a/web/modules/rhn/RHN/DB/ConfigRevision.pm
b/web/modules/rhn/RHN/DB/ConfigRevision.pm
index 9cf3f0e..5b9f6e2 100644
--- a/web/modules/rhn/RHN/DB/ConfigRevision.pm
+++ b/web/modules/rhn/RHN/DB/ConfigRevision.pm
@@ -31,7 +31,7 @@ our @ISA = qw/RHN::SimpleStruct/;
our @core_fields = qw/id revision config_file_id config_content_id
config_info_id delim_start delim_end created
modified username groupname filemode latest_id latest path
- md5sum file_size org_id config_channel_id filetype selinux_ctx/;
+ md5sum file_size org_id config_channel_id filetype selinux_ctx
symlink_target_filename_id/;
our @transient_fields = qw/__contents__ is_binary/;
our @simple_struct_fields = (@core_fields, @transient_fields);
@@ -47,14 +47,18 @@ SELECT
CI.username,
CI.groupname,
CI.filemode,
+ CI.selinux_ctx,
+ CI.symlink_target_filename_id,
CFN.path,
CC.org_id,
CC.id config_channel_id,
Csum.checksum md5sum,
- CCon.file_size,
+ coalesce(CCon.file_size, 0),
(SELECT CFt.latest_config_revision_id FROM rhnConfigFile CFt WHERE CFT.id =
CR.config_file_id) LATEST_ID,
CCon.is_binary,
- CFT.name as filetype
+ CFT.name as filetype,
+ CCon.delim_start,
+ CCon.delim_end
FROM rhnConfigInfo CI,
rhnConfigFileName CFN,
rhnConfigContent CCon,
@@ -67,10 +71,10 @@ SELECT
AND CI.id = CR.config_info_id
AND CF.id = CR.config_file_id
AND CFN.id = CF.config_file_name_id
- AND CCon.id = CR.config_content_id
+ AND CCon.id = CR.config_content_id (+)
AND CC.id = CF.config_channel_id
AND CFT.id = CR.config_file_type_id
- AND CCon.checksum_id = Csum.id
+ AND CCon.checksum_id = Csum.id (+)
EOS
my $sth = $dbh->prepare($query);
$sth->execute_h(id => $params{id});
@@ -95,7 +99,8 @@ EOS
sub create_config_contents {
my $class = shift;
my $contents = shift;
-
+ my $delim_start = shift;
+ my $delim_end = shift;
use Digest::MD5 qw/md5_hex/;
my $md5sum = md5_hex($contents);
@@ -105,13 +110,13 @@ sub create_config_contents {
INSERT INTO rhnConfigContent
(id, checksum_id, file_size, contents, delim_start, delim_end)
VALUES
- (rhn_confcontent_id_seq.nextval, lookup_checksum('md5', :md5sum), :file_size,
:contents, '{|', '|}')
+ (rhn_confcontent_id_seq.nextval, lookup_checksum('md5', :md5sum), :file_size,
:contents, :delim_start, :delim_end)
RETURNING id INTO :ccid
EOS
my $ccid;
$sth->execute_h(ccid => \$ccid, md5sum => $md5sum, file_size =>
length($contents),
- contents => $dbh->encode_blob($contents, "contents"));
+ contents => $dbh->encode_blob($contents, "contents"), delim_start
=> $delim_start, delim_end => $delim_end);
$dbh->commit;
return $ccid;
@@ -124,7 +129,7 @@ sub getFileTypeId {
#make sure we're in lowercase
$filetype =~ tr/A-Z/a-z/;
- if ($filetype ne "file" and $filetype ne "directory") {
+ if ($filetype ne "file" and $filetype ne "directory" and
$filetype ne "symlink") {
#default to file for now...
$filetype = "file";
}
@@ -155,14 +160,22 @@ sub commit {
if (defined $self->id) {
die "Unable to commit a ConfigRevision with an existing ID; make a new
revision";
}
-
+ my $ftype = $self->filetype || 'file';
my $dbh = RHN::DB->connect;
- my $ciid = $dbh->call_function('lookup_config_info', $self->username,
$self->groupname, $self->filemode, $self->selinux_ctx, undef);
+ my $ciid;
+ if ($ftype eq 'symlink') {
+ $ciid = $dbh->call_function('lookup_config_info', $self->username,
$self->groupname, $self->filemode, $self->selinux_ctx,
$self->symlink_target_filename_id);
+ }
+ else {
+ $ciid = $dbh->call_function('lookup_config_info', $self->username,
$self->groupname, $self->filemode, $self->selinux_ctx, undef);
+ }
+
my $ccid = $self->config_content_id;
my $cftid = getFileTypeId($self->filetype);
+;
- if (defined $self->__contents__) {
- $ccid = RHN::ConfigRevision->create_config_contents($self->__contents__);
+ if ($ftype eq 'file' and defined $self->__contents__) {
+ $ccid = RHN::ConfigRevision->create_config_contents($self->__contents__,
$self->delim_start, $self->delim_end);
$self->config_content_id($ccid);
}
diff --git a/web/modules/rhn/RHN/DB/DataSource/xml/config_queries.xml
b/web/modules/rhn/RHN/DB/DataSource/xml/config_queries.xml
index 0abc9be..167d892 100644
--- a/web/modules/rhn/RHN/DB/DataSource/xml/config_queries.xml
+++ b/web/modules/rhn/RHN/DB/DataSource/xml/config_queries.xml
@@ -1,134 +1,5 @@
<datasource_modes>
-<mode name="system_managed_config_latest_revisions">
- <query params="sid">
-SELECT DISTINCT CF.latest_config_revision_id,
- CFN.path,
- CF.id
- FROM rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnServerConfigChannel SCC
- WHERE SCC.server_id = :sid
- AND SCC.config_channel_id = CF.config_channel_id
- AND CF.config_file_name_id = CFN.id
- </query>
-</mode>
-
-<mode name="latest_files_in_namespace">
- <query params="ccid">
-SELECT CR.id, CFN.path, CR.revision, CCon.file_size,
- TO_CHAR(CCon.modified, 'YYYY-MM-DD HH24:MI:SS') AS MODIFIED,
- CFT.name AS FILETYPE
- FROM rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnConfigChannel CC,
- rhnConfigFileType CFT
- WHERE CC.id = :ccid
- AND CF.config_channel_id = CC.id
- AND CFN.id = CF.config_file_name_id
- AND CR.config_file_id = CF.id
- AND CR.config_content_id = CCon.id
- AND CF.latest_config_revision_id = CR.id
- AND CR.config_file_type_id = CFT.id
-ORDER BY CFN.path
- </query>
-</mode>
-
-<mode name="selected_files">
- <query params="user_id">
-SELECT CR.id, CFN.path, CR.revision,
- TO_CHAR(CCon.modified, 'YYYY-MM-DD HH24:MI:SS') AS MODIFIED,
- CFT.name AS FILETYPE
- FROM rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnSet S,
- rhnConfigFileType CFT
- WHERE CR.id = S.element
- AND S.user_id = :user_id
- AND S.label = 'selected_files'
- AND CFN.id = CF.config_file_name_id
- AND CR.config_file_id = CF.id
- AND CR.config_content_id = CCon.id
- AND CF.latest_config_revision_id = CR.id
- AND CR.config_file_type_id = CFT.id
-ORDER BY CFN.path
- </query>
-</mode>
-
-<mode name="files_in_sandbox">
- <query params="sid">
-SELECT CR.id,
- CFN.path,
- CR.revision,
- TO_CHAR(CCon.modified, 'YYYY-MM-DD HH24:MI:SS') AS CONTENTS_MODIFIED,
- TO_CHAR(CF.modified, 'YYYY-MM-DD HH24:MI:SS') AS UPLOADED_AT,
- NVL2(CCon.contents, DECODE(CCon.is_binary, 'Y', 'binary',
'text'), 'meta-data only') AS CONTENT_TYPE
- FROM rhnConfigInfo CI,
- rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnConfigChannel CC,
- rhnServerConfigChannel SCC
- WHERE CC.confchan_type_id = (SELECT id FROM rhnConfigChannelType WHERE label =
'server_import')
- AND SCC.server_id = :sid
- AND SCC.config_channel_id = CC.id
- AND CF.config_channel_id = CC.id
- AND CFN.id = CF.config_file_name_id
- AND CR.config_file_id = CF.id
- AND CR.config_content_id = CCon.id
- AND CR.config_info_id = CI.id
- AND CF.latest_config_revision_id = CR.id
-ORDER BY CFN.path
- </query>
-</mode>
-
-<mode name="files_in_override">
- <query params="sid">
-SELECT CR.id, CFN.path, CR.revision,
- TO_CHAR(CCon.modified, 'YYYY-MM-DD HH24:MI:SS') AS MODIFIED,
- CFT.name AS FILETYPE
- FROM rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnConfigChannel CC,
- rhnServerConfigChannel SCC,
- rhnConfigFileType CFT
- WHERE CC.confchan_type_id = (SELECT id FROM rhnConfigChannelType WHERE label =
'local_override')
- AND SCC.server_id = :sid
- AND SCC.config_channel_id = CC.id
- AND CF.config_channel_id = CC.id
- AND CFN.id = CF.config_file_name_id
- AND CR.config_file_id = CF.id
- AND CR.config_content_id = CCon.id
- AND CF.latest_config_revision_id = CR.id
- AND CR.config_file_type_id = CFT.id
-ORDER BY CFN.path
- </query>
-</mode>
-
-<mode name="configfile_revisions">
- <query params="crid">
-SELECT CR.id,
- Csum.checksum md5sum,
- CR.revision,
- NVL2((SELECT 1 FROM rhnConfigFile CFt WHERE CFT.latest_config_revision_id =
CR.id), 'Y', 'N') LATEST,
- TO_CHAR(CCon.created, 'YYYY-MM-DD HH24:MI:SS') AS CREATED
- FROM rhnConfigContent CCon, rhnConfigRevision CR, rhnConfigFile CF,
- rhnChecksum Csum
- WHERE CCon.id = CR.config_content_id
- AND CF.id = (SELECT config_file_id FROM rhnConfigRevision WHERE id = :crid)
- AND CF.id = CR.config_file_id
- AND CCon.checksum_id = Csum.id
-ORDER BY CR.revision DESC
- </query>
-</mode>
-
<mode name="configfiles_for_system">
<query params="sid">
SELECT CR.id AS ID,
@@ -136,7 +7,7 @@ SELECT CR.id AS ID,
CFN.path,
CR.revision,
NVL2((SELECT 1 FROM rhnConfigFile CFt WHERE CFT.latest_config_revision_id =
CR.id), 'Y', 'N') LATEST,
- TO_CHAR(CCon.created, 'YYYY-MM-DD HH24:MI:SS') AS CREATED,
+ TO_CHAR(coalesce(CCon.created, CF.created), 'YYYY-MM-DD HH24:MI:SS') AS
CREATED,
CASE CCT.label WHEN 'local_override' THEN '(system override)' ELSE
CC.name END AS CONFIG_CHANNEL_NAME,
CC.label AS CONFIG_CHANNEL_LABEL,
CC.id AS CONFIG_CHANNEL_ID,
@@ -160,11 +31,11 @@ SELECT CR.id AS ID,
AND CF.config_file_name_id = CFN.id
AND CF.config_channel_id = CC.id
AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
+ AND CR.config_content_id = CCon.id (+)
AND CF.latest_config_revision_id = CR.id
AND CCT.label in ('normal', 'local_override')
AND CR.config_file_type_id = CFT.id
- AND CCon.checksum_id = Csum.id
+ AND CCon.checksum_id = Csum.id(+)
ORDER BY CCT.priority, SCC.position
</query>
<elaborator params="sid" multiple="t">
@@ -198,323 +69,6 @@ ORDER BY SCC.position
</elaborator>
</mode>
-<mode name="configfiles_for_system_diff">
- <query params="sid">
-SELECT CR.id AS ID,
- Csum.checksum md5sum,
- CFN.path,
- CR.revision,
- NVL2((SELECT 1 FROM rhnConfigFile CFt WHERE CFT.latest_config_revision_id =
CR.id), 'Y', 'N') LATEST,
- TO_CHAR(CCon.created, 'YYYY-MM-DD HH24:MI:SS') AS CREATED,
- CASE CCT.label WHEN 'local_override' THEN '(system override)' ELSE
CC.name END AS CONFIG_CHANNEL_NAME,
- CC.label AS CONFIG_CHANNEL_LABEL,
- CC.id AS CONFIG_CHANNEL_ID,
- SCC.position AS RANK,
- CFN.id as CONFIG_FILE_NAME_ID,
- CCT.label as type,
- CCT.priority as type_priority,
- CFT.name as FILETYPE
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnServerConfigChannel SCC,
- rhnConfigFileType CFT,
- rhnChecksum Csum
- WHERE SCC.server_id = :sid
- AND SCC.config_channel_id = CF.config_channel_id
- AND CF.id = CR.config_file_id
- AND CF.config_file_name_id = CFN.id
- AND CF.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
- AND CF.latest_config_revision_id = CR.id
- AND CCT.label in ('normal', 'local_override')
- AND CR.config_file_type_id = CFT.id
- AND NOT CFT.label = 'directory'
- AND CCon.checksum_id = Csum.id
-ORDER BY CCT.priority, SCC.position
- </query>
- <elaborator params="sid" multiple="t">
-SELECT DISTINCT CR_orig.id AS ID,
- CR.id AS CRID,
- CR.revision,
- CC.name AS CONFIG_CHANNEL,
- CC.label AS CONFIG_CHANNEL_LABEL,
- CC.id AS CONFIG_CHANNEL_ID,
- SCC.position AS RANK
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigFile CF_Orig,
- rhnConfigFile CF,
- rhnConfigRevision CR_orig,
- rhnConfigRevision CR,
- rhnServerConfigChannel SCC
- WHERE 1=1
- AND SCC.server_id = :sid
- AND SCC.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCT.label in ('normal', 'local_override')
- AND SCC.config_channel_id = CF.config_channel_id
- AND CR_orig.id IN (%s)
- AND CF.config_channel_id != CF_orig.config_channel_id
- AND CF.config_file_name_id = CF_orig.config_file_name_id
- AND CF.latest_config_revision_id = CR.id
- AND CF.id = CR.config_file_id
- AND CF_Orig.id = CR_Orig.config_file_id
-ORDER BY SCC.position
- </elaborator>
-</mode>
-
-<mode name="ssm_configfile_revisions">
- <query params="user_id">
-SELECT SCC.server_id,
- CR.id AS ID,
- Csum.checksum md5sum,
- CFN.path,
- CR.revision,
- NVL2((SELECT 1 FROM rhnConfigFile CFt WHERE CFT.latest_config_revision_id =
CR.id), 'Y', 'N') LATEST,
- TO_CHAR(CCon.created, 'YYYY-MM-DD HH24:MI:SS') AS CREATED,
- CASE CCT.label WHEN 'local_override' THEN '(system override)' ELSE
CC.name END AS CONFIG_CHANNEL_NAME,
- CC.label AS CONFIG_CHANNEL_LABEL,
- CC.id AS CONFIG_CHANNEL_ID,
- SCC.position AS RANK,
- CFN.id as CONFIG_FILE_NAME_ID,
- CCT.label as type,
- CCT.priority as type_priority
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnServerConfigChannel SCC,
- rhnChecksum Csum
- WHERE SCC.server_id IN (
- SELECT DISTINCT S.id
- FROM rhnServer S,
- rhnSet ST,
- rhnUserServerPerms USP
- WHERE USP.user_id = :user_id
- AND ST.user_id = :user_id
- AND ST.label = 'system_list'
- AND USP.server_id = ST.element
- AND rhn_server.system_service_level(USP.server_id, 'provisioning') > 0
- AND USP.server_id = S.id
- )
- AND SCC.config_channel_id = CF.config_channel_id
- AND CF.id = CR.config_file_id
- AND CF.config_file_name_id = CFN.id
- AND CF.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
- AND CF.latest_config_revision_id = CR.id
- AND CCT.label in ('normal', 'local_override')
- AND CFN.id IN (
- SELECT element
- FROM rhnSet
- WHERE label = 'selected_configfiles_ssm'
- AND USER_ID = :user_id
- )
- AND CCon.checksum_id = Csum.id
- ORDER BY SCC.server_id, CCT.priority, SCC.position
- </query>
-</mode>
-
-
-<mode name="configfiles_for_ssm">
- <query params="user_id">
-SELECT DISTINCT CFN.id, CFN.path, CF.ID AS cfid, CFT.name as TYPE
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnServerConfigChannel SCC,
- rhnConfigFileType CFT
- WHERE 1=1
- AND SCC.server_id IN (
- SELECT DISTINCT S.id
- FROM rhnServer S,
- rhnSet ST,
- rhnUserServerPerms USP
- WHERE USP.user_id = :user_id
- AND ST.user_id = :user_id
- AND ST.label = 'system_list'
- AND USP.server_id = ST.element
- AND rhn_server.system_service_level(USP.server_id, 'provisioning') >
0
- AND USP.server_id = S.id
- )
- AND SCC.config_channel_id = CF.config_channel_id
- AND CF.id = CR.config_file_id
- AND CF.config_file_name_id = CFN.id
- AND CF.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
- AND CF.latest_config_revision_id = CR.id
- AND CCT.label in ('normal', 'local_override')
- AND CR.config_file_type_id = CFT.id
-ORDER BY CFN.path
- </query>
- <elaborator params="user_id">
-SELECT CFN.id, count(DISTINCT SCC.server_id) AS system_count
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnServerConfigChannel SCC
- WHERE 1=1
- AND SCC.server_id IN (
- SELECT DISTINCT S.id
- FROM rhnServer S,
- rhnSet ST,
- rhnUserServerPerms USP
- WHERE USP.user_id = :user_id
- AND ST.user_id = :user_id
- AND ST.label = 'system_list'
- AND USP.server_id = ST.element
- AND rhn_server.system_service_level(USP.server_id, 'provisioning') >
0
- AND USP.server_id = S.id
- )
- AND CFN.id IN (%s)
- AND SCC.config_channel_id = CF.config_channel_id
- AND CF.id = CR.config_file_id
- AND CF.config_file_name_id = CFN.id
- AND CF.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
- AND CF.latest_config_revision_id = CR.id
- AND CCT.label in ('normal', 'local_override')
- GROUP BY CFN.id
- </elaborator>
-</mode>
-
-<mode name="configfiles_for_ssm_diff">
- <query params="user_id">
-SELECT DISTINCT CFN.id, CFN.path, CF.ID AS cfid, CFT.name as TYPE
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnServerConfigChannel SCC,
- rhnConfigFileType CFT
- WHERE 1=1
- AND SCC.server_id IN (
- SELECT DISTINCT S.id
- FROM rhnServer S,
- rhnSet ST,
- rhnUserServerPerms USP
- WHERE USP.user_id = :user_id
- AND ST.user_id = :user_id
- AND ST.label = 'system_list'
- AND USP.server_id = ST.element
- AND rhn_server.system_service_level(USP.server_id, 'provisioning') >
0
- AND USP.server_id = S.id
- )
- AND SCC.config_channel_id = CF.config_channel_id
- AND CF.id = CR.config_file_id
- AND CF.config_file_name_id = CFN.id
- AND CF.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
- AND CF.latest_config_revision_id = CR.id
- AND CCT.label in ('normal', 'local_override')
- AND CR.config_file_type_id = CFT.id
- AND NOT CFT.label = 'directory'
-ORDER BY CFN.path
- </query>
- <elaborator params="user_id">
-SELECT CFN.id, count(DISTINCT SCC.server_id) AS system_count
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigContent CCon,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnServerConfigChannel SCC
- WHERE 1=1
- AND SCC.server_id IN (
- SELECT DISTINCT S.id
- FROM rhnServer S,
- rhnSet ST,
- rhnUserServerPerms USP
- WHERE USP.user_id = :user_id
- AND ST.user_id = :user_id
- AND ST.label = 'system_list'
- AND USP.server_id = ST.element
- AND rhn_server.system_service_level(USP.server_id, 'provisioning') >
0
- AND USP.server_id = S.id
- )
- AND CFN.id IN (%s)
- AND SCC.config_channel_id = CF.config_channel_id
- AND CF.id = CR.config_file_id
- AND CF.config_file_name_id = CFN.id
- AND CF.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
- AND CF.latest_config_revision_id = CR.id
- AND CCT.label in ('normal', 'local_override')
- GROUP BY CFN.id
- </elaborator>
-</mode>
-
-<mode name="selected_configfiles">
- <query params="set_label, user_id">
-SELECT CR.id,
- Csum.checksum md5sum,
- CFN.path,
- CR.revision,
- NVL2((SELECT 1 FROM rhnConfigFile CFt WHERE CFT.latest_config_revision_id =
CR.id), 'Y', 'N') LATEST,
- TO_CHAR(CCon.created, 'YYYY-MM-DD HH24:MI:SS') AS CREATED,
- CASE CCT.label WHEN 'local_override' THEN '(system override)' ELSE
CC.name END AS CONFIG_CHANNEL_NAME,
- CC.label AS CONFIG_CHANNEL_LABEL,
- CC.id AS CONFIG_CHANNEL_ID
- FROM rhnConfigChannelType CCT,
- rhnConfigChannel CC,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigContent CCon,
- rhnConfigRevision CR,
- rhnSet S,
- rhnChecksum Csum
- WHERE S.user_id = :user_id
- AND S.label = :set_label
- AND S.element = CR.id
- AND CR.config_file_id = CF.id
- AND CF.config_channel_id = CC.id
- AND CC.confchan_type_id = CCT.id
- AND CCon.id = CR.config_content_id
- AND CCT.label IN ('normal', 'local_override')
- AND CFN.id = CF.config_file_name_id
- AND CCon.checksum_id = Csum.id
-ORDER BY CFN.path
- </query>
-</mode>
-
-<mode name="configfilenames_for_import">
- <query params="">
---dummy query
- </query>
-</mode>
-
-<mode name="selected_configfilenames">
- <query params="set_label, user_id">
-SELECT CFN.id, CFN.path
- FROM rhnSet S, rhnConfigFileName CFN
- WHERE S.user_id = :user_id
- AND S.label = :set_label
- AND S.element = CFN.id
-ORDER BY CFN.path
- </query>
-</mode>
-
<mode name="configfiles_for_snapshot">
<query params="ss_id">
SELECT DISTINCT
@@ -524,10 +78,10 @@ SELECT DISTINCT
CFN.path,
CR.revision,
CR.id AS REVISION_ID,
- CR.delim_start,
- CR.delim_end,
+ CCon.delim_start,
+ CCon.delim_end,
CF.config_channel_id,
- TO_CHAR(CCon.created, 'YYYY-MM-DD HH24:MI:SS') AS CREATED
+ TO_CHAR(coalesce(CCon.created, CF.created), 'YYYY-MM-DD HH24:MI:SS') AS
CREATED
FROM rhnConfigContent CCon,
rhnConfigFileName CFN,
rhnConfigFile CF,
@@ -536,125 +90,15 @@ SELECT DISTINCT
rhnChecksumView Csum
WHERE SCR.snapshot_id = :ss_id
AND SCR.config_revision_id = CR.id
- AND CR.config_content_id = CCon.id
+ AND CR.config_content_id = CCon.id (+)
AND CR.config_file_id = CF.id
AND CF.config_file_name_id = CFN.id
- AND CCon.checksum_id = Csum.id
+ AND CCon.checksum_id = Csum.id (+)
ORDER BY CFN.path
</query>
</mode>
-<mode name="configfiles_for_user">
- <query params="org_id, user_id">
-SELECT DISTINCT CFN.id, CFN.path
- FROM rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigChannel CC
- WHERE CC.org_id = :org_id
- AND CF.config_channel_id = CC.id
- AND rhn_config_channel.get_user_file_access(CF.id, :user_id) = 1
- AND CF.config_file_name_id = CFN.id
-ORDER BY UPPER(CFN.path)
- </query>
- <elaborator params="org_id, user_id">
-SELECT CFN.id,
- count(CF.config_channel_id) AS config_channel_count
- FROM rhnConfigFileName CFN, rhnConfigFile CF, rhnConfigChannel CC
- WHERE CFN.id IN (%s)
- AND CFN.id = CF.config_file_name_id
- AND CF.config_channel_id = CC.id
- AND CC.org_id = :org_id
- AND rhn_config_channel.get_user_chan_access(CC.id, :user_id) = 1
-GROUP BY CFN.id
- </elaborator>
-</mode>
-
-<mode name="revisions_of_configfile">
- <query params="crid">
-SELECT CR.id,
- CR.revision,
- CCon.is_binary
- FROM rhnConfigContent CCon,
- rhnConfigRevision CR,
- rhnConfigFile CF
- WHERE CF.id = (SELECT CR2.config_file_id FROM rhnConfigRevision CR2 WHERE CR2.id =
:crid)
- AND CR.config_file_id = CF.id
- AND CCon.id = CR.config_content_id
-ORDER BY CR.revision
- </query>
-</mode>
-
-<mode name="org_configfile_size_totals">
- <query params="org_id">
-SELECT CFN.id AS id,
- CFN.path,
- CC.name AS CONFIG_CHANNEL_NAME,
- CC.label AS CONFIG_CHANNEL_LABEL,
- CC.id AS CONFIG_CHANNEL_ID,
- CF.latest_config_revision_id,
- LCR.revision AS latest_config_revision,
- SUM(CCon.file_size) AS total_file_size
- FROM rhnConfigContent CCon,
- rhnConfigRevision CR,
- rhnConfigRevision LCR,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigChannel CC
- WHERE CC.org_id = :org_id
- AND CF.config_channel_id = CC.id
- AND CFN.id = CF.config_file_name_id
- AND LCR.id = CF.latest_config_revision_id
- AND CR.config_file_id = CF.id
- AND CCon.id = CR.config_content_id
-GROUP BY CFN.id, CFN.path, CC.name, CC.label, CC.id, CF.latest_config_revision_id,
LCR.revision
-ORDER BY total_file_size DESC
- </query>
-</mode>
-
-<mode name="config_action_failures">
- <query params="sid, aid">
-SELECT CFN.path,
- CR.id,
- CR.revision,
- ACR.id AS ACTION_REVISION_ID,
- CFF.name AS FAILURE_REASON
- FROM rhnConfigFileFailure CFF,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnActionConfigRevision ACR
- WHERE ACR.action_id = :aid
- AND ACR.server_id = :sid
- AND ACR.config_revision_id = CR.id
- AND CR.config_file_id = CF.id
- AND CF.config_file_name_id = CFN.id
- AND ACR.failure_id = CFF.id
-ORDER BY UPPER(CFN.path)
- </query>
-</mode>
-
-<mode name="config_action_non_failures">
- <query params="sid, aid">
-SELECT CFN.path,
- CR.id,
- CR.revision,
- ACR.id AS ACTION_REVISION_ID
- FROM rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnActionConfigRevision ACR
- WHERE ACR.action_id = :aid
- AND ACR.server_id = :sid
- AND ACR.failure_id IS NULL
- AND ACR.config_revision_id = CR.id
- AND CR.config_file_id = CF.id
- AND CF.config_file_name_id = CFN.id
-ORDER BY UPPER(CFN.path)
- </query>
-</mode>
-
-
<mode name="config_action_revisions">
<query params="aid, sid">
SELECT CFN.path,
@@ -701,59 +145,6 @@ ORDER BY UPPER(CFN.path)
</query>
</mode>
-
-<mode name="diff_action_info">
- <query params="sid, hid">
-SELECT ACR.id,
- ACR.id AS ACTION_REVISION_ID,
- CR.id AS REVISION_ID,
- CR.revision,
- CFN.id AS NAME_ID,
- CFN.path,
- rhn_config_channel.action_diff_revision_status(ACR.id) AS STATUS,
- CFF.name AS FAILURE_REASON
- FROM rhnConfigFileFailure CFF,
- rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnActionConfigRevision ACR
- WHERE ACR.server_id = :sid
- AND ACR.action_id = :hid
--- AND rhn_config_channel.action_diff_revision_status(ACR.id) = 'Differences
exist'
- AND CR.id = ACR.config_revision_id
- AND CR.config_file_id = CF.id
- AND CF.config_file_name_id = CFN.id
- AND ACR.failure_id = CFF.id (+)
-ORDER BY CFN.path
- </query>
-</mode>
-
-
-<mode name="diff_action_differences">
- <query params="sid, hid">
-SELECT ACR.id,
- ACR.id AS ACTION_REVISION_ID,
- CR.id AS REVISION_ID,
- CR.revision,
- CFN.id AS NAME_ID,
- CFN.path,
- rhn_config_channel.action_diff_revision_status(ACR.id) AS STATUS
- FROM rhnConfigFileName CFN,
- rhnConfigFile CF,
- rhnConfigRevision CR,
- rhnActionConfigRevision ACR
- WHERE ACR.server_id = :sid
- AND ACR.action_id = :hid
- AND rhn_config_channel.action_diff_revision_status(ACR.id) = 'Differences
exist'
- AND CR.id = ACR.config_revision_id
- AND CR.config_file_id = CF.id
- AND CF.config_file_name_id = CFN.id
-ORDER BY CFN.path
- </query>
-</mode>
-
-
-
<mode name="upload_action_status">
<query params="sid, aid">
SELECT CFN.path,
diff --git a/web/modules/sniglets/Sniglets/ListView/FileList.pm
b/web/modules/sniglets/Sniglets/ListView/FileList.pm
index bc4731f..52feebd 100644
--- a/web/modules/sniglets/Sniglets/ListView/FileList.pm
+++ b/web/modules/sniglets/Sniglets/ListView/FileList.pm
@@ -37,74 +37,14 @@ sub list_of { return "files" }
sub _register_modes {
-
- Sniglets::ListView::List->add_mode(-mode => "diff_action_info",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode => "diff_action_differences",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode => "config_action_failures",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode =>
"config_action_non_failures",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
Sniglets::ListView::List->add_mode(-mode => "package_files",
-datasource => RHN::DataSource::General->new);
- Sniglets::ListView::List->add_mode(-mode => "selected_files",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
- Sniglets::ListView::List->add_mode(-mode =>
"latest_files_in_namespace",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
- Sniglets::ListView::List->add_mode(-mode => "files_in_sandbox",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
- Sniglets::ListView::List->add_mode(-mode => "files_in_override",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode => "configfile_revisions",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode => "configfiles_for_system",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"),
- -provider => \&configfiles_for_system_provider);
-
- Sniglets::ListView::List->add_mode(-mode =>
"configfiles_for_system_diff",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"),
- -provider => \&configfiles_for_system_provider);
-
- Sniglets::ListView::List->add_mode(-mode => "configfiles_for_ssm",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"),
- -provider => \&configfiles_for_ssm);
-
- Sniglets::ListView::List->add_mode(-mode =>
"configfiles_for_ssm_diff",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"),
- -provider => \&configfiles_for_ssm);
Sniglets::ListView::List->add_mode(-mode =>
"configfiles_for_snapshot",
-datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode => "configfiles_for_user",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode => "selected_configfiles",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode =>
"selected_configfilenames",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"));
-
- Sniglets::ListView::List->add_mode(-mode =>
"configfilenames_for_import",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"),
- -provider => \&configfilenames_for_import_provider);
-
- Sniglets::ListView::List->add_mode(-mode =>
"org_configfile_size_totals",
- -datasource => new RHN::DataSource::Simple(-querybase =>
"config_queries"),
- );
}
-my %type_icon = ('Directory' => '/img/folder-config-sm.png',
- 'File' => '/img/file-config-sm.png');
-
sub row_callback {
my $self = shift;
my $row = shift;
@@ -126,157 +66,9 @@ sub row_callback {
$row->{CHECKSUM} = "<tt>(Directory)</tt>";
}
}
-
- if ($self->datasource->mode eq 'latest_files_in_namespace' or
- $self->datasource->mode eq 'selected_files' or
- $self->datasource->mode eq 'configfiles_for_ssm' or
- $self->datasource->mode eq 'configfiles_for_system' or
- $self->datasource->mode eq 'files_in_override') {
- my $type = $row->{FILETYPE};
- # If type is a directory, we need to add a trailing "/" to the filename
- if (defined $type and $type eq 'Directory') {
- $row->{PATH} .= "/";
- }
- if (defined $type) {
- # Show corresponding image before the path
- $row->{PATH} = "<img src=\"" . $type_icon{$type} ."\"
alt=\"" . $type . "\" /> " . $row->{PATH};
- }
- }
-
return $row;
}
-sub configfiles_for_system_provider {
- my $self = shift;
- my $pxt = shift;
-
- my $ds = $self->datasource;
- my %params = $self->lookup_params($pxt, $ds->required_params);
- my $data = $ds->execute_query(%params);
-
- $data = resolve_ordered_paths($data);
- $data = $self->filter_data($data);
- my $alphabar = $self->init_alphabar($data);
-
- my $all_ids = [ map { $_->{ID} } @{$data} ];
- $self->all_ids($all_ids);
-
- $data = $ds->slice_data($data, $self->lower, $self->upper);
- $data = $ds->elaborate($data, %params);
-
- my $sid = $pxt->param('sid');
-
- foreach my $row (@$data) {
- Sniglets::ListView::List::escape_row($row);
-
- $row->{OVERRIDES} = ' ';
-
- if ($row->{__data__}) {
-
- my @overrides;
-
- if ($sid) {
- my $rev_link =
sprintf("/rhn/configuration/file/FileDetails.do?sid=%d&crid=", $sid);
- my $chan_link = sprintf("/rhn/configuration/ChannelFiles.do?ccid=");
- @overrides = map { PXT::HTML->link($rev_link . $_->{CRID}, "Revision
" . $_->{REVISION})
- . " from " .
- PXT::HTML->link($chan_link . $_->{CONFIG_CHANNEL_ID},
$_->{CONFIG_CHANNEL})
- } @{$row->{__data__}};
- }
- else {
- my $cf_url = '/rhn/configuration/file/FileDetails.do?crid=';
- my $ns_url = '/rhn/configuration/ChannelOverview.do?ccid=';
- @overrides = map { PXT::HTML->link($cf_url . $_->{CRID}, "Revision
" . $_->{REVISION})
- . " from " .
- PXT::HTML->link($ns_url . $_->{CONFIG_CHANNEL_ID},
$_->{CONFIG_CHANNEL})
- } @{$row->{__data__}};
- }
-
- $row->{OVERRIDES} = join("<br />\n", @overrides);
- }
- }
-
- return (data => $data,
- all_ids => $all_ids,
- alphabar => $alphabar);
-}
-
-sub configfiles_for_ssm {
- my $self = shift;
- my $pxt = shift;
-
- my $ds = $self->datasource;
- my %params = $self->lookup_params($pxt, $ds->required_params);
- my $data = $ds->execute_query(%params);
-
- $data = resolve_ordered_paths($data);
- $data = $self->filter_data($data);
- my $alphabar = $self->init_alphabar($data);
-
- my $all_ids = [ map { $_->{ID} } @{$data} ];
- $self->all_ids($all_ids);
-
- $data = $ds->slice_data($data, $self->lower, $self->upper);
- $data = $ds->elaborate($data, %params);
-
- return (data => $data,
- all_ids => $all_ids,
- alphabar => $alphabar);
-}
-
-
-sub configfilenames_for_import_provider {
- my $self = shift;
- my $pxt = shift;
-
- my $ds = new RHN::DataSource::Simple(-querybase => "config_queries", -mode
=> 'configfiles_for_system');
- my %params = $self->lookup_params($pxt, $ds->required_params);
- my $sys_data = $ds->execute_query(%params);
- $sys_data = resolve_ordered_paths($sys_data);
-
- my $data = [ map { { ID => $_->{CONFIG_FILE_NAME_ID},
- PATH => $_->{PATH},
- } } @{$sys_data} ];
-
- $ds = new RHN::DataSource::Simple(-querybase => "config_queries", -mode
=> 'selected_configfilenames');
- my $selected_files = $ds->execute_query(-user_id => $pxt->user->id,
-set_label => 'selected_configfilenames');
-
- my %exists = map { ($_->{ID}, 1) } @{$data};
-
- foreach my $row (@{$selected_files}) {
- unless ($exists{$row->{ID}}) {
- $exists{$row->{ID}} = 1;
- push @{$data}, $row;
- }
- }
-
- $data = [ sort { $a->{PATH} cmp $b->{PATH} } @{$data} ];
-
- $data = $self->filter_data($data);
- my $alphabar = $self->init_alphabar($data);
-
- my $all_ids = [ map { $_->{ID} } @{$data} ];
- $self->all_ids($all_ids);
-
- $data = $ds->slice_data($data, $self->lower, $self->upper);
-
- return (data => $data,
- all_ids => $all_ids,
- alphabar => $alphabar);
-}
-
-# given a set of file data, find the latest occurence of each path.
-sub resolve_ordered_paths {
- my $data = shift;
-
- my %seen;
-
- $data = [ sort { $a->{PATH} cmp $b->{PATH} }
- grep { not $seen{$_->{PATH}}++ } @{$data} ];
-
- return $data;
-}
-
# Overrides the List.pm implementation. We don't want the alphabar to
# appear when displaying files.
sub render_alphabar {
diff --git a/web/modules/sniglets/Sniglets/Lists.pm
b/web/modules/sniglets/Sniglets/Lists.pm
index 6bb15eb..f79f182 100644
--- a/web/modules/sniglets/Sniglets/Lists.pm
+++ b/web/modules/sniglets/Sniglets/Lists.pm
@@ -196,10 +196,6 @@ my %node_set = (system_package_list =>
'removable_package_list',
remove_errata_packages => 'packages_to_remove',
add_errata_packages => 'packages_to_add',
clone_channel_errata => 'errata_clone_actions',
- selected_configfiles => 'selected_configfiles',
- selected_configfiles_ssm => 'selected_configfiles_ssm',
- selected_configfilenames => 'selected_configfilenames',
- selected_namespaces => 'selected_namespaces',
packages_for_system_sync => 'packages_for_system_sync',
);