示例#1
0
async def on_reaction_remove(reaction, user):

    server = client.get_server(data.get_server_id())
    member = server.get_member(user.id)
    owner = reaction.message.author.id

    if owner != bot_id or user.id == bot_id:
        return

    if reaction.emoji == "🥇":
        role = discord.utils.find(lambda r: r.name == "Veterano", server.roles)

    elif reaction.emoji == "🥈":
        role = discord.utils.find(lambda r: r.name == "Calouro B",
                                  server.roles)

    elif reaction.emoji == "🥉":
        role = discord.utils.find(lambda r: r.name == "Calouro Burro",
                                  server.roles)

    elif reaction.emoji == "🎓":
        role = discord.utils.find(lambda r: r.name == "UnB", server.roles)

    elif reaction.emoji == "🤷":
        role = discord.utils.find(lambda r: r.name == "Disney", server.roles)

    else:
        return

    await client.remove_roles(member, role)
示例#2
0
def rebuild_dhcp_config():
    config = data.get_config()
    ips = data.get_ipaddress_allocated_all()
    ipranges = data.get_all_iprange()
    create_log("Rebuilding DHCPD configuration to unassign IP.", 1)
    with open(config['dhcp_configuration'], "w") as config:
        config.write("option domain-name-servers 8.8.8.8, 8.8.4.4;\n\n")
        for range in ipranges:
            line = "subnet %s netmask %s {\n range %s %s;\n option routers %s;\n}\n" % (str(range['subnet']), str(range['netmask']), str(range['startip']), str(range['endip']), str(range['gateway']))
            config.write(line)
        for ip in ips:
            vm = data.get_server_id(ip['server_id'])
            config.write("host vm%s {\n hardware ethernet %s;\n fixed-address %s;\n}\n" % (str(vm[0]['_id']), str(vm[0]['mac_address']), str(ip['ip'])))
        config.close()
    restart_dhcpd()    
示例#3
0
def resize_disk(vmid, size):
    try:
        server = data.get_server_id(vmid)
        data.set_server_blocked(vmid, 1)

        resize_event_id = resize_event(str(server[0]['_id']))

        make_temp_disk(size)

        log1 = "Created temporary disk temp.img of size %sGB" % str(size)
        create_log(log1, 1)

        if int(server[0]['disk_size']) < int(size):
            log2 = "Starting resize process for vm%s to size %sGB" % (
                str(server[0]['_id']), str(size))
            create_log(log2, 1)

            try:
                do_resize(server, 1)
            except Exception as e:
                log3 = "Resize process failed for vm%s: %s" % (
                    str(server[0]['_id']), str(e.args))
                create_log(log3, 3)

            log4 = "Resize process for vm%s completed." % (
                str(server[0]['_id']))
            create_log(log4, 1)
        else:
            log5 = "Couldn't resize vm%s, chosen size is smaller than current size." % str(
                server[0]['_id'])
            create_log(log5, 3)
            return 0
        do_rename(server)
        data.set_server_disksize(vmid, size)
        data.set_event_status(resize_event_id, 1)
        data.set_server_blocked(vmid, 0)
        data.set_event_complete(resize_event_id, str(datetime.datetime.now()))
        return 1
    except Exception as e:
        log6 = "Resize process failed for vm%s: %s" % (
            str(server[0]['_id']), str(e.args))
        create_log(log6, 3)
        data.set_server_blocked(vmid, 0)
        data.set_event_status(resize_event_id, 99)
        data.set_event_complete(resize_event_id, str(datetime.datetime.now()))
示例#4
0
def resize_disk(vmid, size):
    try:
        server = data.get_server_id(vmid)
        data.set_server_blocked(vmid, 1)

        resize_event_id = resize_event(str(server[0]['_id']))

        make_temp_disk(size)

        log1 = "Created temporary disk temp.img of size %sGB" % str(size)
        create_log(log1, 1)

        if int(server[0]['disk_size']) < int(size):
            log2 = "Starting resize process for vm%s to size %sGB" % (str(
                server[0]['_id']), str(size))
            create_log(log2, 1)

            try:
                do_resize(server, 1)
            except Exception as e:
                log3 = "Resize process failed for vm%s: %s" % (str(
                    server[0]['_id']), str(e.args))
                create_log(log3, 3)

            log4 = "Resize process for vm%s completed." % (str(
                server[0]['_id']))
            create_log(log4, 1)
        else:
            log5 = "Couldn't resize vm%s, chosen size is smaller than current size." % str(
                server[0]['_id'])
            create_log(log5, 3)
            return 0
        do_rename(server)
        data.set_server_disksize(vmid, size)
        data.set_event_status(resize_event_id, 1)
        data.set_server_blocked(vmid, 0)
        data.set_event_complete(resize_event_id, str(datetime.datetime.now()))
        return 1
    except Exception as e:
        log6 = "Resize process failed for vm%s: %s" % (str(
            server[0]['_id']), str(e.args))
        create_log(log6, 3)
        data.set_server_blocked(vmid, 0)
        data.set_event_status(resize_event_id, 99)
        data.set_event_complete(resize_event_id, str(datetime.datetime.now()))
示例#5
0
async def on_reaction_add(reaction, user):

    server = client.get_server(data.get_server_id())
    member = server.get_member(user.id)
    bot_member = server.get_member(bot_id)
    owner = reaction.message.author.id
    message = reaction.message

    if owner != bot_id or user.id == bot_id:
        return

    if reaction.emoji == "💻":

        await client.delete_message(message)

        private_computer_science_message = discord.Embed(
            title=
            "Seja muito bem vindo novamente ao server da UnB dos Brothers\n\n- Dê uma olhada no canal de texto #boas-vindas\n\n- Nos ajude a te identificar, em qual semestre você está ? (Sem mentir, não prejudique o servidor)",
            color=COR,
            description="\n- 3 º Semestre ou mais = 🥇\n"
            "- 2 º Semestre =  🥈 \n"
            "- 1 º Semestre = 🥉 \n"
            "- Voltar = ⬅",
        )

        botmsg = await client.send_message(
            member, embed=private_computer_science_message)

        await client.add_reaction(botmsg, "🥇")
        await client.add_reaction(botmsg, "🥈")
        await client.add_reaction(botmsg, "🥉")
        await client.add_reaction(botmsg, "⬅")

        return

    elif reaction.emoji == "🥇":
        role = discord.utils.find(lambda r: r.name == "Veterano", server.roles)

    elif reaction.emoji == "🥈":
        role = discord.utils.find(lambda r: r.name == "Calouro B",
                                  server.roles)

    elif reaction.emoji == "🥉":
        role = discord.utils.find(lambda r: r.name == "Calouro Burro",
                                  server.roles)

    elif reaction.emoji == "⬅":
        await client.delete_message(message)
        await direct_welcome_message(member)
        return

    elif reaction.emoji == "🎓":
        role = discord.utils.find(lambda r: r.name == "UnB", server.roles)

    elif reaction.emoji == "🤷":
        role = discord.utils.find(lambda r: r.name == "Disney", server.roles)

    else:
        return

    await client.add_roles(member, role)