#!/usr/bin/env python2.7
"""Create a directory (ContainerNode) in the VOSpace repositotry"""


import vos
import time
import os, sys, logging
from optparse import OptionParser
from vos import vos, __version__

usage="""
        vrm vos:/root/node   -- deletes a data node

Version: %s """ % (__version__.version)



parser=OptionParser(usage)
parser.add_option("-v","--verbose",action="store_true")
parser.add_option("-d","--debug",action="store_true")
parser.add_option("-w","--warning",action="store_true")
parser.add_option("--certfile",help="location of your CADC security certificate file",default=os.path.join(os.getenv("HOME","."),".ssl/cadcproxy.pem"))
parser.add_option("--version", action="store_true", help="VOS Version %s" % (__version__.version))

if len(sys.argv) == 1:
        parser.print_help()
        sys.exit()
        
(opt,args)=parser.parse_args()

if opt.version:
        sys.stdout.write("vrm version %s \n\n" % (__version__.version)) 
        sys.exit()



if opt.verbose:
    log_level = logging.INFO
elif opt.debug:
    log_level = logging.DEBUG
elif opt.warning:
    log_level = logging.WARNING
else:
    log_level = logging.ERROR

logging.getLogger('vos').setLevel(log_level)
logging.getLogger('vos').addHandler(logging.StreamHandler())
logger = logging.getLogger('vos')



try:
    client=vos.Client(certFile=opt.certfile)
except Exception as e:
    logger.error("Connection failed:  %s" %  (str(e)))
    sys.exit(e.errno)

for arg in args:
    if arg[0:4]!="vos:":
        logger.error("%s is not a valid VOSpace handle" % (arg))
    try:
        if client.isfile(arg) or client.getNode(arg).islink():
            logger.info("deleting %s" %(arg))
            client.delete(arg)
        elif client.isdir(arg):
            logger.error("%s is a directory" % (arg))
        elif client.access(arg):
            logger.info("deleting link %s" %(arg))
            client.delete(arg)
        else:
            logger.error("%s file not found" % (arg))
            sys.exit(-1)
    except Exception as e:
        import re
        if re.search('NodeLocked',str(e)) != None:
            logger.error("Use vlock to unlock %s before deleting." % (arg))
        logger.error("Failed trying to delete %s: %s (%d)" %(arg,str(e),e.errno))
        sys.exit(e.errno)
