コード例 #1
0
def do_usage_list(cs, args):
    """List usage data for all tenants."""
    dateformat = "%Y-%m-%d"
    rows = ["Tenant ID", "Instances", "RAM MB-Hours", "CPU Hours", "Disk GB-Hours"]

    now = timeutils.utcnow()

    if args.start:
        start = datetime.datetime.strptime(args.start, dateformat)
    else:
        start = now - datetime.timedelta(weeks=4)

    if args.end:
        end = datetime.datetime.strptime(args.end, dateformat)
    else:
        end = now + datetime.timedelta(days=1)

    def simplify_usage(u):
        simplerows = [x.lower().replace(" ", "_") for x in rows]

        setattr(u, simplerows[0], u.tenant_id)
        setattr(u, simplerows[1], "%d" % len(u.server_usages))
        setattr(u, simplerows[2], "%.2f" % u.total_memory_mb_usage)
        setattr(u, simplerows[3], "%.2f" % u.total_vcpus_usage)
        setattr(u, simplerows[4], "%.2f" % u.total_local_gb_usage)

    usage_list = cs.usage.list(start, end, detailed=True)

    print("Usage from %s to %s:" % (start.strftime(dateformat), end.strftime(dateformat)))

    for usage in usage_list:
        simplify_usage(usage)

    utils.print_list(usage_list, rows)
コード例 #2
0
def do_list(cs, args):
    """List active loadbalancers."""

    def vip_filter(lb):
        vips = [x["address"] for x in lb.virtualIps]
        return ", ".join(vips)

    filters = {}
    formatters = {"VirtualIPs": vip_filter}
    field_titles = []
    if args.fields:
        for field in args.fields.split(","):
            field_title, formatter = utils._make_field_formatter(field, filters)
            field_titles.append(field_title)
            formatters[field_title] = formatter
    id_col = "ID"

    loadbalancers = cs.loadbalancers.list()
    convert = [("OS-EXT-SRV-ATTR:host", "host"), ("hostId", "host_id")]
    _translate_keys(loadbalancers, convert)

    if field_titles:
        columns = [id_col] + field_titles
    else:
        columns = [id_col, "Name", "Status", "Protocol", "Port", "Algorithm", "VirtualIPs"]
    utils.print_list(loadbalancers, columns, formatters, sortby_index=1)
コード例 #3
0
 def _dump_timings(self, timings):
     class Tyme(object):
         def __init__(self, url, seconds):
             self.url = url
             self.seconds = seconds
     results = [Tyme(url, end - start) for url, start, end in timings]
     total = 0.0
     for tyme in results:
         total += tyme.seconds
     results.append(Tyme("Total", total))
     utils.print_list(results, ["url", "seconds"], sortby_index=None)
コード例 #4
0
def _quota_show(quotas):
    class FormattedQuota(object):
        def __init__(self, key, value):
            setattr(self, "quota", key)
            setattr(self, "limit", value)

    quota_list = []
    for resource in _quota_resources:
        try:
            quota = FormattedQuota(resource, getattr(quotas, resource))
            quota_list.append(quota)
        except AttributeError:
            pass
    columns = ["Quota", "Limit"]
    utils.print_list(quota_list, columns)
コード例 #5
0
def do_usage(cs, args):
    """Show usage data for a single tenant."""
    dateformat = "%Y-%m-%d"
    rows = ["Instances", "RAM MB-Hours", "CPU Hours", "Disk GB-Hours"]

    now = timeutils.utcnow()

    if args.start:
        start = datetime.datetime.strptime(args.start, dateformat)
    else:
        start = now - datetime.timedelta(weeks=4)

    if args.end:
        end = datetime.datetime.strptime(args.end, dateformat)
    else:
        end = now + datetime.timedelta(days=1)

    def simplify_usage(u):
        simplerows = [x.lower().replace(" ", "_") for x in rows]

        setattr(u, simplerows[0], "%d" % len(u.server_usages))
        setattr(u, simplerows[1], "%.2f" % u.total_memory_mb_usage)
        setattr(u, simplerows[2], "%.2f" % u.total_vcpus_usage)
        setattr(u, simplerows[3], "%.2f" % u.total_local_gb_usage)

    if args.tenant:
        usage = cs.usage.get(args.tenant, start, end)
    else:
        usage = cs.usage.get(cs.client.tenant_id, start, end)

    print("Usage from %s to %s:" % (start.strftime(dateformat), end.strftime(dateformat)))

    if getattr(usage, "total_vcpus_usage", None):
        simplify_usage(usage)
        utils.print_list([usage], rows)
    else:
        print("None")
コード例 #6
0
def do_rate_limits(cs, args):
    """Print a list of rate limits for a user"""
    limits = cs.limits.get().rate
    columns = ["Verb", "URI", "Value", "Remain", "Unit", "Next_Available"]
    utils.print_list(limits, columns)
コード例 #7
0
def do_absolute_limits(cs, args):
    """Print a list of absolute limits for a user"""
    limits = cs.limits.get(args.reserved, args.tenant).absolute
    columns = ["Name", "Value"]
    utils.print_list(limits, columns)