Пример #1
0
def generate_status_data(period, service):
    null_allowed = lucky(RESPONSE_TOTAL_NULL_PROBABILITY)
    data = {}
    for region in fake_regions.regions():
        result, code = generate_region_data(region, period, service,
                                            null_allowed)
        if code == 200:
            data.update(result[service])
    return flask.jsonify({"period": period, service: data})
Пример #2
0
def get_status(period):
    validate_period(period)
    status = {}
    rand = lambda: None if lucky(STATUS_NULL_PROBABILITY) else random.random()
    for region in fake_regions.regions():
        status[region] = {"sla": rand(),
                          "performance": random.randint(1, 10),
                          "availability": rand(),
                          "health": rand()}
    return flask.jsonify({"status": status, "period": period})
Пример #3
0
def generate_region_data(region, period, service, null_allowed):
    data = fake_regions.regions(detailed=True).get(region)

    if not data:
        return ({"error": "Region '%s' not found" % region}, 404)

    if service not in data["services"]:
        error = ("Service '%s' is not available for region '%s'"
                 % (service, region))
        return ({"error": error}, 404)

    result = generate_service_data(period, service, null_allowed)
    return ({service: {region: result}, "period": period}, 200)
Пример #4
0
def get_region_status(region, period):
    validate_period(period)
    data = fake_regions.regions(detailed=True).get(region)
    if not data:
        return ({"error": "Region '%s' not found" % region}, 404)

    if lucky(RESPONSE_TOTAL_NULL_PROBABILITY):
        rand = lambda: (None if lucky(STATUS_NULL_PROBABILITY)
                        else random.random())
    else:
        rand = random.random

    status = {}
    for service in ("keystone", "nova", "cinder"):
        status[service] = {"sla": rand(),
                           "performance": random.randint(1, 10),
                           "availability": rand(),
                           "health": rand()}
    return flask.jsonify({"status": status, "period": period})
Пример #5
0
def get_region_status_availability(region, period):
    validate_period(period)
    region_data = fake_regions.regions(detailed=True).get(region)

    if not region_data:
        return flask.jsonify({"error": "Region '%s' not found" % region}), 404

    if "availability" not in region_data["services"]:
            error = ("Service '%s' is not available for region '%s'"
                     % ("availability", region))
            return flask.jsonify({"error": error}), 404

    null_probability = (lucky(RESPONSE_TOTAL_NULL_PROBABILITY)
                        and PERFORMANCE_NULL_PROBABILITY or 0)

    availability = {}
    for svc in ["foo_service", "bar_service", "spam_service"]:
        data, avg = generate_values(period, 1, null_probability)
        availability[svc] = {"availability_data": data,
                             "availability": avg}

    return flask.jsonify({"availability": availability,
                          "region": region,
                          "period": period})
Пример #6
0
def get_regions_infra():
    infras = itertools.cycle(INFRAS)
    infra = {region: next(infras) for region in fake_regions.regions()}
    return flask.jsonify({"infra": infra})
Пример #7
0
def get_region_infra(region):
    regions = fake_regions.regions()
    if region not in regions:
        return flask.jsonify({"error": "Region '%s' not found" % region}), 404
    infra_idx = regions.index(region) % len(INFRAS)
    return flask.jsonify({"region": region, "infra": INFRAS[infra_idx]})