#!/usr/bin/python

from okerrupdate import OkerrProject, OkerrExc
import argparse

parser = argparse.ArgumentParser(description='Micro okerr update utility.')
parser.add_argument('name', metavar='INAME', help='name of indicator (name@textid)')
parser.add_argument('value', metavar='VALUE', help='value')
parser.add_argument('-i','--textid', metavar='TextID', help='name of indicator')
parser.add_argument('--url', metavar='URL', help='URL of server (usually not needed)', default=None)
parser.add_argument('-S','--secret', metavar='SECRET', help='SECRET', default=None)
parser.add_argument('-m','--method', metavar='METHOD', help='method|arg1=val1|arg2=arg2', default='heartbeat')
parser.add_argument('-p','--policy', metavar='POLICY', help='policy', default='Default')

parser.add_argument('-d', '--details', metavar='DETAILS', default=None)

parser.add_argument('-v', dest='verbose', action='store_true', default=False)


args = parser.parse_args()

# support optional name@textid syntax
if '@' in args.name:
    name, textid = args.name.split('@')
else:
    name = args.name
    textid = args.textid    

p = OkerrProject(textid, url=args.url)

if args.verbose:
    p.verbose()

try:
    i = p.indicator(name, secret = args.secret, method = args.method, policy = args.policy )
    i.update(args.value, details = args.details)
except OkerrExc as e:
    print(e)
