def _status(self, entropy_server): repo_id = entropy_server.repository() # show interface info entropy_server._show_interface_status() entropy_server.Mirrors._show_interface_status( repo_id) plugin_id = etpConst['system_settings_plugins_ids']['server_plugin'] repos_data = self._settings()[plugin_id]['server']['repositories'] repo_data = repos_data[repo_id] repo_rev = entropy_server.local_repository_revision(repo_id) store_dir = entropy_server._get_local_store_directory(repo_id) upload_files, upload_packages = \ entropy_server.Mirrors._calculate_local_upload_files(repo_id) key_sorter = lambda x: \ entropy_server.open_repository(x[1]).retrieveAtom(x[0]) to_be_added, to_be_removed, to_be_injected = \ entropy_server.scan_package_changes() to_be_added = [x[0] for x in to_be_added] to_be_added.sort() toc = [] toc.append("[%s] %s" % (purple(repo_id), brown(repo_data['description']),)) toc.append((" %s:" % (blue(_("local revision")),), str(repo_rev),)) store_pkgs = [] if os.path.isdir(store_dir): store_pkgs = os.listdir(store_dir) toc.append((" %s:" % (darkgreen(_("stored packages")),), str(len(store_pkgs)),)) for pkg_rel in sorted(store_pkgs): toc.append((" ", brown(pkg_rel))) toc.append((" %s:" % (darkgreen(_("upload packages")),), str(upload_files),)) for pkg_rel in sorted(upload_packages): toc.append((" ", brown(pkg_rel))) unstaged_len = len(to_be_added) + len(to_be_removed) + \ len(to_be_injected) toc.append((" %s:" % (darkgreen(_("unstaged packages")),), str(unstaged_len),)) print_table(entropy_server, toc) del toc[:] entropy_server.output("") def _get_spm_slot_repo(pkg_atom): try: spm_slot = entropy_server.Spm( ).get_installed_package_metadata(pkg_atom, "SLOT") spm_repo = entropy_server.Spm( ).get_installed_package_metadata(pkg_atom, "repository") except KeyError: spm_repo = None spm_slot = None return spm_slot, spm_repo for pkg_atom in to_be_added: spm_slot, spm_repo = _get_spm_slot_repo(pkg_atom) pkg_str = teal(pkg_atom) if spm_repo is not None: pkg_id, repo_id = entropy_server.atom_match(pkg_atom, match_slot = spm_slot) if pkg_id != -1: etp_repo = entropy_server.open_repository( repo_id).retrieveSpmRepository(pkg_id) if etp_repo != spm_repo: pkg_str += " [%s=>%s]" % ( etp_repo, spm_repo,) toc.append((" %s:" % (purple(_("add")),), teal(pkg_str))) for package_id, repo_id in sorted(to_be_removed, key = key_sorter): pkg_atom = entropy_server.open_repository( repo_id).retrieveAtom(package_id) toc.append((" %s:" % (darkred(_("remove")),), brown(pkg_atom))) for package_id, repo_id in sorted(to_be_injected, key = key_sorter): pkg_atom = entropy_server.open_repository( repo_id).retrieveAtom( package_id) toc.append((" %s:" % (bold(_("switch injected")),), darkgreen(pkg_atom))) print_table(entropy_server, toc) return 0
def _add(self, entropy_server): """ Eit Repo Add command. """ current_repos = entropy_server.repositories() repository_id = self._nsargs.id desc = self._nsargs.desc repos = self._nsargs.repo pkg_only = self._nsargs.pkg_only repo_only = self._nsargs.repo_only base = self._nsargs.base if repository_id in current_repos: entropy_server.output( "[%s] %s" % ( purple(repository_id), blue(_("repository already configured")),), level="error", importance=1) return 1 toc = [] toc.append(( purple(_("Repository id:")), teal(repository_id))) toc.append(( darkgreen(_("Description:")), teal(desc))) base_str = _("Yes") if base is None: base_str = _("Unset") elif not base: base_str = _("No") toc.append(( darkgreen(_("Base repository:")), teal(base_str))) for uri in repos: toc.append((purple(_("Packages + Database URI:")), uri)) for uri in repo_only: toc.append((purple(_("Database only URI:")), uri)) for uri in pkg_only: toc.append((purple(_("Packages only URI:")), uri)) toc.append(" ") print_table(entropy_server, toc) parser = RepositoryConfigParser() added = parser.add(repository_id, desc, repos, repo_only, pkg_only, base) if added: entropy_server.output( "[%s] %s" % ( purple(repository_id), blue(_("repository added succesfully")),)) else: entropy_server.output( "[%s] %s" % ( purple(repository_id), blue(_("cannot add repository")),), level="warning", importance=1) return 0
def _status(self, entropy_server): repo_id = entropy_server.repository() # show interface info entropy_server._show_interface_status() entropy_server.Mirrors._show_interface_status( repo_id) plugin_id = etpConst['system_settings_plugins_ids']['server_plugin'] repos_data = self._settings()[plugin_id]['server']['repositories'] repo_data = repos_data[repo_id] repo_rev = entropy_server.local_repository_revision(repo_id) store_dir = entropy_server._get_local_store_directory(repo_id) upload_packages = entropy_server.Mirrors._calculate_local_upload_files( repo_id) key_sorter = lambda x: \ entropy_server.open_repository(x[1]).retrieveAtom(x[0]) to_be_added, to_be_removed, to_be_injected = \ entropy_server.scan_package_changes() to_be_added = [x[0] for x in to_be_added] to_be_added.sort() toc = [] toc.append("[%s] %s" % (purple(repo_id), brown(repo_data['description']),)) toc.append((" %s:" % (blue(_("local revision")),), str(repo_rev),)) store_pkgs = [] if os.path.isdir(store_dir): store_pkgs = os.listdir(store_dir) toc.append((" %s:" % (darkgreen(_("stored packages")),), str(len(store_pkgs)),)) for pkg_rel in sorted(store_pkgs): toc.append((" ", brown(pkg_rel))) toc.append((" %s:" % (darkgreen(_("upload packages")),), str(len(upload_packages)),)) for pkg_rel in sorted(upload_packages): toc.append((" ", brown(pkg_rel))) unstaged_len = len(to_be_added) + len(to_be_removed) + \ len(to_be_injected) toc.append((" %s:" % (darkgreen(_("unstaged packages")),), str(unstaged_len),)) print_table(entropy_server, toc) del toc[:] entropy_server.output("") def _get_spm_slot_repo(pkg_atom): try: spm_slot = entropy_server.Spm( ).get_installed_package_metadata(pkg_atom, "SLOT") spm_repo = entropy_server.Spm( ).get_installed_package_metadata(pkg_atom, "repository") except KeyError: spm_repo = None spm_slot = None return spm_slot, spm_repo for pkg_atom in to_be_added: spm_slot, spm_repo = _get_spm_slot_repo(pkg_atom) pkg_str = teal(pkg_atom) if spm_repo is not None: pkg_id, repo_id = entropy_server.atom_match(pkg_atom, match_slot = spm_slot) if pkg_id != -1: etp_repo = entropy_server.open_repository( repo_id).retrieveSpmRepository(pkg_id) if etp_repo != spm_repo: pkg_str += " [%s=>%s]" % ( etp_repo, spm_repo,) toc.append((" %s:" % (purple(_("add")),), teal(pkg_str))) for package_id, repo_id in sorted(to_be_removed, key = key_sorter): pkg_atom = entropy_server.open_repository( repo_id).retrieveAtom(package_id) toc.append((" %s:" % (darkred(_("remove")),), brown(pkg_atom))) for package_id, repo_id in sorted(to_be_injected, key = key_sorter): pkg_atom = entropy_server.open_repository( repo_id).retrieveAtom( package_id) toc.append((" %s:" % (bold(_("switch injected")),), darkgreen(pkg_atom))) print_table(entropy_server, toc) return 0