diff --git a/_states/cinderv3.py b/_states/cinderv3.py
index 15cff40..3e2e21c 100644
--- a/_states/cinderv3.py
+++ b/_states/cinderv3.py
@@ -78,6 +78,52 @@
     return _succeeded('delete', name, resource)
 
 
+def service_enabled(name, binary, cloud_name):
+    """Ensures that the service is enabled on the host
+
+    :param name:    name of a host where service is running
+    :param binary:  name of the service have to be run
+    """
+    changes = {}
+
+    services = _cinder_call('service_list', host=name, binary=binary, cloud_name=cloud_name)['services']
+
+    enabled_service = [s for s in services if s['status'] == 'enabled']
+
+    if len(enabled_service) > 0:
+        ret = _succeeded('no_changes', name, binary)
+    else:
+        changes = _cinder_call('service_update', name, binary, 'enable', cloud_name=cloud_name)
+        ret = _succeeded('update', name, binary, changes)
+
+    return ret
+
+
+def service_disabled(name, binary, cloud_name, disabled_reason=None):
+    """Ensures that the service is disabled on the host
+
+    :param name:    name of a host where service is running
+    :param binary:  name of the service have to be disabled
+    """
+    changes = {}
+    kwargs = {}
+
+    if disabled_reason is not None:
+        kwargs['disabled_reason'] = disabled_reason
+
+    services = _cinder_call('service_list', host=name, binary=binary, cloud_name=cloud_name)['services']
+
+    disabled_service = [s for s in services if s['status'] == 'disabled']
+
+    if len(disabled_service) > 0:
+        ret = _succeeded('no_changes', name, binary)
+    else:
+        changes = _cinder_call('service_update', name, binary, 'disable', cloud_name=cloud_name, **kwargs)
+        ret = _succeeded('update', name, binary, changes)
+
+    return ret
+
+
 def volume_type_present(name, cloud_name, **kwargs):
     return _resource_present('volume_type', name, cloud_name, **kwargs)
 
@@ -153,4 +199,4 @@
         'comment': msg_map[op].format(resource, name),
         'changes': {},
     }
-    return changes_dict
\ No newline at end of file
+    return changes_dict
