summaryrefslogtreecommitdiffstats
path: root/commands/service
diff options
context:
space:
mode:
Diffstat (limited to 'commands/service')
-rw-r--r--commands/service/lmi/scripts/service/__init__.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/commands/service/lmi/scripts/service/__init__.py b/commands/service/lmi/scripts/service/__init__.py
index 1f7e3c6..18f8661 100644
--- a/commands/service/lmi/scripts/service/__init__.py
+++ b/commands/service/lmi/scripts/service/__init__.py
@@ -100,8 +100,9 @@ def list_services(ns, kind='enabled'):
continue
yield service
except pywbem.CIMError as err:
- raise LmiFailed('Failed to get service "%s": %s'
- % (service, err.args[1]))
+ if err.args[0] == pywbem.CIM_ERR_NOT_SUPPORTED:
+ raise LmiFailed('Service provider is not installed or registered.')
+ raise LmiFailed('Failed to list services: %s' % err.args[1])
def start_service(ns, service):
"""
@@ -195,12 +196,17 @@ def get_service(ns, service):
inst = iname.to_instance()
elif isinstance(service, (LMIInstance, LMIInstanceName)):
- inst = service
- service = inst.Name
- if isinstance(inst, LMIInstanceName):
- inst = inst.to_instance()
+ try:
+ inst = service
+ service = inst.Name
+ if isinstance(inst, LMIInstanceName):
+ inst = inst.to_instance()
+ except AttributeError:
+ raise ValueError('Invalid service instance name. It\'s missing'
+ ' Name property.')
- return inst
+ else:
+ raise TypeError("service must be either string or ``LMIInstanceName``")
except pywbem.CIMError as err:
if err.args[0] == pywbem.CIM_ERR_NOT_FOUND:
@@ -209,7 +215,11 @@ def get_service(ns, service):
raise LmiFailed('Failed to get service "%s": %s'
% (service, err.args[1]))
- raise TypeError("service must be either string or ``LMIInstanceName``")
+ if inst is None:
+ raise LmiFailed('No such service "%s".' % service)
+
+ return inst
+
def get_status_string(ns, service):
"""