132 lines
4.4 KiB
Python
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/artifice/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)
|