parser.add_argument("-n", "--dry-run", action="store_true", dest="dry", help="run but do not add users to idm")
parser.add_argument("-l", "--logfile", dest="logfile", help="change logfile location")
parser.add_argument(
    "-y", "--no-confirm", action="store_false", dest="confirm", help="do not confirm user attributes after ldap search"
)
parser.add_argument("--uid", action="store_true", dest="uid", help="update the users uid")
parser.add_argument("usernames", nargs="*")

# create parser
args = parser.parse_args()

logging.basicConfig(format="%(asctime)s :: %(message)s", level=logging.CRITICAL)
logging.info("START")
logging.debug(args)

dstring = ""
if args.dry == True:
    dstring = "--dry-run selected, no changes will be made to idm regardless of confirmation!\n"

userattrs = []
notfound = []
# pull user attributes from AD with ldap query
for user in args.usernames:
    sres = ldap_tools.ldapsearch(user, "bash")
    if sres != "NOUSER":
        userattrs.append(sres)
    else:
        notfound.append(user)

print userattrs
# verify user args and shell option
logging.info("validating shell options...")
logging.debug(args.usernames)

# if not entering users manually...
if args.manual == False:
	# validate and correct user shell options if manual not selected
    	args.usernames = user_add.validateshell(args.usernames, args.defShell)
	logging.debug(args.usernames)

	attrs=[]
	
	# find user ldap entries
	for uname in args.usernames:
		uname = uname.split(':')
		sres = (ldap_tools.ldapsearch(uname[0],uname[1]))
		
		if sres != "NOUSER":
			attrs.append(sres)
		else:
			if args.manid == True:
				logging.critical("error, user not found and manid enabled...abort")
     				exit()
# if manual ids is on, set input ids
if args.manid == True:
	for n,user in enumerate(attrs):
		attrs[n][5] = man_uids[n]	
		attrs[n][6] = man_uids[n]	
	
	
# if the user would like to confim user attributes
# create parser
args = parser.parse_args()

logging.basicConfig(format='%(asctime)s :: %(message)s', level=logging.CRITICAL)
logging.info("START")
logging.debug(args)

dstring =""
if args.dry == True:
	dstring = "--dry-run selected, no changes will be made to idm regardless of confirmation!\n"

userattrs = []
# pull user attributes from AD with ldap query
for user in args.usernames:
	sres = ldap_tools.ldapsearch(user, 'bash')
	if sres != 'NOUSER':	
		userattrs.append(sres)
	else:
		print "error, user %s not found\n" %user

# The update list will be of tuples [<username>,"<attrs_to_update>"]
update_list = []

for user in userattrs:
	modstring = ""
	if args.uid == True:
		modstring = modstring + "--uid %s --gidnumber %s " % (user[5], user[6])
	
	update_list.append([user[0], modstring])