summaryrefslogtreecommitdiffstats
path: root/src/software
diff options
context:
space:
mode:
authorMichal Minar <miminar@redhat.com>2013-11-30 14:09:13 +0100
committerMichal Minar <miminar@redhat.com>2013-12-02 12:30:22 +0100
commitdc283cceaf1c09721fe67fce229aeeb3efa20390 (patch)
treef60e7447fb1adf12862ca2463e1440b83642e8c6 /src/software
parent6fe40639889fbe748231058d82edd8f6b3eb2714 (diff)
downloadopenlmi-providers-dc283cceaf1c09721fe67fce229aeeb3efa20390.tar.gz
openlmi-providers-dc283cceaf1c09721fe67fce229aeeb3efa20390.tar.xz
openlmi-providers-dc283cceaf1c09721fe67fce229aeeb3efa20390.zip
software: raise proper error when repository not found
CIM_ERR_NOT_FOUND shall be raised when objectpath of invoked method does not refer to existing repository. CIM_ERR_FAILED was raised instead which is unhelpful. Resolves: rhbz#1036291
Diffstat (limited to 'src/software')
-rw-r--r--src/software/lmi/software/LMI_SoftwareIdentityResource.py37
1 files changed, 20 insertions, 17 deletions
diff --git a/src/software/lmi/software/LMI_SoftwareIdentityResource.py b/src/software/lmi/software/LMI_SoftwareIdentityResource.py
index 2e70e80..8f48ee0 100644
--- a/src/software/lmi/software/LMI_SoftwareIdentityResource.py
+++ b/src/software/lmi/software/LMI_SoftwareIdentityResource.py
@@ -246,23 +246,26 @@ class LMI_SoftwareIdentityResource(CIMProvider2):
return ( self.values.RequestStateChange.Invalid_State_Transition
, out_params)
- with YumDB.get_instance() as ydb:
- repo = IdentityResource.object_path2repo(env,
- object_name, 'all')
- enable = param_requestedstate == \
- self.values.RequestStateChange.RequestedState.Enabled
- LOG().info("%s repository %s" % ("enabling"
- if enable else "disabling", repo))
- try:
- prev = ydb.set_repository_enabled(
- repo, enable)
- except errors.RepositoryChangeError as exc:
- msg = "failed to modify repository %s: %s" % (repo, str(exc))
- LOG().error(msg)
- raise pywbem.CIMError(pywbem.CIM_ERR_FAILED, msg)
- msg = ( "repository %s already %s"
- if prev == enable else "repository %s %s")
- LOG().info(msg % (repo, "enabled" if enable else "disabled"))
+ try:
+ with YumDB.get_instance() as ydb:
+ repo = IdentityResource.object_path2repo(env,
+ object_name, 'all')
+ enable = param_requestedstate == \
+ self.values.RequestStateChange.RequestedState.Enabled
+ LOG().info("%s repository %s" % ("enabling"
+ if enable else "disabling", repo))
+ try:
+ prev = ydb.set_repository_enabled(
+ repo, enable)
+ except errors.RepositoryChangeError as exc:
+ msg = "failed to modify repository %s: %s" % (repo, str(exc))
+ LOG().error(msg)
+ raise pywbem.CIMError(pywbem.CIM_ERR_FAILED, msg)
+ msg = ( "repository %s already %s"
+ if prev == enable else "repository %s %s")
+ LOG().info(msg % (repo, "enabled" if enable else "disabled"))
+ except errors.RepositoryNotFound as err:
+ raise pywbem.CIMError(pywbem.CIM_ERR_NOT_FOUND, err.message)
rval = self.values.RequestStateChange.Completed_with_No_Error
return (rval, out_params)