[zypp-commit] r7187 - in /trunk/libzypp: tests/cache/ zypp/cache/ zypp/cache/schema/ zypp/repo/ zypp/repo/cached/
Author: dmacvicar
Date: Tue Sep 11 16:13:31 2007
New Revision: 7187
URL: http://svn.opensuse.org/viewcvs/zypp?rev=7187&view=rev
Log:
- restore deltas and patches from the cache (#309124)
Modified:
trunk/libzypp/tests/cache/CacheStore_test.cc
trunk/libzypp/zypp/cache/CacheInitializer.h
trunk/libzypp/zypp/cache/CacheStore.cc
trunk/libzypp/zypp/cache/schema/schema.sql
trunk/libzypp/zypp/repo/RepositoryImpl.cc
trunk/libzypp/zypp/repo/RepositoryImpl.h
trunk/libzypp/zypp/repo/cached/RepoImpl.cc
Modified: trunk/libzypp/tests/cache/CacheStore_test.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/cache/CacheStore_test.cc?rev=7187&r1=7186&r2=7187&view=diff
==============================================================================
--- trunk/libzypp/tests/cache/CacheStore_test.cc (original)
+++ trunk/libzypp/tests/cache/CacheStore_test.cc Tue Sep 11 16:13:31 2007
@@ -444,6 +444,32 @@
cache_write_shared_attributes(repodir);
}
+/**
+ * \short Test that a yum repo wrtes and reads back patch and delta rpm information
+ */
+void cache_delta_rpm_test(const string &dir)
+{
+ Pathname repodir = Pathname(dir) + "/repo/yum/data/10.2-updates-subset";
+ filesystem::TmpDir tmpdir;
+ string alias = "novell.com";
+ write_yum_repo( alias, repodir, tmpdir );
+
+ data::RecordId repository_id;
+ {
+ cache::CacheStore store(tmpdir.path());
+ repository_id = store.lookupOrAppendRepository(alias);
+ }
+
+ cached::RepoImpl *repositoryImpl = new cached::RepoImpl( cached::RepoOptions( RepoInfo(),
+ tmpdir.path(),
+ repository_id ));
+ // 22 packages and 6 patches
+ BOOST_CHECK_EQUAL( repositoryImpl->resolvables().size(), 42 );
+ // 19 patch rpms
+ BOOST_CHECK_EQUAL( repositoryImpl->patchRpms().size(), 19 );
+ //check_tables_clean(tmpdir);
+}
+
test_suite*
init_unit_test_suite( int argc, char *argv[] )
{
@@ -484,6 +510,10 @@
(std::string const*)params, params+1));
test->add(BOOST_PARAM_TEST_CASE(&cache_write_shared_attributes_test,
(std::string const*)params, params+1));
+
+ // test for delta and patch rpms
+ test->add(BOOST_PARAM_TEST_CASE(&cache_delta_rpm_test,
+ (std::string const*)params, params+1));
return test;
}
Modified: trunk/libzypp/zypp/cache/CacheInitializer.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/cache/CacheInitializer.h?rev=7187&r1=7186&r2=7187&view=diff
==============================================================================
--- trunk/libzypp/zypp/cache/CacheInitializer.h (original)
+++ trunk/libzypp/zypp/cache/CacheInitializer.h Tue Sep 11 16:13:31 2007
@@ -19,7 +19,7 @@
#include "zypp/Pathname.h"
#include "zypp/cache/sqlite3x/sqlite3x.hpp"
-#define ZYPP_CACHE_SCHEMA_VERSION 1004
+#define ZYPP_CACHE_SCHEMA_VERSION 1005
///////////////////////////////////////////////////////////////////
namespace zypp
Modified: trunk/libzypp/zypp/cache/CacheStore.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/cache/CacheStore.cc?rev=7187&r1=7186&r2=7187&view=diff
==============================================================================
--- trunk/libzypp/zypp/cache/CacheStore.cc (original)
+++ trunk/libzypp/zypp/cache/CacheStore.cc Tue Sep 11 16:13:31 2007
@@ -122,13 +122,13 @@
count_shared_cmd.reset( new sqlite3_command( con, "select count(id) from resolvables where shared_id=:rid;" ));
insert_patchrpm_cmd.reset( new sqlite3_command (con,
- "insert into patch_packages (repository_id, media_nr, location, checksum, download_size, build_time) "
- "values (:repository_id, :media_nr, :location, :checksum, :download_size, :build_time);" ));
+ "insert into patch_packages (repository_id, media_nr, location, checksum, checksum_type, download_size, build_time) "
+ "values (:repository_id, :media_nr, :location, :checksum, :checksum_type, :download_size, :build_time);" ));
insert_deltarpm_cmd.reset( new sqlite3_command (con,
- "insert into delta_packages (repository_id, media_nr, location, checksum, download_size, build_time, "
+ "insert into delta_packages (repository_id, media_nr, location, checksum, checksum_type, download_size, build_time, "
"baseversion_version, baseversion_release, baseversion_epoch, baseversion_checksum, "
"baseversion_build_time, baseversion_sequence_info) "
- "values (:repository_id, :media_nr, :location, :checksum, :download_size, :build_time, "
+ "values (:repository_id, :media_nr, :location, :checksum, :checksum_type, :download_size, :build_time, "
":baseversion_version, :baseversion_release, :baseversion_epoch, :baseversion_checksum, "
":baseversion_build_time, :baseversion_sequence_info);" ));
append_patch_baseversion_cmd.reset( new sqlite3_command (con,
@@ -747,6 +747,7 @@
_pimpl->insert_patchrpm_cmd->bind(":repository_id", repository_id);
_pimpl->insert_patchrpm_cmd->bind(":location", prpm->location.filename().asString());
_pimpl->insert_patchrpm_cmd->bind(":checksum", prpm->location.checksum().checksum());
+ _pimpl->insert_patchrpm_cmd->bind(":checksum_type", prpm->location.checksum().type());
//! \todo checksum type
_pimpl->insert_patchrpm_cmd->bind(":download_size", static_castByteCount::SizeType(prpm->location.downloadSize()));
_pimpl->insert_patchrpm_cmd->bind(":build_time", prpm->buildTime.asSeconds());
@@ -777,6 +778,8 @@
_pimpl->insert_deltarpm_cmd->bind(":repository_id", repository_id);
_pimpl->insert_deltarpm_cmd->bind(":location", drpm->location.filename().asString());
_pimpl->insert_deltarpm_cmd->bind(":checksum", drpm->location.checksum().checksum());
+ _pimpl->insert_deltarpm_cmd->bind(":checksum", drpm->location.checksum().checksum());
+ _pimpl->insert_deltarpm_cmd->bind(":checksum_type", drpm->location.checksum().type());
//! \todo checksum type
_pimpl->insert_deltarpm_cmd->bind(":download_size", static_castByteCount::SizeType(drpm->location.downloadSize()));
_pimpl->insert_deltarpm_cmd->bind(":build_time", drpm->buildTime.asSeconds());
Modified: trunk/libzypp/zypp/cache/schema/schema.sql
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/cache/schema/schema.sql?rev=7187&r1=7186&r2=7187&view=diff
==============================================================================
--- trunk/libzypp/zypp/cache/schema/schema.sql (original)
+++ trunk/libzypp/zypp/cache/schema/schema.sql Tue Sep 11 16:13:31 2007
@@ -169,12 +169,14 @@
, media_nr INTEGER
, location TEXT
, checksum TEXT
+ , checksum_type TEXT
, download_size INTEGER
, build_time INTEGER
, baseversion_version TEXT
, baseversion_release TEXT
, baseversion_epoch INTEGER
, baseversion_checksum TEXT
+ , baseversion_checksum_type TEXT
, baseversion_build_time INTEGER
, baseversion_sequence_info TEXT
, repository_id INTEGER REFERENCES repositories(id)
@@ -186,6 +188,7 @@
, media_nr INTEGER
, location TEXT
, checksum TEXT
+ , checksum_type TEXT
, download_size INTEGER
, build_time INTEGER
, repository_id INTEGER REFERENCES repositories(id)
Modified: trunk/libzypp/zypp/repo/RepositoryImpl.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/repo/RepositoryImpl.cc?rev=7187&r1=7186&r2=7187&view=diff
==============================================================================
--- trunk/libzypp/zypp/repo/RepositoryImpl.cc (original)
+++ trunk/libzypp/zypp/repo/RepositoryImpl.cc Tue Sep 11 16:13:31 2007
@@ -11,6 +11,7 @@
RepositoryImpl::RepositoryImpl( const RepoInfo &info )
: _restore_lazy_initialized(false),
+ _deltas_lazy_initialized(false),
_info(info)
{
@@ -54,13 +55,23 @@
const std::listpackagedelta::PatchRpm &
RepositoryImpl::patchRpms() const
{
+ if ( ! _deltas_lazy_initialized )
+ {
+ const_cast
participants (1)
-
dmacvicar@svn.opensuse.org