#!/usr/bin/python2.7

# Call: this_script.py Username Password

import sys
from univention.lib.umc import Client

#SKIPPED_TESTS = ['11_nameserver', '31_file_permissions', '40_samba_tool_dbcheck']
SKIPPED_TESTS = []


def test_run_diagnostic_checks():
	client = Client()
	client.authenticate(sys.argv[1], sys.argv[2])
	plugins = client.umc_command('diagnostic/query').result
	failures = []
	for plugin in plugins:
		if plugin['id'] in SKIPPED_TESTS:
			print 'SKIP %s' % plugin['id']
			continue
                print 'RUN %s' % plugin['id']
		result = client.umc_command('diagnostic/run', {'plugin': plugin['id']}).result
		if result['type'] != 'success':
			print('FAILURE %s' % plugin['id'])
			failures.extend([
				'############################',
				'## Check failed: %s - %s' % (plugin['id'], result['title']),
				result['description'],
				'########### End #############',
			])
		else:
			print('SUCCESS %s' % plugin['id'])
	if failures:
		raise Exception('\n'.join(failures))


if __name__ == "__main__":
	test_run_diagnostic_checks()
