#!/usr/bin/python3

import cgitb
import cgi
import json

from pyvcloud.vcd.client import Client
from pyvcloud.vcd.client import BasicLoginCredentials
from pyvcloud.vcd.org import Org
from pyvcloud.vcd.vdc import VDC
from pyvcloud.vcd.vapp import EntityType
from pyvcloud.vcd.client import _WellKnownEndpoint

import re
import json

cgitb.enable()

#print("Accept: */*")
print("Access-Control-Allow-Origin: *\n")

def login(user, orgvdc, passwd):
	vcd_client = Client("https://ntcvvcd-stg.telmex.com",  # host de cliente vcd (¿definido por usuario?) https://ntcvvcd-stg.telmex.com/login/?service=tenant:SGM_STG 
		api_version="36.0", # Pendiente validar versión soportada por VCD por utilizar
		verify_ssl_certs=True,
		log_file="vcd.log",
		log_requests=True,
		log_headers=True,
		log_bodies=True,
	)
	#org = Org(vcd_client, resource=vcd_client.get_org())
	#org = Org(vcd_client, resource=vcd_client.get_org())
	#print((vcd_client.get_org()))
	#print((Org(vcd_client, href=None, resource=vcd_client.get_org()).get_name()))
	#print(Org(vcd_client, href=None, resource=None))
	vcd_client.set_credentials(BasicLoginCredentials(user, orgvdc, passwd))
	org = Org(vcd_client, resource=vcd_client.get_org())
	##print(type(vcd_client.get_user_in_org(user, 'SGM_STG')))
	session = to_dict(vcd_client.get_user_in_org(user, orgvdc))
	#org = vcd_client.get_org_list()
	print(org.list_vdcs())
	#print(json.dumps(session, indent = 4))
	#json_object = json.dumps(session, indent = 4)
	#print(json_object)
	vcd_client.logout()


def to_dict(element):
	ret = {}
	if element.getchildren() == []:
		return element.text
	else:
		for elem in element.getchildren():
			subdict = to_dict(elem)
			ret[re.sub('{.*}', '', elem.tag)] = subdict
		return ret

def main():
	user = cgi.FieldStorage()['user'].value
	passwd = cgi.FieldStorage()['password'].value
	login(user, 'SGM_STG', passwd)

main()
