backend/satellite_tools/disk_dumper/dumper.py | 9 +++-- backend/satellite_tools/disk_dumper/iss.py | 2 - backend/satellite_tools/exporter/exportLib.py | 43 ++++++++++++++++---------- 3 files changed, 33 insertions(+), 21 deletions(-)
New commits: commit ab481c31b699933cd186f9b68f5a0e4781a2b100 Author: Michael Mraka michael.mraka@redhat.com Date: Mon Jan 17 11:38:33 2011 +0100
650165 - _ChannelDumper should also understand use_rhn_date
diff --git a/backend/satellite_tools/disk_dumper/dumper.py b/backend/satellite_tools/disk_dumper/dumper.py index fdde6d8..f74e4c9 100644 --- a/backend/satellite_tools/disk_dumper/dumper.py +++ b/backend/satellite_tools/disk_dumper/dumper.py @@ -192,12 +192,12 @@ class XML_Dumper: data_iterator=h, null_max_members=0) return 0
- def dump_channels(self, channel_labels=None, start_date=None, end_date=None): + def dump_channels(self, channel_labels=None, start_date=None, end_date=None, use_rhn_date=True): log_debug(2) #channels = self._validate_channels(channel_labels=channel_labels)
self._write_dump(ChannelsDumper, - channels=channel_labels, start_date=start_date, end_date=end_date) + channels=channel_labels, start_date=start_date, end_date=end_date, use_rhn_date=use_rhn_date) return 0
def _send_headers(self, error=0, init_compressed_stream=1): @@ -671,15 +671,16 @@ class ChannelsDumper(exportLib.ChannelsDumper): and c.channel_arch_id = ca.id """)
- def __init__(self, writer, channels=[], start_date=None, end_date=None): + def __init__(self, writer, channels=[], start_date=None, end_date=None, use_rhn_date=True): exportLib.ChannelsDumper.__init__(self, writer, channels) self.start_date = start_date self.end_date = end_date + self.use_rhn_date = use_rhn_date
def dump_subelement(self, data): log_debug(6, data) #return exportLib.ChannelsDumper.dump_subelement(self, data) - c = exportLib._ChannelDumper(self._writer, data, self.start_date, self.end_date) + c = exportLib._ChannelDumper(self._writer, data, self.start_date, self.end_date, self.use_rhn_date) c.dump()
def set_iterator(self): diff --git a/backend/satellite_tools/disk_dumper/iss.py b/backend/satellite_tools/disk_dumper/iss.py index 827e9ed..0203218 100644 --- a/backend/satellite_tools/disk_dumper/iss.py +++ b/backend/satellite_tools/disk_dumper/iss.py @@ -549,7 +549,7 @@ class Dumper(dumper.XML_Dumper): pb.printAll(1) for channel in self.channel_ids: self.set_filename(self.fm.getChannelsFile(channel['label'])) - dumper.XML_Dumper.dump_channels(self, [channel], self.start_date, self.end_date) + dumper.XML_Dumper.dump_channels(self, [channel], self.start_date, self.end_date, self.use_rhn_date)
log2email(4, "Channel: %s" % channel['label']) log2email(5, "Channel exported to %s" % self.fm.getChannelsFile(channel['label'])) diff --git a/backend/satellite_tools/exporter/exportLib.py b/backend/satellite_tools/exporter/exportLib.py index 9fc40ab..3103835 100644 --- a/backend/satellite_tools/exporter/exportLib.py +++ b/backend/satellite_tools/exporter/exportLib.py @@ -201,10 +201,11 @@ class SatelliteDumper(BaseDumper): class _ChannelDumper(BaseRowDumper): tag_name = 'rhn-channel'
- def __init__(self, writer, row, start_date=None, end_date=None): + def __init__(self, writer, row, start_date=None, end_date=None, use_rhn_date=True): BaseRowDumper.__init__(self, writer, row) self.start_date = start_date self.end_date = end_date + self.use_rhn_date = use_rhn_date
def set_attributes(self): channel_id = self._row['id'] @@ -307,27 +308,35 @@ class _ChannelDumper(BaseRowDumper):
_query_get_package_ids_by_date_limits = rhnSQL.Statement(""" select package_id as id + from rhnChannelPackage rcp + where rcp.channel_id = :channel_id + and rcp.modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') + and rcp.modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') + """) + + _query_get_package_ids_by_rhndate_limits = rhnSQL.Statement(""" + select package_id as id from rhnPackage rp, rhnChannelPackage rcp where rcp.channel_id = :channel_id - and rcp.package_id = rp.id - and (rcp.modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') - or rp.last_modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') - ) - and (rcp.modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') - or rp.last_modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') - ) + and rcp.package_id = rp.id + and rp.last_modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') + and rp.last_modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') """)
# Things that can be overwriten in subclasses def _get_package_ids(self): return self._get_ids(self._query_get_package_ids_by_date_limits, + self._query_get_package_ids_by_rhndate_limits, self._query_get_package_ids)
- def _get_ids(self, query_with_limit, query_no_limits): + def _get_ids(self, query_with_limit, query_with_rhnlimit, query_no_limits): query_args = {'channel_id': self._row['id']} if self.start_date: - query = query_with_limit + if self.use_rhn_date: + query = query_with_rhnlimit + else: + query = query_with_limit query_args.update({'lower_limit': self.start_date, 'upper_limit': self.end_date}) else: @@ -365,17 +374,19 @@ class _ChannelDumper(BaseRowDumper):
_query__get_errata_ids_by_limits = rhnSQL.Statement(""" %s - and (ce.modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') - or e.last_modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') - ) - and (ce.modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') - or e.last_modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') - ) + and ce.modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') + and ce.modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') """ % _query__get_errata_ids)
+ _query__get_errata_ids_by_rhnlimits = rhnSQL.Statement(""" + %s + and e.last_modified >= TO_Date(:lower_limit, 'YYYYMMDDHH24MISS') + and e.last_modified <= TO_Date(:upper_limit, 'YYYYMMDDHH24MISS') + """ % _query__get_errata_ids)
def _get_errata_ids(self): return self._get_ids(self._query__get_errata_ids_by_limits, + self._query__get_errata_ids_by_rhnlimits self._query__get_errata_ids)
_query_get_kickstartable_trees = rhnSQL.Statement("""
spacewalk-commits@lists.fedorahosted.org