# -*- encoding: utf-8 -*- # Software Management Providers # # Copyright (C) 2013 Red Hat, Inc. All rights reserved. # # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public # License as published by the Free Software Foundation; either # version 2.1 of the License, or (at your option) any later version. # # This library is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # Authors: Michal Minar # """ Exceptions raisable by YumWorker. """ class YumDBError(Exception): """Base class for all errors under yumdb package.""" class DatabaseLockError(YumDBError): """Raised, when the yum database can not be locked.""" pass class TransactionError(YumDBError): """Base exception representing yum transaction processing error.""" pass class TransactionBuildFailed(TransactionError): """Raised, when transaction building fails.""" pass class PackageAlreadyInstalled(TransactionError): """Raised, when trying to install already installed package.""" def __init__(self, pkg): TransactionError.__init__(self, 'Package "%s" is already installed.' % pkg) class PackageOpenError(TransactionError): """Raised, when trying to open package obtained from URI.""" def __init__(self, pkg, msg): TransactionError.__init__(self, 'Failed to open package "%s": %s' % (pkg, msg)) class TransactionExecutionFailed(TransactionError): """Raised, when YumBase.doTransaction() method fails.""" pass class PackageError(YumDBError): pass class PackageNotFound(PackageError): """Raised, when requested package could not be found.""" pass class PackageNotInstalled(PackageError): """Raised, when requested package is not installed for desired action.""" def __init__(self, pkg): PackageError.__init__(self, 'Package "%s" is not installed.' % pkg) class RepositoryError(YumDBError): pass class RepositoryNotFound(RepositoryError): """Raised, when requested repository cound not be found.""" def __init__(self, repoid): RepositoryError.__init__(self, "No such repository: %s" % repoid) class RepositoryChangeError(RepositoryError): """Raised, when modification of repository failed.""" pass class JobError(YumDBError): pass class UnknownJob(JobError): """Raised, when no handler is available for given job on worker.""" pass class InvalidURI(JobError): """Raised, when passed uri is not a valid one.""" def __init__(self, uri): JobError.__init__(self, "Invalid uri: \"%s\"" % uri) class InvalidNevra(JobError): pass class JobControlError(JobError): pass class JobNotFound(JobControlError): def __init__(self, target): JobControlError.__init__(self, "job %s could not be found" % target) class InvalidJobState(JobControlError): pass