Add some stacklight tests
diff --git a/cvp_checks/tests/test_stacklight.py b/cvp_checks/tests/test_stacklight.py
new file mode 100644
index 0000000..d839042
--- /dev/null
+++ b/cvp_checks/tests/test_stacklight.py
@@ -0,0 +1,44 @@
+import json
+import requests
+
+
+def test_elasticsearch_cluster(local_salt_client):
+    assert requests.get('http://log:9200/').status_code == 200, \
+        'Cannot check elasticsearch url. Info:'
+
+
+def test_stacklight_services_replicas(local_salt_client):
+    salt_output = local_salt_client.cmd(
+        'docker:client:stack:monitoring',
+        'cmd.run',
+        ['docker service ls'],
+        expr_form='pillar')
+    wrong_items = []
+    for line in salt_output[salt_output.keys()[0]].split('\n'):
+        if line[line.find('/') - 1] != line[line.find('/') + 1] \
+           and 'replicated' in line:
+            wrong_items.append(line)
+    assert len(wrong_items) == 0, \
+        '''Some monitoring services doesn't have expected number of replicas:
+              {}'''.format(json.dumps(wrong_items, indent=4))
+
+
+def test_stacklight_containers_status(local_salt_client):
+    salt_output = local_salt_client.cmd(
+        'docker:swarm:role:master',
+        'cmd.run',
+        ['docker service ps $(docker stack services -q monitoring)'],
+        expr_form='pillar')
+    result = {}
+    for line in salt_output[salt_output.keys()[1]].split('\n')[1:]:
+        shift = 0
+        if line.split()[1] == '\\_':
+            shift = 1
+        if line.split()[1 + shift] not in result.keys():
+            result[line.split()[1]] = 'NOT OK'
+        if line.split()[4 + shift] == 'Running' \
+           or line.split()[4 + shift] == 'Ready':
+            result[line.split()[1 + shift]] = 'OK'
+    assert 'NOT OK' not in result.values(), \
+        '''Some containers are in incorrect state:
+              {}'''.format(json.dumps(result, indent=4))