#!/opt/osstech/bin/python2.7
# -*- coding: utf-8 -*-

# unicornidm-attribute-list.py
# - show attribute list in user list information
# Copyright (C) Open Source Solution Technology Corporation.
# License: GNU General Public License version 2
# Date: 2012-11-01

import sys, os, subprocess
from optparse import OptionParser

def main():
    UNICORNIDM_PATH = "/opt/osstech/lib/unicornIDM"
    UNICORNIDM_CMD = "%s/manage.py" % UNICORNIDM_PATH

    if os.getuid() != 0:
        sys.stderr.write("You are not root.\n")
        sys.exit(1)

    usage = "usage: %prog -t <target>"

    parser = OptionParser(usage=usage)
    parser.add_option("-t", "--target", dest="orgname", help="Target organization name")

    (opts, args) = parser.parse_args(sys.argv)

    if not args:
        parser.print_help()
        sys.exit(1)

    if not opts.orgname:
        sys.stderr.write("Target organization is not specified.\n")
        parser.print_help()
        sys.exit(1)
    else:
        orgname = opts.orgname


    r = 1
    try:
        cmd = [UNICORNIDM_CMD, "displayattrs", "-t", orgname]
        p = subprocess.Popen(cmd, shell=False, stdin=subprocess.PIPE,
                             stdout=subprocess.PIPE,
                             stderr=subprocess.STDOUT,
                             cwd=UNICORNIDM_PATH)
        output = None
        for line in p.stdout.readlines():
            if output:
                output = "%s\n%s" % (output, line)
            else:
                output = "%s" % line
        r = p.wait()
    except Exception, e:
        sys.stderr.write("Failed to get attribute list.\n%s\n" % str(e))
        sys.exit(1)

    if (r == 0):
        sys.stdout.write(output)
    else:
        sys.stderr.write("Failed to get attribute list.\n%s\n" % output) 
        sys.exit(1)

    return

main()


