Skip to content

Commit

Permalink
Add problems only if request, improve code
Browse files Browse the repository at this point in the history
Ref #280
  • Loading branch information
algorys committed Mar 21, 2018
1 parent 5ca838b commit caeddfb
Showing 1 changed file with 34 additions and 45 deletions.
79 changes: 34 additions & 45 deletions alignak_app/backend/backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -406,6 +406,30 @@ def query_problems(self):
* **Services**: ``WARNING``, ``CRITICAL``, ``UNKNOWN``
"""

logger.info("Update database[problems]...")

def update_database(item_type, items_request):
"""
:param item_type:
:param items_request:
:return:
"""

for item in items_request['_items']:
if not item['ls_acknowledged'] and not item['ls_downtimed']:
if 'service' in item_type:
manager_item = Service()
else:
manager_item = Host()

manager_item.create(
item['_id'],
item,
item['name']
)
data_manager.database['problems'].append(manager_item)

services_projection = [
'name', 'host', 'alias', 'ls_state', 'ls_output', 'ls_acknowledged', 'ls_downtimed'
]
Expand All @@ -421,15 +445,8 @@ def query_problems(self):
all_items=True
)

for item in request['_items']:
if not item['ls_acknowledged'] and not item['ls_downtimed']:
service = Service()
service.create(
item['_id'],
item,
item['name']
)
data_manager.database['problems'].append(service)
if request:
update_database('service', request)

# WARNING services
params = {
Expand All @@ -442,15 +459,8 @@ def query_problems(self):
all_items=True
)

for item in request['_items']:
if not item['ls_acknowledged'] and not item['ls_downtimed']:
service = Service()
service.create(
item['_id'],
item,
item['name']
)
data_manager.database['problems'].append(service)
if request:
update_database('service', request)

# UNKNOWN services
params = {
Expand All @@ -463,15 +473,8 @@ def query_problems(self):
all_items=True
)

for item in request['_items']:
if not item['ls_acknowledged'] and not item['ls_downtimed']:
service = Service()
service.create(
item['_id'],
item,
item['name']
)
data_manager.database['problems'].append(service)
if request:
update_database('service', request)

# Reset projection
host_projection = [
Expand All @@ -492,15 +495,8 @@ def query_problems(self):
all_items=True
)

for item in request['_items']:
if not item['ls_acknowledged'] and not item['ls_downtimed']:
host = Host()
host.create(
item['_id'],
item,
item['name']
)
data_manager.database['problems'].append(host)
if request:
update_database('host', request)

# UNREACHABLE hosts
params = {
Expand All @@ -513,15 +509,8 @@ def query_problems(self):
all_items=True
)

for item in request['_items']:
if not item['ls_acknowledged'] and not item['ls_downtimed']:
host = Host()
host.create(
item['_id'],
item,
item['name']
)
data_manager.database['problems'].append(host)
if request:
update_database('host', request)

if data_manager.database['problems']:
data_manager.databases_ready['problems'] = True
Expand Down

0 comments on commit caeddfb

Please sign in to comment.