def validateCSV()

in SupportScripts/Python/AccountManagement/scim_agent.py [0:0]


def validateCSV(filename, expected_headers, required_headers):
	# reset the column mapping if any previous values
	COLUMN_NAME_TO_NUMBER_MAP.clear()
	f = open(filename)
	csv_f = csv.reader(f)
	headers = next(csv_f)
	headers_count = len(headers)
	validateHeaders(headers, expected_headers, required_headers)
	if ERRORS:
		print(ERRORS)
		return
	users = {}
	userGroups = {}
	userGroups[MANAGER_PAIRS_KEYS] = []
	#validate each row
	for row in csv_f:
		validateColumnCount(row, headers_count, str(csv_f.line_num))
		if ERRORS:
			print(ERRORS)
			return
		user = buildUserObject(row, str(csv_f.line_num), expected_headers)
		users[user[csv_header.EMAIL_HEADER]] = user
		if csv_header.MANAGER_HEADER in user and user[csv_header.MANAGER_HEADER]:
			userGroups[MANAGER_PAIRS_KEYS].append({MANAGER_PAIRS_EMPLOYEE_KEY: user[csv_header.EMAIL_HEADER], MANAGER_PAIRS_MANAGER_KEY: user[csv_header.MANAGER_HEADER]})
	f.close()
	userGroups[USERS_KEY] = users

	#if valid file then print out some flair
	if len(ERRORS) == 0:
		print(VALID_FILE)
	return userGroups