Пример #1
0
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
Пример #2
0
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
Пример #3
0
def tenant_create():
    t = keystone.tenant_create(None, name="zhangh-test")
    print t
    return t
Пример #4
0
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
Пример #5
0
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
Пример #6
0
def link_user_to_dc_task(user, datacenter):

    LOG.info("start to execute link_user_to_dc_task")

    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("2")
    rc = create_rc_by_dc(datacenter)
    LOG.info("1")
    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
Пример #7
0
def tenant_create():
    t = keystone.tenant_create(None, name="zhangh-test")
    print t
    return t