Example #1
0
def create_ssh_user(trade):
    '''创建新的SSH帐号.

    先把创建的SSH用户保存到 UserProduct数据库,再在所有服务器上创建该SSH用户'''
    # 待创建的ssh用户list, 每个元素是tuple(username,pwd,expire)
    ssh_info_list = []
    for item in trade.cart.item_set.all():
        # 创建 N 个SSH帐号
        for i in range(item.quantity):
            up = UserProduct()
            #save一次以获得自增的id值
            up.save()
            ssh_user = "******" % up.id
            ssh_pwd = baseutil.time_hash()[-6:]
            expired_date = baseutil.get_expired_date(item.product.valid_months)
            ssh_info_list.append((ssh_user, ssh_pwd, expired_date))

            #保存到 UserProduct
            up.user = trade.user
            up.product = item.product
            up.sshuser = ssh_user
            up.sshpwd = ssh_pwd
            up.buy_date = datetime.datetime.now()
            up.expired_date = expired_date
            # 2013-03-02 post_save signal将触发创建账号
            up.save()
    #在所有服务器上创建该SSH帐号
    #baseutil.well_print("before create ssh user")
    ssh_util = SSHUtil(trade.user, None, None)
    ssh_util.ssh_create_onall(ssh_info_list)
Example #2
0
def create_ssh_user(trade):
    '''创建新的SSH帐号.

    先把创建的SSH用户保存到 UserProduct数据库,再在所有服务器上创建该SSH用户'''
    # 待创建的ssh用户list, 每个元素是tuple(username,pwd,expire)
    ssh_info_list = []
    for item in trade.cart.item_set.all():
        # 创建 N 个SSH帐号
        for i in range(item.quantity):
            up = UserProduct()
            #save一次以获得自增的id值
            up.save()
            ssh_user = "******" % up.id
            ssh_pwd = baseutil.time_hash()[-6:]
            expired_date = baseutil.get_expired_date(item.product.valid_months)
            ssh_info_list.append((ssh_user, ssh_pwd, expired_date))

            #保存到 UserProduct
            up.user = trade.user
            up.product = item.product
            up.sshuser = ssh_user
            up.sshpwd = ssh_pwd
            up.buy_date = datetime.datetime.now()
            up.expired_date = expired_date
            # 2013-03-02 post_save signal将触发创建账号
            up.save()
    #在所有服务器上创建该SSH帐号
    #baseutil.well_print("before create ssh user")
    ssh_util = SSHUtil(trade.user, None, None)
    ssh_util.ssh_create_onall(ssh_info_list)
Example #3
0
def userproduct_post_delete(sender, instance, **kwargs):
    """delete ssh user at all ssh-server ,
       when delete ssh user at admin site.
    """
    sshuser = instance.sshuser
    #create ssh on all ssh server
    ssh_util = SSHUtil(instance.user)
    ssh_util.ssh_delete_onall(sshuser)
    # sleep for the situation delete more than 1 account at one time
    sleep(2)
Example #4
0
def userproduct_post_save(sender, instance, created, **kwargs):
    """create ssh user at every ssh server ,
       when add ssh user or change ssh user.
    """
    sshuser = instance.sshuser
    sshpwd = instance.sshpwd
    expired_date = instance.expired_date

    if created:  # new created
        if sshuser and sshpwd and expired_date:  # not up.save() for getting UserProduct id
            # create new ssh on all ssh servers
            ssh_util = SSHUtil(instance.user)
            ssh_info_list = [(sshuser, sshpwd, expired_date)]
            ssh_util.ssh_create_onall(ssh_info_list)
    else:  # not created
        #change ssh password on all ssh servers
        ssh_util = SSHUtil(instance.user)
        if sshuser and sshpwd:  # change password
            ssh_util.ssh_change_pwd_onall(sshuser, sshpwd)
        if expired_date:  # change expired date
            ssh_util.ssh_change_expire_onall(sshuser, expired_date)