def get_member_users(request): LOG.info("---------- members -------------") users = User.objects.all() member_users = [] for user in users: try: keystone_user_id = UserDataCenter.objects.get(user_id=user.id).keystone_user_id tenant_uuid = UserDataCenter.objects.get(user_id=user.id).tenant_uuid except: continue #LOG.info(keystone_user_id) #LOG.info(tenant_uuid) rc = create_rc_by_dc(DataCenter.objects.all()[0]) try: user_roles = keystone.roles_for_user(rc, keystone_user_id, tenant_uuid) except: continue system = False security = False audit = False for user_role in user_roles: if user_role.name == "system": system = True break if user_role.name == "audit": audit = True break if user_role.name == "security": security = True break if not system and not security and not audit and not user.is_superuser: member_users.append(user) LOG.info(member_users) serializer = UserSerializer(member_users, many=True) return Response(serializer.data)
def add_user_role(keystone_user, role, user_tenant_id): LOG.info("ddddddddd") datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) LOG.info("********* keystone_user is *********" + str(keystone_user)) LOG.info("********* role is *********" + str(role)) LOG.info("********* user_tenant_id is *********" + str(user_tenant_id)) # get user_id users = keystone.user_list(rc, project=user_tenant_id) LOG.info("******* users are ******" + str(users)) user_id = None for u in users: if u.username == keystone_user: user_id = u.id LOG.info("****** user_id is *********" + str(user_id)) role_id = None roles = keystone.role_list(rc) for r in roles: if r.name == role: role_id = r.id LOG.info("******** role_id is ********" + str(role_id)) try: keystone.add_tenant_user_role(rc, project=user_tenant_id, user=user_id, role=role_id) except: pass return False
def user_role(request, udc_id): UDC = UserDataCenter.objects.get(pk=udc_id) LOG.info(UDC) LOG.info("4") keystone_user_id = UDC.keystone_user_id LOG.info("4") tenant_uuid = UDC.tenant_uuid LOG.info("4") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("4") user_roles = keystone.roles_for_user(rc, keystone_user_id, tenant_uuid) LOG.info("4") for user_role in user_roles: if user_role.name == "system": response = "system" break if user_role.name == "security": response = "security" break if user_role.name == "audit": response = "audit" break if user_role.name == "_member_": response = "member" break return response
def change_user_keystone_passwd(user_id, username, tenant_id, new_passwd): datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) users = keystone.user_list(rc, project=tenant_id) LOG.info("*** rc is ***" + str(rc)) LOG.info("******* users are ******" + str(users)) udc_user_id = user_id LOG.info("*** udc_user_id is ***" + str(udc_user_id)) user_id = None for u in users: if u.username == username: user_id = u.id LOG.info("**** user_id is ****" + str(user_id)) try: keystone.user_update_password(rc, user_id, new_passwd, admin=True) LOG.info("**** user password updated ****") udc = UserDataCenter.objects.get(user_id=udc_user_id) LOG.info("**** user password updated ****") udc.keystone_password = new_passwd LOG.info("**** user password updated ****") udc.save() LOG.info("**** user password updated ****") except: raise return True
def add_user_tenants(request, tenant_id, ID): datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) roles = keystone.role_list(rc) LOG.info("------------------roles are----------------" + str(roles)) #member_role = filter(lambda r: r.name.lower() == "_member_", roles)[0] # Grant basic role to user roles_id = [] for role in roles: if role.name in ['SwiftOperator', '_member_', 'heat_stack_owner']: roles_id.append(role) #member_role = filter(lambda r: r.name.lower() == "_member_", roles)[0] #LOG.info("------------------ member role is ----------------" + str(member_role.id)) #LOG.info("------------------ user id is ----------------" + str(u.id)) for role in roles_id: try: keystone.add_tenant_user_role(rc, project=tenant_id, user=ID, role=role.id) except: pass return True
def site_config(request): user = request.user current_user = {'username': user.username} if not user.is_superuser: # Retrieve user to use some methods of UserProxy user = UserProxy.objects.get(pk=user.pk) if user.has_udc: udc_id = request.session["UDC_ID"] data_center = DataCenter.objects.get(userdatacenter__pk=udc_id) data_center_name = data_center.name rc = create_rc_by_dc(data_center) sdn_enabled = neutron.is_neutron_enabled(rc) else: data_center_name = u'N/A' sdn_enabled = False current_user['datacenter'] = data_center_name current_user['sdn_enabled'] = sdn_enabled current_user['has_udc'] = user.has_udc current_user['is_approver'] = user.is_approver return render(request, 'site_config.js', {'current_user': json.dumps(current_user), 'site_config': json.dumps(settings.SITE_CONFIG)}, content_type='application/javascript')
def site_config(request): user = request.user current_user = {'id': user.id, 'username': user.username} if not user.is_superuser: # Retrieve user to use some methods of UserProxy user = UserProxy.objects.get(pk=user.pk) if user.has_udc: udc_id = request.session["UDC_ID"] data_center = DataCenter.objects.get(userdatacenter__pk=udc_id) data_center_name = data_center.name rc = create_rc_by_dc(data_center) sdn_enabled = neutron.is_neutron_enabled(rc) else: data_center_name = u'N/A' sdn_enabled = False current_user['datacenter'] = data_center_name current_user['sdn_enabled'] = sdn_enabled current_user['has_udc'] = user.has_udc current_user['is_approver'] = user.is_approver current_user['mobile'] = user.profile.mobile current_user['email'] = user.email return render(request, 'site_config.js', {'current_user': json.dumps(current_user), 'site_config': json.dumps(settings.SITE_CONFIG)}, content_type='application/javascript')
def list(self, request): rc = create_rc_by_dc(DataCenter.objects.all()[0]) roles = [] for role in keystone.role_list(rc): roles.append({"role":role.name}) roles.append({"role":"admin_or_owner"}) #keystone.role_list(rc) #LOG.info(roles) return Response(roles)
def list(self, request): rc = create_rc_by_dc(DataCenter.objects.all()[0]) roles = [] for role in keystone.role_list(rc): roles.append({"role": role.name}) roles.append({"role": "admin_or_owner"}) #keystone.role_list(rc) #LOG.info(roles) return Response(roles)
def batch_delete(request): LOG.info("**** start to delete network ****") datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) LOG.info(request.data) network_id = request.data['ids[]'] LOG.info(network_id) neutron.network_delete(rc, network_id) return Response({"OPERATION_STATUS": 1, "MSG": _("Creating network")})
def link_user_to_dc_task(user, datacenter, **kwargs): LOG.info("New user: Start action [%s]" % user.username) rc = create_rc_by_dc(datacenter) tenant_name = "%s-%04d" % (settings.OS_NAME_PREFIX, user.id) try: keystone_user = "******" % (settings.OS_NAME_PREFIX, user.id, user.username.split('@')[0]) except: keystone_user = "******" % (settings.OS_NAME_PREFIX, user.id) pwd = "cloud!@#%s" % random.randrange(100000, 999999) t = keystone.tenant_create(rc, name=tenant_name, description=user.username) LOG.info("New user: create tanant [%s][tid:%s]" % (user.username, t.id)) u = keystone.user_create(rc, name=keystone_user, email=user.email, password=pwd, project=t.id) LOG.info("New user: create user [%s][uid:%s]" % (user.username, u.id)) roles = keystone.role_list(rc) admin_role = filter(lambda r: r.name.lower() == "admin", roles)[0] keystone.add_tenant_user_role(rc, project=t.id, user=u.id, role=admin_role.id) LOG.info("New user: add role [%s][role:%s]" % (user.username, admin_role.id)) udc = UserDataCenter.objects.create( data_center = datacenter, user = user, tenant_name = tenant_name, tenant_uuid = t.id, keystone_user = keystone_user, keystone_password = pwd, ) LOG.info("New user: link to datacenter [%s][udc:%s]" % (user.username, udc.id)) try: edit_default_security_group(user, udc) except Exception as ex: LOG.exception(ex) try: Contract.objects.create( user = user, udc = udc, name = user.username, customer = user.username, start_date = datetime.datetime.now(), end_date = datetime.datetime.now(), deleted = False ) except Exception as ex: LOG.exception(ex) return u
def role_create(request, role_name): LOG.info("************* start to create a new role in keystone ***************") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("************* rc is ***************" + str(rc)) try: role = keystone.role_create(rc, role_name) except: return False return True
def role_create(request, role_name): LOG.info( "************* start to create a new role in keystone ***************") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("************* rc is ***************" + str(rc)) try: role = keystone.role_create(rc, role_name) except: return False return True
def project_delete(request, ID): LOG.info( "************* start to create a new role in keystone ***************") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("************* rc is ***************" + str(rc)) try: role = keystone.tenant_delete(rc, ID) LOG.info("*** create success ***") except: return False return True
def list(self, request): datacenter = DataCenter.get_default() LOG.info("****** signup get method ********") rc = create_rc_by_dc(datacenter) LOG.info("****** signup get method ********") tenants = keystone.keystoneclient(rc).tenants.list() tenants_id = [] for tenant in tenants: if str(tenant.name) not in ["admin", "demo", "services"]: tenants_id.append({'name': tenant.name, 'id': tenant.id}) LOG.info("********* tenants_id is **************" + str(tenants_id)) return Response(tenants_id)
def list(self, request): try: udc_id = request.session["UDC_ID"] if request.user.is_superuser: serializer = InstanceSerializer(queryset, many=True) return Response(serializer.data) system = False security = False audit = False member = False UDC = UserDataCenter.objects.get(pk=udc_id) LOG.info(UDC) LOG.info("4") keystone_user_id = UDC.keystone_user_id LOG.info("4") tenant_uuid = UDC.tenant_uuid LOG.info("4") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("4") user_roles = keystone.roles_for_user(rc, keystone_user_id, tenant_uuid) LOG.info("4") for user_role in user_roles: LOG.info("5") LOG.info(user_role.name) if user_role.name == "system": LOG.info("5") system = True break if user_role.name == "security": security = True break if user_role.name == "audit": audit = True break if not system and not security and not audit: member = True if request.user.is_superuser or system: serializer = InstanceSerializer(queryset, many=True) return Response(serializer.data) UDC = UserDataCenter.objects.all().filter(user=request.user)[0] project_id = UDC.tenant_uuid queryset = self.get_queryset().filter( Q(user=request.user, user_data_center__pk=udc_id) | Q(tenant_uuid=project_id) | Q(assigneduser=request.user)) serializer = InstanceSerializer(queryset, many=True) return Response(serializer.data) except Exception as e: LOG.exception(e) return Response()
def update_user(request): LOG.info("******* data is ******" + str(request.data)) LOG.info("****** username is ******" + str(request.data['username'])) posted_username = request.data['username'] email = request.data['email'] mobile = request.data['mobile'] user_id = request.data['id'] user = User.objects.all().get(id = request.data['id']) userprofile = UserProfile.objects.all().get(user = user) LOG.info(user_id) if User.objects.filter(username = posted_username).exists(): if User.objects.get(username = posted_username).id != int(user_id): return Response({"success": False, "msg": _("Duplicated user name.Please enter another user name.")}) if User.objects.filter(email = email).exists(): if User.objects.get(email = email).id != int(user_id): return Response({"success": False, "msg": _("Duplicated email.Please enter another email address.")}) if UserProfile.objects.filter(mobile = mobile).exists(): if UserProfile.objects.get(mobile = mobile).user != user: return Response({"success": False, "msg": _("Duplicated mobile.Please enter another mobile.")}) if str(posted_username) in ['neutron', 'cinder', 'keystone', 'nova', 'glance', 'heat', 'swift', 'admin', 'ceilometer']: return Response({"success": False, "msg": _("Service user must not be created.")}) LOG.info("uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu") LOG.info("uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu") LOG.info("uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu") try: user_data_center = UserDataCenter.objects.all().get(user = user) keystone_user_id = user_data_center.keystone_user_id rc = create_rc_by_dc(DataCenter.get_default()) keystone_user = keystone.user_get(rc, keystone_user_id) LOG.info(keystone_user) manager = keystone.keystoneclient(rc, admin=True).users update_user = manager.update(keystone_user, name = posted_username, email = email) #keystone.user_update(rc, keystone_user, name = posted_username, email = email) keystone_user = keystone.user_get(rc, keystone_user_id) LOG.info(keystone_user) except Exception as e: traceback.print_exc() return Response({"success":False, "msg":str(e)}) try: user.username = posted_username user.email = email userprofile.mobile = mobile user.save() userprofile.save() except: traceback.print_exc() return Response({"success":True})
def keystone_list_users(request): LOG.info( "************* start to create a new role in keystone ***************") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("************* rc is ***************" + str(rc)) users = None try: users = keystone.user_list(rc) LOG.info("*** users are ***" + str(users)) except: return False return users
def list_view(request): udc_id = request.session["UDC_ID"] system = False security = False audit = False member = False UDC = UserDataCenter.objects.get(pk=udc_id) LOG.info(UDC) LOG.info("4") keystone_user_id = UDC.keystone_user_id LOG.info("4") tenant_uuid = UDC.tenant_uuid LOG.info("4") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("4") LOG.info(str(keystone_user_id)) LOG.info(str(tenant_uuid)) user_roles = keystone.roles_for_user(rc, keystone_user_id, tenant_uuid) LOG.info("4") for user_role in user_roles: LOG.info("5") LOG.info(user_role.name) if user_role.name == "system": LOG.info("5") system = True break if user_role.name == "security": security = True break if user_role.name == "audit": audit = True break if not system and not security and not audit: member = True """ if system: floatings = Floating.objects.filter(deleted=False) serializer = FloatingSerializer(floatings, many=True) return Response(serializer.data) """ floatings = Floating.objects.filter(deleted=False) serializer = FloatingSerializer(floatings, many=True) return Response(serializer.data) floatings = Floating.objects.filter( user=request.user, user_data_center=request.session["UDC_ID"], deleted=False) serializer = FloatingSerializer(floatings, many=True) return Response(serializer.data)
def delete_keystone_user(tenant_id, username): datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) users = keystone.user_list(rc, project=tenant_id) LOG.info("******* users are ******" + str(users)) user_id = None for u in users: if u.username == username: user_id = u.id try: keystone.user_delete(rc, user_id) except: pass return True
def get(self, request): LOG.info("****** signup get method ********") datacenter = DataCenter.get_default() LOG.info("****** signup get method ********") rc = create_rc_by_dc(datacenter) LOG.info("****** signup get method ********") tenants = keystone.keystoneclient(rc).tenants.list() tenants_id = {} for tenant in tenants: if str(tenant.name) not in ["admin", "demo", "services"]: tenants_id[tenant.id] = tenant.name LOG.info("********* tenants_id is **************" + str(tenants_id)) return self.response(request, CloudUserCreateForm( initial={'username': '', 'email': '', 'mobile': ''}), tenants_id)
def list(self, reqeust): datacenter = DataCenter.get_default() LOG.info("ccc") rc = create_rc_by_dc(datacenter) LOG.info("ccc") tenants = keystone.keystoneclient(rc).tenants.list() LOG.info("cccccccc") tenants_id = [] for tenant in tenants: if str(tenant.name) not in ["admin", "demo", "services"]: tenants_id.append({'tenant_id': tenant.id, 'tenant_name':tenant.name, 'description': tenant.description}) LOG.info("tenants_id is" + str(tenants_id)) return Response(tenants_id)
def role_delete(request, role_name): LOG.info( "************* start to create a new role in keystone ***************") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("************* rc is ***************" + str(rc)) roles = keystone.role_list(rc) role_id = None for role_ in roles: if role_name == role_.name: role_id = role_.id try: role = keystone.role_delete(rc, role_id) except: return False return True
def role_delete(request, role_name): LOG.info("************* start to create a new role in keystone ***************") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("************* rc is ***************" + str(rc)) roles = keystone.role_list(rc) role_id = None for role_ in roles: if role_name == role_.name: role_id = role_.id try: role = keystone.role_delete(rc, role_id) except: return False return True
def project_create(request, tenant_name, tenant_description): LOG.info( "************* start to create a new role in keystone ***************") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("************* rc is ***************" + str(rc)) tenant_id = None LOG.info("tenant name" + str(tenant_name)) LOG.info("tenant name" + str(tenant_description)) try: project = keystone.tenant_create(rc, tenant_name) LOG.info("*** project is ***" + str(project)) tenant_id = project.id LOG.info(" tenant_id is" + str(tenant_id)) except: return False return tenant_id
def list(self, reqeust): datacenter = DataCenter.get_default() LOG.info("ccc") rc = create_rc_by_dc(datacenter) LOG.info("ccc") tenants = keystone.keystoneclient(rc).tenants.list() LOG.info("cccccccc") tenants_id = [] for tenant in tenants: if str(tenant.name) not in ["admin", "demo", "services"]: tenants_id.append({ 'tenant_id': tenant.id, 'tenant_name': tenant.name, 'description': tenant.description }) LOG.info("tenants_id is" + str(tenants_id)) return Response(tenants_id)
def delete_snapshots(request): LOG.info("request data is ids") ids = request.data.getlist('ids[]') datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) LOG.info(settings.GLANCE_ENDPOINT) url = settings.GLANCE_ENDPOINT try: client = glance.glanceclient(rc, url) for snapshot in Snapshot.objects.filter(pk__in=ids): image_id = snapshot.snapshot_id LOG.info(image_id) try: client.images.delete(image_id) except Exception as e: LOG.info(str(e)) Snapshot.objects.filter(pk__in=ids).delete() LOG.info("dddd") Image.objects.filter(uuid=image_id).delete() LOG.info("dddd") continue return Response( { 'success': False, "msg": _('Snapshots have not been deleted!') }, status=status.HTTP_201_CREATED) LOG.info("dddd") Snapshot.objects.filter(pk__in=ids).delete() LOG.info("dddd") Image.objects.filter(uuid=image_id).delete() LOG.info("dddd") return Response( { 'success': True, "msg": _('Snapshots have been deleted!') }, status=status.HTTP_201_CREATED) except: traceback.print_exc() return Response({ 'success': False, "msg": _('Failed to delete Snapshots!') })
def get(self, request): LOG.info("****** signup get method ********") datacenter = DataCenter.get_default() LOG.info("****** signup get method ********") rc = create_rc_by_dc(datacenter) LOG.info("****** signup get method ********") tenants = keystone.keystoneclient(rc).tenants.list() tenants_id = {} for tenant in tenants: if str(tenant.name) not in ["admin", "demo", "services"]: tenants_id[tenant.id] = tenant.name LOG.info("********* tenants_id is **************" + str(tenants_id)) return self.response( request, CloudUserCreateForm(initial={ 'username': '', 'email': '', 'mobile': '' }), tenants_id)
def is_uuid_unique(request): LOG.info(request.GET['uuid']) rc = create_rc_by_dc(DataCenter.objects.all()[0]) try: uuid = request.GET['uuid'] LOG.info("uuid is" + str(uuid)) client = glance.glanceclient_tm(rc, settings.GLANCE_ENDPOINT, version='2') LOG.info("client is" + str(client)) try: images = client.images.get(str(uuid)) except Exception as e: LOG.info(str(e)) return Response(False) return Response(True) except: return Response(False)
def volume_typelist_view(request): try: udc_id = request.session["UDC_ID"] data_center = DataCenter.objects.get(userdatacenter__pk=udc_id) rc = create_rc_by_dc(data_center) LOG.info("******** rc is ***********" + str(rc)) volume_types = cinder.cinderclient(rc).volume_types.list() volumetypes = [] for vt in volume_types: LOG.info("******** vt is *********" + str(vt)) volumetypes.append({"name": vt.name}) #keystone.role_list(rc) LOG.info(volumetypes) return Response(volumetypes) except Exception as e: LOG.exception("query volume type list error, msg:[%s]", e) return Response(status=status.HTTP_400_BAD_REQUEST)
def volume_typelist_view(request): try: udc_id = request.session["UDC_ID"] data_center = DataCenter.objects.get(userdatacenter__pk=udc_id) rc = create_rc_by_dc(data_center) LOG.info("******** rc is ***********" + str(rc)) volume_types = cinder.cinderclient(rc).volume_types.list() volumetypes = [] for vt in volume_types: LOG.info("******** vt is *********" + str(vt)) volumetypes.append({"name":vt.name}) #keystone.role_list(rc) LOG.info(volumetypes) return Response(volumetypes) except Exception as e: LOG.exception("query volume type list error, msg:[%s]", e) return Response(status=status.HTTP_400_BAD_REQUEST)
def list(self, request): datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) networks = neutron.network_list(rc) data = [] for network in networks: LOG.info("1") admin_state_up = network.admin_state_up LOG.info("1") if admin_state_up: admin_state_up = "启用" data.append({ "id": network.id, "name": network.name, "admin_state_up": admin_state_up, "tenant_id": network.tenant_id }) LOG.info("1") LOG.info(" data is " + str(data)) return Response(data)
def response(self, request, form, tenants_id=None, errors=None): LOG.info("****** signup get method ********") datacenter = DataCenter.get_default() LOG.info("****** signup get method ********") rc = create_rc_by_dc(datacenter) LOG.info("****** signup get method ********") tenants = keystone.keystoneclient(rc).tenants.list() tenants_id = {} for tenant in tenants: if str(tenant.name) not in ["admin", "demo", "services"]: tenants_id[tenant.id] = tenant.name LOG.info("********* tenants_id is **************" + str(tenants_id)) context = { "BRAND": settings.BRAND, "form": form, "errors": errors, "tenants_id": tenants_id } return render(request, 'signup.html', context)
def instance_unassignedusers(request): ins = Instance.objects.all().filter(uuid=request.data['uuid'], deleted=False)[0] users = User.objects.all() member_users = [] for user in users: try: keystone_user_id = UserDataCenter.objects.get( user_id=user.id).keystone_user_id tenant_uuid = UserDataCenter.objects.get( user_id=user.id).tenant_uuid rc = create_rc_by_dc(DataCenter.objects.all()[0]) except: continue try: user_roles = keystone.roles_for_user(rc, keystone_user_id, tenant_uuid) except: continue system = False security = False audit = False for user_role in user_roles: if user_role.name == "system": system = True break if user_role.name == "audit": audit = True break if user_role.name == "security": security = True break if not system and not security and not audit and not user.is_superuser: member_users.append(user) LOG.info(member_users) serializer = UserSerializer(member_users, many=True) return Response(serializer.data)
def create_network(request): #udc_id = request.session['UDC_ID'] #UDC = UserDataCenter.objects.get(pk=udc_id) #tenant_id = UDC.tenant_uuid #rc = create_rc_by_udc(UDC) datacenter = DataCenter.get_default() rc = create_rc_by_dc(datacenter) LOG.info("*********** data is *************" + str(request.data)) network_name = request.data['network_name'] LOG.info(network_name) tenant = request.data['tenant'] LOG.info(tenant) physnet = request.data['physnet'] LOG.info(physnet) seg_id = request.data['seg_id'] LOG.info(seg_id) subnet_name = request.data['subnet_name'] LOG.info(subnet_name) status = request.data['status'] or 'up' LOG.info("**** status is ****" + str(status)) cidr = request.data['cidr'] LOG.info(cidr) ip_version = request.data['ip_version'] or 'ipv4' LOG.info(ip_version) gateway = request.data['gateway'] LOG.info(gateway) enable_gateway = request.data['enable_gateway'] or 'up' LOG.info(enable_gateway) enable_dhcp = request.data['enable_dhcp'] or 'up' LOG.info(enable_dhcp) allocation_polls = request.data['allocation_polls'] LOG.info(allocation_polls) dns_server = request.data['dns_server'] LOG.info(dns_server) host_router = request.data['host_router'] LOG.info(host_router) admin_state_up = status network_type = "vlan" network = _create_network(rc, network_name, admin_state_up, physnet, seg_id, tenant, network_type) LOG.info("**** network is ****" + str(network)) network_id = network.id LOG.info(network_id) network_name = network.name LOG.info(network_name) LOG.info(tenant) try: subnet = _create_subnet(rc, subnet_name, cidr, ip_version, gateway, enable_gateway, enable_dhcp, allocation_polls, dns_server, network_id, network_name, host_router, tenant) except Exception as e: LOG.info(e) LOG.info("*** subnet is ***" + str(subnet)) if not subnet: neutron.network_delete(rc, network.id) return Response({ "OPERATION_STATUS": 0, "MSG": _('Network address exists') }) LOG.info(" start to save network info in db *****") return Response({"OPERATION_STATUS": 1, "MSG": _("Creating network")})
def site_config(request): user = request.user user_ = UserProxy.objects.get(pk=user.pk) current_user = {'username': user.username, 'is_system_user': user_.is_system_user, 'is_safety_user': user_.is_safety_user, 'is_audit_user': user_.is_audit_user} """ if user_.is_system_user: return render(request, 'site_config.js', {'current_user': json.dumps(current_user), 'site_config': json.dumps(settings.SITE_CONFIG)}, content_type='application/javascript') if user_.is_audit_user: return render(request, 'site_config.js', {'current_user': json.dumps(current_user), 'site_config': json.dumps(settings.SITE_CONFIG)}, content_type='application/javascript') if user_.is_safety_user: return render(request, 'site_config.js', {'current_user': json.dumps(current_user), 'site_config': json.dumps(settings.SITE_CONFIG)}, content_type='application/javascript') """ if not user.is_superuser: LOG.info("99999999") # Retrieve user to use some methods of UserProxy user = UserProxy.objects.get(pk=user.pk) if user.has_udc: LOG.info("cccccc") udc_id = request.session["UDC_ID"] LOG.info(udc_id) data_center = DataCenter.objects.get(userdatacenter__pk=udc_id) data_center_name = data_center.name rc = create_rc_by_dc(data_center) sdn_enabled = neutron.is_neutron_enabled(rc) LOG.info("ccc0000") else: data_center_name = u'N/A' sdn_enabled = False current_user['datacenter'] = data_center_name LOG.info("1") current_user['sdn_enabled'] = sdn_enabled LOG.info("2") current_user['has_udc'] = user.has_udc LOG.info("3") current_user['is_approver'] = user.is_approver LOG.info("4") current_user['email'] = user.email LOG.info("4") udc_id = request.session["UDC_ID"] LOG.info("4") system = False security = False audit = False member = False UDC = UserDataCenter.objects.get(pk=udc_id) LOG.info(UDC) LOG.info("4") keystone_user_id = UDC.keystone_user_id LOG.info("4") tenant_uuid = UDC.tenant_uuid LOG.info("4") rc = create_rc_by_dc(DataCenter.objects.all()[0]) LOG.info("4") user_roles = keystone.roles_for_user(rc, keystone_user_id, tenant_uuid) LOG.info("4") for user_role in user_roles: LOG.info("5") LOG.info(user_role.name) if user_role.name == "system": LOG.info("5") system = True break if user_role.name == "security": security = True break if user_role.name == "audit": audit = True break if not system and not security and not audit: member = True current_user['system'] = system current_user['security'] = security current_user['audit'] = audit current_user['member'] = member if user.is_superuser: current_user['system'] = True current_user['security'] = True current_user['audit'] = True LOG.info("*** current_user is ***" + str(current_user)) LOG.info("888888") LOG.info("*** current_user is ***" + str(current_user)) return render(request, 'site_config.js', {'current_user': json.dumps(current_user), 'site_config': json.dumps(settings.SITE_CONFIG)}, content_type='application/javascript')
def summary(request): LOG.info('-------------------- this is for admin UDC -------------------') try: user = User.objects.filter(username=request.user)[0] if user.is_superuser: dc = DataCenter.get_default() rc = create_rc_by_dc(dc) if not UserDataCenter.objects.filter(data_center=dc, user=user).exists(): initcloud_tenant = "initcloud_" + user.username LOG.info(initcloud_tenant) tenant = keystone.tenant_create(rc, name=initcloud_tenant) LOG.info("--------- create tenant for superuser ---------") LOG.info(tenant) users = keystone.user_list(rc) for admin_user in users: if admin_user.name == settings.ADMIN_NAME: keystone_user_id = admin_user.id keystone.user_update_tenant(rc, admin_user, tenant) for role in keystone.role_list(rc): if role.name == 'admin': role_id = role.id keystone.add_tenant_user_role(rc, user=admin_user, role=role_id, project=tenant) #tenants = keystone.keystoneclient(rc).tenants.list() #for tenant in tenants: # if tenant.name == settings.ADMIN_TENANT_NAME: # admin_tenant_id = tenant.id # admin_tenant_name = tenant.name # LOG.info(tenant.name) # LOG.info(tenant.id) admin_UDC = UserDataCenter.objects.create( data_center=dc, user=user, tenant_name=tenant.name, tenant_uuid=tenant.id, keystone_user=settings.ADMIN_NAME, keystone_password=settings.ADMIN_PASS, keystone_user_id=keystone_user_id) Contract.objects.create(user=user, udc=admin_UDC, name=user.username, customer=user.username, start_date=datetime.datetime.now(), end_date=datetime.datetime.now(), deleted=False) #if not Contract.objects.filter(user=user).exists(): #admin_UDC = UserDataCenter.objects.filter(data_center=dc, user=user)[0] #Contract.objects.create(user=user,udc=admin_UDC,name=user.username,customer=user.username,start_date=datetime.datetime.now(),end_date=datetime.datetime.now(),deleted=False) except: traceback.print_exc() return Response({ "user_num": User.objects.filter(is_superuser=False).count(), "instance_num": Instance.objects.filter(deleted=False).count(), "flavor_num": Flavor.objects.count(), "data_center_num": DataCenter.objects.count(), "contract_num": Contract.objects.filter(deleted=False).count(), "image_num": Image.objects.count() })
def link_user_to_dc_task(user, datacenter): LOG.info("New user: Start action [%s]" % user.username) registered_udc = UserDataCenter.objects.filter(user=user, data_center=datacenter) if len(registered_udc) > 0: LOG.info("New user: has registere to datacenter [%s][%s]" % ( user.username, datacenter.name)) return True rc = create_rc_by_dc(datacenter) tenant_name = "%s-%04d" % (settings.OS_NAME_PREFIX, user.id) try: keystone_user = "******" % (settings.OS_NAME_PREFIX, user.id, user.username.split('@')[0]) except: keystone_user = "******" % (settings.OS_NAME_PREFIX, user.id) pwd = "cloud!@#%s" % random.randrange(100000, 999999) t = keystone.tenant_create(rc, name=tenant_name, description=user.username) LOG.info("New user: create tanant [%s][tid:%s]" % (user.username, t.id)) u = keystone.user_create(rc, name=keystone_user, email=user.email, password=pwd, project=t.id) LOG.info("New user: create user [%s][uid:%s]" % (user.username, u.id)) roles = keystone.role_list(rc) admin_role = filter(lambda r: r.name.lower() == "admin", roles)[0] keystone.add_tenant_user_role(rc, project=t.id, user=u.id, role=admin_role.id) LOG.info( "New user: add role [%s][role:%s]" % (user.username, admin_role.id)) udc = UserDataCenter.objects.create( data_center=datacenter, user=user, tenant_name=tenant_name, tenant_uuid=t.id, keystone_user=keystone_user, keystone_password=pwd, ) LOG.info( "New user: link to datacenter [%s][udc:%s]" % (user.username, udc.id)) try: edit_default_security_group(user, udc) except Exception as ex: LOG.exception(ex) try: Contract.objects.create( user=user, udc=udc, name=user.username, customer=user.username, start_date=datetime.datetime.now(), end_date=datetime.datetime.now(), deleted=False ) except Exception as ex: LOG.exception(ex) return u
def link_user_to_dc_task(user, datacenter): if UserDataCenter.objects.filter( user=user, data_center=datacenter).exists(): LOG.info("User[%s] has already registered to data center [%s]", user.username, datacenter.name) return True rc = create_rc_by_dc(datacenter) tenant_name = "%s-%04d" % (settings.OS_NAME_PREFIX, user.id) keystone_user = "******" % (settings.OS_NAME_PREFIX, user.id, user.username) LOG.info("Begin to register user [%s] in data center [%s]", user.username, datacenter.name) t = keystone.tenant_create(rc, name=tenant_name, description=user.username) LOG.info("User[%s] is registered as tenant[id:%s][name:%s] in " "data center [%s]", user.username, t.id, tenant_name, datacenter.name) pwd = "cloud!@#%s" % random.randrange(100000, 999999) u = keystone.user_create(rc, name=keystone_user, email=user.email, password=pwd, project=t.id) LOG.info("User[%s] is registered as keystone user[uid:%s] in " "data center[%s]", user.username, u.id, datacenter.name) roles = keystone.role_list(rc) admin_role = filter(lambda r: r.name.lower() == "admin", roles)[0] keystone.add_tenant_user_role(rc, project=t.id, user=u.id, role=admin_role.id) LOG.info("Admin role[%s] in tenant[%s] is granted to user[%s]", admin_role.id, t.id, user.username) udc = UserDataCenter.objects.create( data_center=datacenter, user=user, tenant_name=tenant_name, tenant_uuid=t.id, keystone_user=keystone_user, keystone_password=pwd, ) LOG.info("Register user[%s] to datacenter [udc:%s] successfully", user.username, udc.id) try: edit_default_security_group(user, udc) except: LOG.exception("Failed to edit default security group for user[%s] in " "data center[%s]", user.username, datacenter.name) Contract.objects.create( user=user, udc=udc, name=user.username, customer=user.username, start_date=datetime.datetime.now(), end_date=datetime.datetime.now(), deleted=False ) return u
def link_user_to_dc_task(user, datacenter, tenant_id, password): LOG.info("---------start to execute link_user_to_dc_task-----------") LOG.info("----------username is-------------" + str(user.username)) if UserDataCenter.objects.filter( user=user, data_center=datacenter).exists(): LOG.info("User[%s] has already registered to data center [%s]", user.username, datacenter.name) return True LOG.info("-----------datacenter is-----------------" + str(datacenter)) #create rc for auth. rc = create_rc_by_dc(datacenter) LOG.info("---------------rc is------------" + str(rc)) #Now we do not let user to create a new tenant. """ tenant_name = "%s-%04d" % (settings.OS_NAME_PREFIX, user.id) keystone_user = "******" % (settings.OS_NAME_PREFIX, user.id, user.username) LOG.info("Begin to register user [%s] in data center [%s]", user.username, datacenter.name) t = keystone.tenant_create(rc, name=tenant_name, description=user.username) LOG.info("User[%s] is registered as tenant[id:%s][name:%s] in " "data center [%s]", user.username, t.id, tenant_name, datacenter.name) """ tenant_ = keystone.tenant_get(rc, tenant_id) tenant_name = tenant_.name LOG.info("************ tenant_name is ************" + str(tenant_name)) #keystone_user = "******" % (settings.OS_NAME_PREFIX, user.id, # user.username) keystone_user = user.username #pwd = "cloud!@#%s" % random.randrange(100000, 999999) pwd = password #hard coded tenant id and name for test. project_id = tenant_id u = keystone.user_create(rc, name=keystone_user, email=user.email, password=pwd, project=project_id) LOG.info("User[%s] is registered as keystone user[uid:%s] in " "data center[%s]", user.username, u.id, datacenter.name) roles = keystone.role_list(rc) LOG.info("------------------roles are----------------" + str(roles)) #member_role = filter(lambda r: r.name.lower() == "_member_", roles)[0] member_role = filter(lambda r: r.name.lower() == "_member_", roles)[0] LOG.info("------------------ member role is ----------------" + str(member_role.id)) LOG.info("------------------ user id is ----------------" + str(u.id)) try: keystone.add_tenant_user_role(rc, project=project_id, user=u.id, role=member_role.id) except: pass udc = UserDataCenter.objects.create( data_center=datacenter, user=user, tenant_name=tenant_name, tenant_uuid=project_id, keystone_user=keystone_user, keystone_password=pwd, ) LOG.info("Register user[%s] to datacenter [udc:%s] successfully", user.username, udc.id) #Add default security group try: edit_default_security_group(user, udc) except: LOG.exception("Failed to edit default security group for user[%s] in " "data center[%s]", user.username, datacenter.name) Contract.objects.create( user=user, udc=udc, name=user.username, customer=user.username, start_date=datetime.datetime.now(), end_date=datetime.datetime.now(), deleted=False ) return u