def update_conf(): """ Do we need to update the configuration? """ global ha_reloaded stats = hastats.get_stat_backends() stack = openstack() backends = stack.backends() if not len(backends) == len(stats): ha = haproxy.HAproxy() ha.compile(backends) global ha_last_reload ha_last_reload = datetime.datetime.now() if ha.restart(): ha_reloaded = True return True return False
def main(): # Starting the first time # getting current cum connections try: if not metrics: print("Gathering initial data...") # Gathering first data initiate() while True: current = new_metrics(hastats.get_backend_cum_requests()['stot']) print metrics[-1] print "Needed servers: %s" % str( needed_servers(diff=current['diff'])) # What to do? Scale up/down or are we happy? stack = openstack() active_backends = stack.active_backends() up_backends = hastats.get_backends_up() needed = needed_servers(diff=current['diff']) if needed > len(active_backends): print "Scaling up" scale_up(needed - len(active_backends)) elif needed < len(active_backends): print "Scaling down" if not scale_down(Needed=needed): print "Lowest number" else: # Sleeping print "Sleeping one more round" if update_conf(): print "HAproxy config reloaded" print ha_last_reload for line in hastats.get_stat_backends(): print line['svname'] + ', ' + line['status'] time.sleep(sleeptime) except KeyboardInterrupt: write_data()
def main(): # Starting the first time # getting current cum connections try: if not metrics: print("Gathering initial data...") # Gathering first data initiate() while True: current = new_metrics(hastats.get_backend_cum_requests()['stot']) print metrics[-1] print "Needed servers: %s" % str(needed_servers(diff=current['diff'])) # What to do? Scale up/down or are we happy? stack = openstack() active_backends = stack.active_backends() up_backends = hastats.get_backends_up() needed = needed_servers(diff=current['diff']) if needed > len(active_backends): print "Scaling up" scale_up(needed-len(active_backends)) elif needed < len(active_backends): print "Scaling down" if not scale_down(Needed=needed): print "Lowest number" else: # Sleeping print "Sleeping one more round" if update_conf(): print "HAproxy config reloaded" print ha_last_reload for line in hastats.get_stat_backends(): print line['svname'] + ', ' + line['status'] time.sleep(sleeptime) except KeyboardInterrupt: write_data()