Author: jkupec Date: Thu Sep 25 14:11:03 2008 New Revision: 11162 URL: http://svn.opensuse.org/viewcvs/zypp?rev=11162&view=rev Log: - minimized RepoManager initializaiton, reduced logging drastically Modified: trunk/zypper/src/Zypper.cc trunk/zypper/src/Zypper.h trunk/zypper/src/repos.cc trunk/zypper/src/solve-commit.cc Modified: trunk/zypper/src/Zypper.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/Zypper.cc?rev=11162&r1=11161&r2=11162&view=diff ============================================================================== --- trunk/zypper/src/Zypper.cc (original) +++ trunk/zypper/src/Zypper.cc Thu Sep 25 14:11:03 2008 @@ -73,6 +73,7 @@ _command(ZypperCommand::NONE), _exit_code(ZYPPER_EXIT_OK), _running_shell(false), _running_help(false), _exit_requested(false), + _rm_set(false), _sh_argc(0), _sh_argv(NULL) { MIL << "Hi, me zypper " VERSION " built " << __DATE__ << " " << __TIME__ << endl; @@ -718,6 +719,9 @@ // runtime data _rdata.current_repo = RepoInfo(); + + // cause the RepoManager to be reinitialized + _rm_set = false; // TODO: // _rdata.repos re-read after repo operations or modify/remove these very repoinfos @@ -2189,6 +2193,8 @@ { if (runningHelp()) { out().info(_command_help, Out::QUIET); return; } + initRepoManager(); + list_services(*this); break; @@ -2214,6 +2220,8 @@ this->_gopts.rm_options.servicesTargetDistro = God->target()->targetDistribution(); + initRepoManager(); + refresh_services(*this); break; @@ -2281,6 +2289,8 @@ warn_if_zmd(); + initRepoManager(); + if (isservice) add_service_by_url(*this, url, _arguments[1], type, enabled); else @@ -2339,6 +2349,8 @@ return; } + initRepoManager(); + if (non_alias) { modify_services_by_option(*this); @@ -2370,6 +2382,8 @@ { if (runningHelp()) { out().info(_command_help, Out::QUIET); return; } + initRepoManager(); + //! \todo this conflicts with other 'lr' aliases //if (_gopts.is_rug_compatible) // rug_list_resolvables(*this); @@ -2471,6 +2485,7 @@ } else { + initRepoManager(); add_repo_from_file(*this,_arguments[0], enabled, autorefresh, keep_pkgs); break; } @@ -2497,6 +2512,8 @@ warn_if_zmd(); + initRepoManager(); + // load gpg keys init_target(*this); @@ -2548,6 +2565,8 @@ warn_if_zmd (); + initRepoManager(); + if (command() == ZypperCommand::REMOVE_REPO) { // must store repository before remove to ensure correct match number @@ -2636,8 +2655,8 @@ return; } -// init_target(*this); warn_if_zmd (); + initRepoManager(); try { RepoInfo repo; if (match_repo(*this,_arguments[0], &repo)) @@ -2698,6 +2717,7 @@ return; } + initRepoManager(); if (non_alias) { modify_repos_by_option(*this); @@ -2753,8 +2773,10 @@ init_target(*this); this->_gopts.rm_options.servicesTargetDistro = God->target()->targetDistribution(); + initRepoManager(); refresh_services(*this); } + initRepoManager(); refresh_repos(*this); break; } @@ -2774,6 +2796,7 @@ return; } + initRepoManager(); clean_repos(*this); break; } @@ -2824,6 +2847,8 @@ bool install_not_remove = command() == ZypperCommand::INSTALL; + initRepoManager(); + // check for rpm files among the arguments ArgList rpms_files_caps; if (install_not_remove) @@ -2959,6 +2984,8 @@ return; } + initRepoManager(); + init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) return; @@ -2993,6 +3020,8 @@ if (copts.count("no-confirm")) _gopts.non_interactive = true; + initRepoManager(); + init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) return; @@ -3064,6 +3093,8 @@ } } + initRepoManager(); + init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) return; @@ -3184,13 +3215,13 @@ return; } + initRepoManager(); + init_target(*this); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) return; - // TODO additional_sources - // TODO warn_no_sources // TODO calc token? // now load resolvables: @@ -3223,6 +3254,8 @@ { if (runningHelp()) { out().info(_command_help, Out::QUIET); return; } + initRepoManager(); + init_target(*this); init_repos(*this, _arguments); if (exitCode() != ZYPPER_EXIT_OK) @@ -3268,6 +3301,8 @@ return; } + initRepoManager(); + init_target(*this); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) @@ -3330,6 +3365,7 @@ out().warning( _("Running as 'rug', can't do 'best-effort' approach to update.")); } + initRepoManager(); init_target(*this); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) @@ -3404,6 +3440,7 @@ } init_target(*this); + initRepoManager(); // rug compatibility - treat arguments as repos if (_gopts.is_rug_compatible && !_arguments.empty()) @@ -3452,6 +3489,7 @@ if (copts.count("auto-agree-with-licenses")) _cmdopts.license_auto_agree = true; + initRepoManager(); init_target(*this); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) @@ -3508,6 +3546,7 @@ } } + initRepoManager(); init_target(*this); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) @@ -3604,6 +3643,7 @@ return; } + initRepoManager(); init_target(*this); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) @@ -3628,6 +3668,7 @@ { if (runningHelp()) { out().info(_command_help, Out::QUIET); return; } + initRepoManager(); init_target(*this); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) @@ -3718,6 +3759,7 @@ return; } + initRepoManager(); init_repos(*this); if (exitCode() != ZYPPER_EXIT_OK) return; @@ -3777,6 +3819,7 @@ { TableRow tr; tr << "zypp" << "ZYPP" << "ZYpp installation repository"; t << tr; } { TableRow tr; tr << "mount" << "Mount" << "Mount a directory of RPMs"; t << tr; } { TableRow tr; tr << "plaindir" << "Plaindir" << "Mount a directory of RPMs"; t << tr; } + { TableRow tr; tr << "nu" << "NU" << "Novell Updates service"; t << tr; } // ris cout << t; Modified: trunk/zypper/src/Zypper.h URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/Zypper.h?rev=11162&r1=11161&r2=11162&view=diff ============================================================================== --- trunk/zypper/src/Zypper.h (original) +++ trunk/zypper/src/Zypper.h Thu Sep 25 14:11:03 2008 @@ -161,6 +161,8 @@ const std::string & commandHelp() const { return _command_help; } const ArgList & arguments() const { return _arguments; } RuntimeData & runtimeData() { return _rdata; } + zypp::RepoManager & repoManager() + { if (!_rm_set) _rm = zypp::RepoManager(_gopts.rm_options); return _rm; } int exitCode() const { return _exit_code; } void setExitCode(int exit) { _exit_code = exit; } bool runningShell() const { return _running_shell; } @@ -189,6 +191,9 @@ void setRunningShell(bool value = true) { _running_shell = value; } void setRunningHelp(bool value = true) { _running_help = value; } + void initRepoManager() + { _rm = zypp::RepoManager(_gopts.rm_options); _rm_set = true; } + private: int _argc; @@ -209,6 +214,9 @@ RuntimeData _rdata; + zypp::RepoManager _rm; + bool _rm_set; + int _sh_argc; char **_sh_argv; }; Modified: trunk/zypper/src/repos.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/repos.cc?rev=11162&r1=11161&r2=11162&view=diff ============================================================================== --- trunk/zypper/src/repos.cc (original) +++ trunk/zypper/src/repos.cc Thu Sep 25 14:11:03 2008 @@ -70,7 +70,7 @@ try { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); if (!force_download) { @@ -229,7 +229,7 @@ try { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); manager.buildCache(repo, force_build ? RepoManager::BuildForced : RepoManager::BuildIfNeeded); } @@ -276,7 +276,7 @@ bool match_repo(Zypper & zypper, string str, RepoInfo *repo) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); list<RepoInfo> known; known.insert(known.end(), manager.repoBegin(), manager.repoEnd()); bool found = false; @@ -438,7 +438,7 @@ // load gpg keys init_target(zypper); - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); // get repositories specified with --repo or --catalog or in the container @@ -796,7 +796,7 @@ void list_repos(Zypper & zypper) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); RuntimeData & gData = zypper.runtimeData(); list<RepoInfo> repos; @@ -868,7 +868,7 @@ MIL << "going to refresh repositories" << endl; // need gpg keys when downloading (#304672) init_target(zypper); - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); list<RepoInfo> repos; try @@ -1038,7 +1038,7 @@ void clean_repos(Zypper & zypper) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); list<RepoInfo> repos; try @@ -1217,7 +1217,7 @@ void add_repo(Zypper & zypper, RepoInfo & repo) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); RuntimeData & gData = zypper.runtimeData(); bool is_cd = true; @@ -1388,7 +1388,6 @@ return; } - RepoManager manager(zypper.globalOpts().rm_options); list<RepoInfo> repos; // read the repo file @@ -1475,7 +1474,7 @@ void remove_repo(Zypper & zypper, const RepoInfo & repoinfo) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); manager.removeRepository(repoinfo); zypper.out().info(boost::str( format(_("Repository '%s' has been removed.")) % repoinfo.name())); @@ -1488,7 +1487,7 @@ void rename_repo(Zypper & zypper, const std::string & alias, const std::string & newalias) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); try { @@ -1531,7 +1530,7 @@ void modify_repos_by_option( Zypper & zypper ) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); list<RepoInfo> repos; repos.insert(repos.end(), manager.repoBegin(), manager.repoEnd()); set<string> toModify; @@ -1619,7 +1618,7 @@ try { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); RepoInfo repo(manager.getRepositoryInfo(alias)); bool chnaged_enabled = false; bool changed_autoref = false; @@ -1753,7 +1752,7 @@ static ServiceList get_all_services(Zypper & zypper) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); ServiceList services; try @@ -2079,7 +2078,7 @@ flags |= SF_SERVICE_REPO; RepoCollector collector; - RepoManager rm(zypper.globalOpts().rm_options); + RepoManager & rm = zypper.repoManager(); rm.getRepositoriesInService((*it)->alias(), make_function_output_iterator( @@ -2143,7 +2142,7 @@ if (s_ptr) { RepoCollector collector; - RepoManager rm(zypper.globalOpts().rm_options); + RepoManager & rm = zypper.repoManager(); rm.getRepositoriesInService((*it)->alias(), make_function_output_iterator( bind(&RepoCollector::collect, &collector, _1))); @@ -2276,7 +2275,7 @@ void remove_service(Zypper & zypper, const ServiceInfo & service) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); zypper.out().info(boost::str( format(_("Removing service '%s':")) % service.name())); @@ -2292,7 +2291,7 @@ { MIL << "going to refresh service '" << service.alias() << "'" << endl; - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); bool error = true; try @@ -2390,7 +2389,7 @@ if (zypper.cOpts().count("with-repos") || !zypper.globalOpts().is_rug_compatible) { RepoCollector collector; - RepoManager rm(zypper.globalOpts().rm_options); + RepoManager & rm = zypper.repoManager(); rm.getRepositoriesInService(s->alias(), make_function_output_iterator( bind(&RepoCollector::collect, &collector, _1))); @@ -2469,7 +2468,7 @@ try { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); ServiceInfo srv(manager.getService(alias)); bool chnaged_enabled = false; @@ -2648,7 +2647,6 @@ void modify_services_by_option( Zypper & zypper ) { - RepoManager manager(zypper.globalOpts().rm_options); ServiceList known = get_all_services(zypper); set<string> repos_to_modify; set<string> services_to_modify; @@ -2743,9 +2741,11 @@ void load_repo_resolvables(Zypper & zypper) { - RepoManager manager(zypper.globalOpts().rm_options); + RepoManager & manager = zypper.repoManager(); RuntimeData & gData = zypper.runtimeData(); + zypper.out().info(_("Loading repository data...")); + for (std::list<RepoInfo>::iterator it = gData.repos.begin(); it != gData.repos.end(); ++it) { Modified: trunk/zypper/src/solve-commit.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/zypper/src/solve-commit.cc?rev=11162&r1=11161&r2=11162&view=diff ============================================================================== --- trunk/zypper/src/solve-commit.cc (original) +++ trunk/zypper/src/solve-commit.cc Thu Sep 25 14:11:03 2008 @@ -891,7 +891,6 @@ { dump_pool(); // debug set_solver_flags(zypper); - zypper.out().info(_("Resolving dependencies..."), Out::HIGH); DBG << "Calling the solver..." << endl; return God->resolver()->resolvePool(); } @@ -966,11 +965,15 @@ else if (zypper.command() == ZypperCommand::DIST_UPGRADE) { zypp::UpgradeStatistics dup_stats; + zypper.out().info(_("Computing distribution upgrade...")); success = dist_upgrade(zypper, dup_stats); //! \todo make use of the upgrade stats } else + { + zypper.out().info(_("Resolving package dependencies...")); success = resolve(zypper); + } if (success) break; -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org