Author: lslezak
Date: Tue Jun 14 13:34:05 2011
New Revision: 64337
URL: http://svn.opensuse.org/viewcvs/yast?rev=64337&view=rev
Log:
- added Pkg::CommitPolicy()
- support for download in advance mode in yast2-wagon (fate#308951)
- Pkg::ResolvableProperties() - return "product_package" value
for available products (fate#310730)
- 2.21.1
Modified:
trunk/pkg-bindings/ (props changed)
trunk/pkg-bindings/VERSION
trunk/pkg-bindings/package/yast2-pkg-bindings.changes
trunk/pkg-bindings/src/Package.cc
trunk/pkg-bindings/src/PkgFunctions.cc
trunk/pkg-bindings/src/PkgFunctions.h
trunk/pkg-bindings/src/Resolvable_Properties.cc
Modified: trunk/pkg-bindings/VERSION
URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/VERSION?rev=64337&r1=64336&r2=64337&view=diff
==============================================================================
--- trunk/pkg-bindings/VERSION (original)
+++ trunk/pkg-bindings/VERSION Tue Jun 14 13:34:05 2011
@@ -1 +1 @@
-2.21.0
+2.21.1
Modified: trunk/pkg-bindings/package/yast2-pkg-bindings.changes
URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/package/yast2-pkg-bindings.changes?rev=64337&r1=64336&r2=64337&view=diff
==============================================================================
--- trunk/pkg-bindings/package/yast2-pkg-bindings.changes (original)
+++ trunk/pkg-bindings/package/yast2-pkg-bindings.changes Tue Jun 14 13:34:05 2011
@@ -1,4 +1,13 @@
-------------------------------------------------------------------
+Tue Jun 14 08:40:30 UTC 2011 - lslezak@suse.cz
+
+- added Pkg::CommitPolicy()
+- support for download in advance mode in yast2-wagon (fate#308951)
+- Pkg::ResolvableProperties() - return "product_package" value
+ for available products (fate#310730)
+- 2.21.1
+
+-------------------------------------------------------------------
Tue Apr 5 11:12:10 UTC 2011 - lslezak@suse.cz
- do not refresh empty repositories, remember loaded status
Modified: trunk/pkg-bindings/src/Package.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/src/Package.cc?rev=64337&r1=64336&r2=64337&view=diff
==============================================================================
--- trunk/pkg-bindings/src/Package.cc (original)
+++ trunk/pkg-bindings/src/Package.cc Tue Jun 14 13:34:05 2011
@@ -2015,7 +2015,7 @@
return YCPVoid();
}
-YCPValue PkgFunctions::CommitHelper(const zypp::ZYppCommitPolicy &policy)
+YCPValue PkgFunctions::CommitHelper(const zypp::ZYppCommitPolicy *policy)
{
zypp::ZYpp::CommitResult result;
@@ -2029,7 +2029,7 @@
last_reported_repo = -1;
last_reported_mediumnr = 1;
- result = zypp_ptr()->commit(policy);
+ result = zypp_ptr()->commit(*policy);
}
catch (const zypp::target::TargetAbortedException & excpt)
{
@@ -2093,6 +2093,48 @@
return ret;
}
+YCPValue PkgFunctions::CommitPolicy()
+{
+ YCPMap ret;
+
+ if (commit_policy == NULL)
+ {
+ return ret;
+ }
+
+ zypp::DownloadMode d_mode = commit_policy->downloadMode();
+ std::string mode;
+
+ switch (d_mode)
+ {
+ case zypp::DownloadDefault:
+ mode = "default";
+ break;
+ case zypp::DownloadOnly:
+ mode = "download_only";
+ break;
+ case zypp::DownloadInAdvance:
+ mode = "download_in_advance";
+ break;
+ case zypp::DownloadInHeaps:
+ mode = "download_in_heaps";
+ break;
+ case zypp::DownloadAsNeeded:
+ mode = "download_as_needed";
+ break;
+ default :
+ y2error("Unknown download mode");
+ }
+
+ if (!mode.empty())
+ {
+ ret->add(YCPString("download_mode"), YCPSymbol(mode));
+ }
+
+
+ return ret;
+}
+
/**
@builtin PkgCommit
@@ -2118,10 +2160,15 @@
return YCPError ("Bad args to Pkg::PkgCommit");
}
- zypp::ZYppCommitPolicy policy;
- policy.restrictToMedia( medianr );
+ commit_policy = new zypp::ZYppCommitPolicy;
+ commit_policy->restrictToMedia(medianr);
+
+ YCPValue ret = CommitHelper(commit_policy);
- return CommitHelper(policy);
+ delete commit_policy;
+ commit_policy = NULL;
+
+ return ret;
}
/**
@@ -2143,7 +2190,7 @@
/* TYPEINFO: list<any>(integer)*/
YCPValue PkgFunctions::Commit (const YCPMap& config)
{
- zypp::ZYppCommitPolicy policy;
+ commit_policy = new zypp::ZYppCommitPolicy;
if (!config.isNull())
{
@@ -2158,28 +2205,32 @@
if (mode == "default")
{
- policy.downloadMode(zypp::DownloadDefault);
+ commit_policy->downloadMode(zypp::DownloadDefault);
}
else if (mode == "download_only")
{
- policy.downloadMode(zypp::DownloadOnly);
+ commit_policy->downloadMode(zypp::DownloadOnly);
}
else if (mode == "download_in_advance")
{
- policy.downloadMode(zypp::DownloadInAdvance);
+ commit_policy->downloadMode(zypp::DownloadInAdvance);
}
else if (mode == "download_in_heaps")
{
- policy.downloadMode(zypp::DownloadInHeaps);
+ commit_policy->downloadMode(zypp::DownloadInHeaps);
}
else if (mode == "download_as_needed")
{
- policy.downloadMode(zypp::DownloadAsNeeded);
+ commit_policy->downloadMode(zypp::DownloadAsNeeded);
}
else
{
y2error("Invalid download mode: %s", mode.c_str());
_last_error.setLastError(std::string("Invalid download mode: ") + mode);
+
+ delete commit_policy;
+ commit_policy = NULL;
+
return YCPVoid();
}
@@ -2189,6 +2240,10 @@
{
y2error("Invalid download mode: symbol is required, got: %s", config->value(key)->asString()->value().c_str());
_last_error.setLastError(std::string("Invalid download mode: ") + config->value(key)->asString()->value());
+
+ delete commit_policy;
+ commit_policy = NULL;
+
return YCPVoid();
}
}
@@ -2200,7 +2255,7 @@
if (config->value(key)->isInteger())
{
unsigned medium_nr = config->value(key)->asInteger()->value();
- policy.restrictToMedia(medium_nr);
+ commit_policy->restrictToMedia(medium_nr);
y2milestone("Restricting commit only to medium number: %u", medium_nr);
}
@@ -2208,6 +2263,10 @@
{
y2error("Invalid medium number: integer is required, got: %s", config->value(key)->asString()->value().c_str());
_last_error.setLastError(std::string("Invalid medium number: ") + config->value(key)->asString()->value());
+
+ delete commit_policy;
+ commit_policy = NULL;
+
return YCPVoid();
}
}
@@ -2219,7 +2278,7 @@
if (config->value(key)->isBoolean())
{
bool dry_run = config->value(key)->asBoolean()->value();
- policy.dryRun(dry_run);
+ commit_policy->dryRun(dry_run);
y2milestone("Dry run commit: %s", config->value(key)->asString()->value().c_str());
}
@@ -2227,6 +2286,10 @@
{
y2error("Dry run option: boolean is required, got: %s", config->value(key)->asString()->value().c_str());
_last_error.setLastError(std::string("Invalid dry run option: ") + config->value(key)->asString()->value());
+
+ delete commit_policy;
+ commit_policy = NULL;
+
return YCPVoid();
}
}
@@ -2238,7 +2301,7 @@
if (config->value(key)->isBoolean())
{
bool exclude_docs = config->value(key)->asBoolean()->value();
- policy.rpmExcludeDocs(exclude_docs);
+ commit_policy->rpmExcludeDocs(exclude_docs);
y2milestone("Excluding documentation: %s", config->value(key)->asString()->value().c_str());
}
@@ -2246,6 +2309,10 @@
{
y2error("Exclude documentation option: boolean is required, got: %s", config->value(key)->asString()->value().c_str());
_last_error.setLastError(std::string("Invalid exclude documentation option: ") + config->value(key)->asString()->value());
+
+ delete commit_policy;
+ commit_policy = NULL;
+
return YCPVoid();
}
}
@@ -2257,7 +2324,7 @@
if (config->value(key)->isBoolean())
{
bool no_signature = config->value(key)->asBoolean()->value();
- policy.rpmNoSignature(no_signature);
+ commit_policy->rpmNoSignature(no_signature);
y2milestone("Don't check RPM signature: %s", config->value(key)->asString()->value().c_str());
}
@@ -2265,12 +2332,21 @@
{
y2error("No signature option: boolean is required, got: %s", config->value(key)->asString()->value().c_str());
_last_error.setLastError(std::string("Invalid no signature option: ") + config->value(key)->asString()->value());
+
+ delete commit_policy;
+ commit_policy = NULL;
+
return YCPVoid();
}
}
}
- return CommitHelper(policy);
+ YCPValue ret = CommitHelper(commit_policy);
+
+ delete commit_policy;
+ commit_policy = NULL;
+
+ return ret;
}
/**
Modified: trunk/pkg-bindings/src/PkgFunctions.cc
URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/src/PkgFunctions.cc?rev=64337&r1=64336&r2=64337&view=diff
==============================================================================
--- trunk/pkg-bindings/src/PkgFunctions.cc (original)
+++ trunk/pkg-bindings/src/PkgFunctions.cc Tue Jun 14 13:34:05 2011
@@ -61,6 +61,7 @@
_target_root( "/" )
, _target_loaded(false)
, zypp_pointer(NULL)
+ , commit_policy(NULL)
,_callbackHandler( *new CallbackHandler(*this) )
, base_product(NULL)
{
Modified: trunk/pkg-bindings/src/PkgFunctions.h
URL: http://svn.opensuse.org/viewcvs/yast/trunk/pkg-bindings/src/PkgFunctions.h?rev=64337&r1=64336&r2=64337&view=diff
==============================================================================
--- trunk/pkg-bindings/src/PkgFunctions.h (original)
+++ trunk/pkg-bindings/src/PkgFunctions.h Tue Jun 14 13:34:05 2011
@@ -49,6 +49,7 @@
#include