Пример #1
0
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():
Пример #2
0
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)
Пример #3
0
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)