distil/client/shell.py
adriant fcfa0f077d Renaming Artifice to Distil
Lots of general rename changes, and a few pieces of minor tidy up.

Change-Id: Ia88b75af0e2d294cfc57164ac42155234d8ba71a
2014-06-12 13:19:29 +12:00

132 lines
4.4 KiB
Python

#!/usr/bin/env python
import os
from client import Client
# import yaml
if __name__ == '__main__':
import argparse
parser = argparse.ArgumentParser()
#main args:
parser.add_argument('--os-username',
default=os.environ.get('OS_USERNAME'),
help='Defaults to env[OS_USERNAME]')
parser.add_argument('--os-password',
default=os.environ.get('OS_PASSWORD'),
help='Defaults to env[OS_PASSWORD]')
parser.add_argument('--os-tenant-id',
default=os.environ.get('OS_TENANT_ID'),
help='Defaults to env[OS_TENANT_ID]')
parser.add_argument('--os-tenant-name',
default=os.environ.get('OS_TENANT_NAME'),
help='Defaults to env[OS_TENANT_NAME]')
parser.add_argument('--os-auth-url',
default=os.environ.get('OS_AUTH_URL'),
help='Defaults to env[OS_AUTH_URL]')
parser.add_argument('--os-region-name',
default=os.environ.get('OS_REGION_NAME'),
help='Defaults to env[OS_REGION_NAME]')
parser.add_argument('--os-auth-token',
default=os.environ.get('OS_AUTH_TOKEN'),
help='Defaults to env[OS_AUTH_TOKEN]')
parser.add_argument("-c", "--config", dest="config",
help="Config file",
default="/etc/distil/conf.yaml")
# commands:
subparsers = parser.add_subparsers(help='commands', dest='command')
usage_parser = subparsers.add_parser(
'usage', help=('process usage for all tenants'))
sales_parser = subparsers.add_parser(
'sales-order',
help=('create sales orders for given tenants'))
sales_parser.add_argument(
"-t", "--tenant", dest="tenants",
help='Tenants to create sales orders for.',
action="append", default=[],
required=True)
sales_parser.add_argument(
"-e", "--end", dest="end",
help='end date for sales order.')
draft_parser = subparsers.add_parser(
'sales-draft',
help=('create sales drafts for given tenants'))
draft_parser.add_argument(
"-t", "--tenant", dest="tenants",
help='Tenants to create sales drafts for.',
action="append", required=True)
draft_parser.add_argument(
"-e", "--end", dest="end",
help='end date for sales order.')
historic_parser = subparsers.add_parser(
'sales-historic',
help=('regenerate historic sales orders for given tenants,' +
'at given date'))
historic_parser.add_argument(
"-t", "--tenant", dest="tenants",
help='Tenants to create sales drafts for.',
action="append", required=True)
historic_parser.add_argument(
"-d", "--date", dest="date",
help='target search date for sales order.',
required=True)
range_parser = subparsers.add_parser(
'sales-range',
help=('regenerate historic sales orders for given tenants,' +
'in a given range'))
range_parser.add_argument(
"-t", "--tenant", dest="tenants",
help='Tenants to create sales drafts for.',
action="append", required=True)
range_parser.add_argument(
"-s", "--start", dest="start",
help='start of range for sales orders.',
required=True)
range_parser.add_argument(
"-e", "--end", dest="end",
help='end of range for sales orders. Defaults to now.',
default=None)
args = parser.parse_args()
conf = {'api': {'endpoint': 'http://0.0.0.0:8000/',
'token': 'sah324sdf5wad4dh839uhjuUH'}}
# try:
# conf = yaml.load(open(args.config).read())
# except IOError:
# print "couldn't load %s " % args.config
# sys.exit(1)
client = Client(conf["api"]["endpoint"],
token=conf["api"]["token"])
if args.command == 'usage':
client.usage()
if args.command == 'sales-order':
client.sales_order(args.tenants, args.end, False)
if args.command == 'sales-draft':
client.sales_order(args.tenants, args.end, True)
if args.command == 'sales-historic':
client.sales_historic(args.tenants, args.date)
if args.command == 'sales-range':
client.sales_range(args.tenants, args.start, args.end)