Esempio n. 1
0
def register(request):
	try:
		if request.session.get('username', None) != None:
			return HttpResponseRedirect(reverse('createvm:index'))
		if request.method == 'GET':
			return render(request, 'createvm/register.html')
		
		if request.method == 'POST':
			check_code = request.POST.get('check_code', None)
			code = request.POST.get('code', None)
			if code.lower() != check_code.lower():
				raise ValueError('验证码错误')

			username = request.POST.get('username', None)
			password = request.POST.get('password', None)
			check_password = request.POST.get('check_password', None)
			email = request.POST.get('email', None)
			code = request.POST.get('code', None)
			check_code = request.POST.get('check_code', None)
			if username == '' or password == '' or check_password == '' or email == '' or code == '':
				raise ValueError('缺少输入')


			if password != check_password:
				raise ValueError('两次密码不一样')

			configs = get_config()
			keystone = keystoneClient.Client(auth_url=configs['auth_url'], username=configs['username'],
						password=configs['password'], tenant_name=configs['tenant_name'])
			keystone.tenants.create(tenant_name=username,
										description=username + " Tenant", enabled=True)
			tenants = keystone.tenants.list()
			my_tenant = [x for x in tenants if x.name==username][0]
			my_user = keystone.users.create(name=username,
							password=password, tenant_id=my_tenant.id, email=email)

			#用户添加amdin 角色
			admin_role = None
			for r in keystone.roles.list():
				if r.name == "admin":
					admin_role = r

			keystone.roles.add_user_role(my_user, admin_role, my_tenant)

			mem = Member()
			mem.name = username
			mem.is_active = False
			mem.save()

			return HttpResponseRedirect(reverse('createvm:login'))

	except Exception,e:
		return HttpResponse(e)
Esempio n. 2
0
def login(request):
	try:
		if request.session.get('username', None) != None:
			return HttpResponseRedirect(reverse('createvm:index'))
		if request.method == 'GET':
			return render(request,'createvm/login.html')
		#判断验证码
		check_code = request.POST.get('check_code', None)
		code = request.POST.get('code', None)
		if check_code.lower() != code.lower():
			raise ValueError('验证码错误')

		username = request.POST.get('username', None)
		password = request.POST.get('password', None)
		if username == None or password == None:
			raise ValueError('input lack')
		tenant_name = username
		configs = get_config()
		auth_url = configs['auth_url'] 

		auth = v2.Password(auth_url=auth_url, username=username, 
				password=password, tenant_name=tenant_name)
		sess = session.Session(auth=auth)
		nova = client.Client('2', session=sess)
		nova.servers.list()

		request.session['username'] = username
		request.session['password'] = password
		request.session['tenant_name'] = tenant_name
		request.session['auth_url'] = auth_url

		return HttpResponseRedirect(reverse('createvm:index'))
	except Exception,e:
		name = request.session.get('username', 'root')
		logger = getLogger(name)
		logger.error(e)
		return HttpResponse(e)