def minions_status_task(): #minion status , version data save to mysql status_all = sapi.runner_status('status') for host_name in status_all['up']: salt_grains = Salt_grains.objects.filter(minion_id=host_name) try: version = eval(salt_grains[0].grains).get('saltversion').decode('string-escape') except: version = 'NULL' logger.error("Don't get minion version") try: Minions_status.objects.get(minion_id=host_name) except: status = Minions_status() status.minion_id = host_name status.minion_version = version status.minion_status = 'Up' status.save() Minions_status.objects.filter(minion_id=host_name).update(minion_id=host_name, minion_version=version, minion_status='Up') for host_name in status_all['down']: try: Minions_status.objects.get(minion_id=host_name) except: status = Minions_status() status.minion_id = host_name status.minion_version = version status.minion_status = 'Down' status.save() Minions_status.objects.filter(minion_id=host_name).update(minion_id=host_name, minion_version=version, minion_status='Down')
def minions_status_scheduled_job(): status = Minions_status() status_all = sapi.runner_status('status') for host_name in status_all['up']: salt_grains = Salt_grains.objects.filter(minion_id=host_name) version = eval( salt_grains[0].grains).get('saltversion').decode('string-escape') try: Minions_status.objects.get(minion_id=host_name) except: status.minion_id = host_name status.minion_version = version status.minion_status = 'Up' status.save() Minions_status.objects.filter(minion_id=host_name).update( minion_id=host_name, minion_version=version, minion_status='Up') for host_name in status_all['down']: try: Minions_status.objects.get(minion_id=host_name) except: status.minion_id = host_name status.minion_version = version status.minion_status = 'Down' status.save() Minions_status.objects.filter(minion_id=host_name).update( minion_id=host_name, minion_version=version, minion_status='Down')
def grains_task(): # grains data save to mysql salt_grains = Salt_grains() minions_status = Minions_status() status = sapi.runner_status('status') status_up = status['up'] status_down = status['down'] for host_name in status_up: grains = sapi.remote_noarg_execution(host_name, 'grains.items') try: Salt_grains.objects.get(minion_id=host_name) except: salt_grains.grains = grains salt_grains.minion_id = host_name salt_grains.save() Salt_grains.objects.filter(minion_id=host_name).update( grains=grains, minion_id=host_name) # minion status , version data save to mysql for host_name in status_up: salt_grains = Salt_grains.objects.filter(minion_id=host_name) version = eval( salt_grains[0].grains).get('saltversion').decode('string-escape') try: Minions_status.objects.get(minion_id=host_name) except: minions_status.minion_id = host_name minions_status.minion_version = version minions_status.minion_status = 'Up' minions_status.save() Minions_status.objects.filter(minion_id=host_name).update( minion_id=host_name, minion_version=version, minion_status='Up') for host_name in status_down: try: Minions_status.objects.get(minion_id=host_name) except: minions_status.minion_id = host_name minions_status.minion_version = version minions_status.minion_status = 'Down' minions_status.save() Minions_status.objects.filter(minion_id=host_name).update( minion_id=host_name, minion_version=version, minion_status='Down')