while (!isDesiredMedia(mediaId, mediaNr))
{
- MediaChangeReport::Action user
- = report->requestMedia(media_access, mediaNr, MediaChangeReport::WRONG, "Wrong media");
+ // on checkonly don't ask user
+ MediaChangeReport::Action user = checkonly ? MediaChangeReport::RETRY :
+ report->requestMedia(media_access, mediaNr, MediaChangeReport::WRONG, "Wrong media");
if (user != MediaChangeReport::RETRY)
{
break;
}
catch ( Exception & exp ) {
- MediaChangeReport::Action user
- = report->requestMedia(media_access, mediaNr, MediaChangeReport::NOT_FOUND, "File not found on the media");
+ // on checkonly don't ask user
+ MediaChangeReport::Action user = checkonly ? MediaChangeReport::RETRY :
+ report->requestMedia(media_access, mediaNr, MediaChangeReport::NOT_FOUND, "File not found on the media");
if ( user != MediaChangeReport::RETRY )
ZYPP_RETHROW( exp );
}
const Pathname SourceImpl::provideFile(const Pathname & file_r,
- const unsigned media_nr)
+ const unsigned media_nr,
+ bool cached,
+ bool checkonly )
{
- media_mgr.provideFile (_media, media_nr, file_r);
+ media_mgr.provideFile (_media, media_nr, file_r, cached, checkonly);
return media_mgr.localPath(_media, file_r);
}
*
*/
const Pathname provideFile(const Pathname & file,
- const unsigned media_nr = 1);
+ const unsigned media_nr = 1,
+ bool cached = false,
+ bool checkonly = false);
/**
* Provide a directory to local filesystem
: SourceImpl(media_r, path_r, alias_r)
{
try {
- // first read list of all files in the reposotory
- Pathname filename = provideFile(_path + "/repomd.xml");
+ // first read list of all files in the repository
+
+ // check only first
+ Pathname filename = provideFile(_path + "/repomd.xml", false, true);
+
+ // now, the file exists, try to read it
+ filename = provideFile(_path + "/repomd.xml");
+
DBG << "Reading file " << filename << endl;
ifstream repo_st(filename.asString().c_str());
YUMRepomdParser repomd(repo_st, "");