from vultr.vultr import Vultr, VultrError import util instance_id = "{{ grains['id'] }}" # For offline testing. if instance_id.startswith("{"): instance_id = "fp-jp-20150531-001" vultr_subid_filename = "vultr_id" api_key = "{{ pillar['vultr_apikey'] }}" # For offline testing. if api_key.startswith("{"): api_key = os.getenv("VULTR_APIKEY") vultr = Vultr(api_key) # To avoid artifacts at the very beginning of the month, where the consumption # stats may not be reset, I don't split servers until a little over one day has # elapsed. significant_time = 0.05 # For statistical significance, don't worry if we're out of quota until we've # consumed this much of our monthly allowance. significant_usage = 0.25 # Servers reaching this threshold at any time of the month are split and their # current users are reassigned to other servers. retire_threshold = 0.95 def vultr_dict():
import smtplib import sys import digitalocean import redis from vultr.vultr import Vultr here = os.path.dirname(sys.argv[0]) do_token = os.getenv("DO_TOKEN") or "{{ pillar['do_token'] }}" vultr_apikey = os.getenv("VULTR_APIKEY") or "{{ pillar['vultr_apikey'] }}" redis_url = os.getenv( "REDISCLOUD_PRODUCTION_URL") or "{{ pillar['cfgsrv_redis_url'] }}" do_shell = digitalocean.Manager(token=do_token) vultr_shell = Vultr(vultr_apikey) redis_shell = redis.from_url(redis_url) def vpss_from_dc(dc): try: local_version = file(dc + '_vpss_version').read() except IOError: local_version = None remote_version = redis_shell.get(dc + ':vpss:version') if local_version == remote_version: return set(map(str.strip, file(dc + '_vpss'))) else: ret = redis_shell.lrange(dc + ':vpss', 0, -1) file(dc + '_vpss', 'w').write('\n'.join(ret)) file(dc + '_vpss_version', 'w').write(remote_version)
import smtplib import sys import digitalocean import redis from vultr.vultr import Vultr here = os.path.dirname(sys.argv[0]) do_token = os.getenv("DO_TOKEN") or "{{ pillar['do_token'] }}" vultr_apikey = os.getenv("VULTR_APIKEY") or "{{ pillar['vultr_apikey'] }}" redis_url = os.getenv("REDISCLOUD_PRODUCTION_URL") or "{{ pillar['cfgsrv_redis_url'] }}" do_shell = digitalocean.Manager(token=do_token) vultr_shell = Vultr(vultr_apikey) redis_shell = redis.from_url(redis_url) def vpss_from_dc(dc): try: local_version = file(dc + '_vpss_version').read() except IOError: local_version = None remote_version = redis_shell.get(dc + ':vpss:version') if local_version == remote_version: return set(map(str.strip, file(dc + '_vpss'))) else: ret = redis_shell.lrange(dc + ':vpss', 0, -1) file(dc + '_vpss', 'w').write('\n'.join(ret)) file(dc + '_vpss_version', 'w').write(remote_version) return set(ret)