Exemple #1
0
    async def repost_messages(self):
        self.servers = Servers()
        self.server_list = self.servers.get()
        repost_count = 0
        # remove old discord embed
        channels = [server["channel"] for server in self.server_list]
        channels = list(set(channels))  # remove duplicated channels
        for channel in channels:
            try:
                await client.get_channel(channel).purge(
                    check=lambda m: m.author == client.user)
            except Exception as e:
                self.print_to_console(
                    f'ERROR: Unable to delete bot messages.\n{e}')
            finally:
                await asyncio.sleep(SEND_DELAY)

        # send new discord embed
        for server in self.server_list:
            try:
                message = await client.get_channel(
                    server["channel"]).send(embed=self.get_embed(server))
                server["message_id"] = message.id
                repost_count += 1
            except Exception as e:
                self.message_error_count += 1
                self.print_to_console(
                    f'ERROR: Failed to send message for server: {self.get_server_info(server)}. Missing permissions ?\n{e}'
                )
            finally:
                self.servers.update_server_file(self.server_list)
                await asyncio.sleep(SEND_DELAY)
        self.print_to_console(f'{repost_count} messages reposted.')
Exemple #2
0
def test1():
    n = Network("../Networks/isno_5_2")
    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)
    s = Servers(t, n, "../DataComposite/isno_5_2-costs.txt")
    u = Users(n, "../DataComposite/isno_5_2-users.txt",
              "../DataComposite/isno_5_2-user_topo.txt")

    cs = CompositeServices(n,
                           t,
                           s,
                           u,
                           opt_cong=False,
                           congestion_cost=True,
                           cong_of="fortz")

    hcs = CompositeHeuristic(cs)

    order = list(range(len(cs.users)))

    sol = hcs.heuristic(order)

    print(sol)

    of = cs.of_normalized_penalty(sol, True)
    print("Objective function:", of)
Exemple #3
0
def test_germany():
    network_file = "../Networks/germany50.txt"
    n = Network(network_file, "sndlib")

    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    servers_file = "../DataComposite/germany50-cost.txt"
    s = Servers(t, n, servers_file)

    users_dem_file = "../DataComposite/germany50-users.txt"
    users_top_file = "../DataComposite/germany50-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n, t, s, u, opt_cong=True, congestion_cost=True)

    print("Starting EA:")
    ea = EACompositeServices(cs)

    #bestsol = ea.run_evol_alg()
    bestsol = ea.run_evol_alg(True, max_cpus=50)

    of = cs.of_normalized_penalty(bestsol, True)
    print("Objective function:", of)
Exemple #4
0
def test_tree():
    network_file = "../Networks/test_tree"
    n = Network(network_file)

    filename_tree = "../DataComposite/tree_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    servers_file = "../DataComposite/test_tree-cost.txt"
    s = Servers(t, n, servers_file)

    users_dem_file = "../DataComposite/test_tree-users.txt"
    users_top_file = "../DataComposite/test_tree-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n, t, s, u, opt_cong=True, congestion_cost=True)

    print(cs)

    print("Starting EA:")
    ea = EACompositeServices(cs)
    ea_par = {"max_evaluations": 5000}
    bestsol = ea.run_evol_alg(ea_pars=ea_par)
    #bestsol = ea.run_evol_alg(True, max_cpus = 50)

    of = cs.of_normalized_penalty(bestsol, True)
    print("Objective function:", of)
Exemple #5
0
def test_sp():
    network_file = "../Networks/isno_30_4"
    #network_file = "../Networks/isno_5_2"
    n = Network(network_file)

    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    #servers_file = "../DataComposite/test-cost.txt"
    servers_file = "../DataComposite/isno_30_4-t2-costs.txt"
    s = Servers(t, n, servers_file)

    #users_dem_file = "../DataComposite/test-users.txt"
    #users_top_file = "../DataComposite/test-user_topo.txt"
    users_dem_file = "../DataComposite/isno_30_4-t2-users.txt"
    users_top_file = "../DataComposite/isno_30_4-t2-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n,
                           t,
                           s,
                           u,
                           opt_cong=True,
                           congestion_cost=True,
                           cong_opt_method="sp",
                           cong_of="fortz")

    print("Starting EA:")
    ea = EACompositeServices(cs, optimize_routing_weights=True)

    ea_par = {"max_evaluations": 50000}
    #bestsol = ea.run_evol_alg(ea_pars = ea_par)

    ea.run_evol_alg(True, max_cpus=4, ea_pars=ea_par)
Exemple #6
0
def test_mo():
    network_file = "../Networks/geant.txt"
    n = Network(network_file, "sndlib")

    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    servers_file = "../DataComposite/geant-t2-costs.txt"
    s = Servers(t, n, servers_file)

    users_dem_file = "../DataComposite/geant-t2-users.txt"
    users_top_file = "../DataComposite/geant-t2-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n,
                           t,
                           s,
                           u,
                           opt_cong=True,
                           congestion_cost=True,
                           cong_of="fortz")

    ea_par = {"max_evaluations": 10000}
    ea = EACompositeServices(cs)
    #ea = EACompositeServices(cs,optimize_routing_weights = True)

    ea.run_mo(ea_pars=ea_par, plot=True)
Exemple #7
0
def test_germany():
    network_file = "../Networks/germany50.txt"
    n = Network(network_file, "sndlib")

    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    servers_file = "../DataComposite/germany50-cost.txt"
    s = Servers(t, n, servers_file)

    users_dem_file = "../DataComposite/germany50-users.txt"
    users_top_file = "../DataComposite/germany50-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n, t, s, u, opt_cong=False, congestion_cost=False)

    hcs = CompositeHeuristic(cs)

    order = list(range(len(cs.users)))

    sol = hcs.heuristic(order)
    print(sol)

    of = cs.of_normalized_penalty(sol, True)
    print("Objective function:", of)
Exemple #8
0
    def __init__(self, bot):
        print('\n----------------')
        print('Github: \thttps://github.com/DiscordGSM/DiscordGSM')
        print('Discord:\thttps://discord.gg/Cg4Au9T')
        print('----------------\n')

        self.bot = bot
        self.servers = Servers()
        self.server_list = self.servers.get()
        self.messages = []
        self.message_error_count = self.current_display_server = 0
Exemple #9
0
def test2():
    n = Network("../Networks/isno_5_2")
    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)
    s = Servers(t, n, "../DataComposite/test-cost.txt")
    u = Users(n, "../DataComposite/test-users.txt",
              "../DataComposite/test-user_topo.txt")

    cs = CompositeServices(n, t, s, u, opt_cong=True, congestion_cost=True)
    print(cs)
Exemple #10
0
 def loadConfig(self, config):
     self.DNSS = config.DNSS
     self.servers = Servers()
     for s in self.DNSS:
         assert len(s) == 3
         ip, port, type_of_server = s
         self.servers.addDNSServer(DNSServer(ip, port, type_of_server, self.VERBOSE))
     self.WHITE_DNSS = config.WHITE_DNSS
     for ws in self.WHITE_DNSS:
         assert len(ws) == 4
         ip, port, type_of_server, white_list = ws
         self.servers.addWhiteDNSServer(DNSServer(ip, port, type_of_server, self.VERBOSE, white_list))
Exemple #11
0
    async def refresh_discord_embed(self):
        # refresh servers.json cache
        self.servers = Servers()
        self.server_list = self.servers.get()

        # remove old discord embed
        channels = [server['channel'] for server in self.server_list]
        channels = list(set(channels)) # remove duplicated channels
        for channel in channels:
            await bot.get_channel(channel).purge(check=lambda m: m.author==bot.user)
        
        # send new discord embed
        self.messages = [await bot.get_channel(s['channel']).send(content=('frontMessage' in s and s['frontMessage'].strip()) and s['frontMessage'] or None, embed=self.get_embed(s)) for s in self.server_list]
Exemple #12
0
    def __init__(self, apikey=None, timeout=None, verbose=False):
        headers = {}
        if apikey:
            headers['apikey'] = apikey

        _api = API(timeout=timeout, verbose=verbose)

        def api(method, uri, attrs={}):
            return _api.request(method, self.API_URL + uri, attrs, headers)

        self.appliances = Appliances(api)
        self.servers = Servers(api)
        self.backups = Backups(api)
Exemple #13
0
def test_tree_syn_structure():
    filename_tree = "../DataComposite/tree_syn_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)
    n = Network("../Networks/geant.txt", "sndlib")
    u = Users(n)
    u.generate_users(len(t), target_alu=0.25, target_delay=0.8)
    u.write_demands("../DataComposite/geant-treesyn-alu25-del08-users.txt")
    u.write_user_topo(
        "../DataComposite/geant-treesyn-alu25-del08-user_topo.txt")
    s = Servers(t, n)
    s.generate_servers()
    s.write_servers("../DataComposite/geant-treesyn-alu25-del08-costs.txt")
Exemple #14
0
    def setup_session(self):
        """Creates instances

        This method is called when the game is first started.
        It will create instances for players, map generators
        and servers.

        15 servers instances will be created
        """
        self.player_1 = Hacker()
        self.player_2 = Hacker()
        self.servers = []
        for srv in range(15):
            self.servers.append(Servers(srv))
        self.wmap = Worldmap(self.servers)
Exemple #15
0
def test3():
    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)
    #n = Network("../Networks/isno_30_4")
    n = Network("../Networks/isno_5_2")
    u = Users(n)
    u.generate_users(len(t), target_alu=0.25, target_delay=0.8)
    u.write_demands("../DataComposite/isno_5_2-t2-users.txt")
    u.write_user_topo("../DataComposite/isno_5_2-t2-user_topo.txt")
    #u.write_demands("../DataComposite/isno_30_4-t1-users.txt")
    #u.write_user_topo("../DataComposite/isno_30_4-t1-user_topo.txt")
    s = Servers(t, n)
    s.generate_servers()
    s.write_servers("../DataComposite/isno_5_2-t2-costs.txt")
Exemple #16
0
def test5():
    filename_tree = "../DataComposite/tree_syn_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)
    n = Network("../Networks/geant.txt", "sndlib")

    s = Servers(t, n, "../DataComposite/geant-tree-syn-costs.txt")
    u = Users(n, "../DataComposite/geant-tree-syn-users.txt",
              "../DataComposite/geant-tree-syn-user_topo.txt")

    cs = CompositeServices(n, t, s, u, opt_cong=False, congestion_cost=False)

    #print(cs)

    print(cs.min_cost())
    print(cs.minimum_first_hop())
Exemple #17
0
def test1():
    from composite_heuristic import CompositeHeuristic
    n = Network("../Networks/isno_5_2")
    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)
    s = Servers(t, n, "../DataComposite/isno_5_2-costs.txt")
    u = Users(n, "../DataComposite/isno_5_2-users-v2.txt",
              "../DataComposite/isno_5_2-user_topo.txt")

    cs = CompositeServices(n, t, s, u, opt_cong=True, congestion_cost=True)
    #print(cs)

    hcs = CompositeHeuristic(cs)
    order = list(range(len(cs.users)))
    sol = hcs.heuristic(order)
    cs.of_normalized_penalty(sol, printcomps=True)
Exemple #18
0
    def run(self):
        """ Begin the simulation and record the system variables during execution. """
        # Initialise the beginning parameters of the simulation
        servers = Servers(self.total_servers)
        self.event_handler = M1M2EventHandler()
        self.event_handler.start()

        # Begin iteration of events, record arrivals for checking
        self.count_arrival = 0
        self.arrival = {"handover": 0, "new": 0}
        while self.count_arrival < self.total_arrival:
            # Collect next event from the event handler
            current_event = self.event_handler.next()
            # Update simulation time
            self.sim_time = current_event.time()

            if current_event.type == "arrival":
                # Arrival event received
                priority = current_event.path
                self.count_arrival += 1
                self.arrival[priority] += 1

                # Create new arrival event
                self.event_handler.add(
                    M1M2Event(priority, "arrival", current_event.time()))

                # Check server available
                if (len(servers) > self.threshold) or \
                        (priority == "handover" and servers.is_free()):
                    # Begin serving the client.
                    current_event.served_by(servers.allocate())

                    # All event handler to manage departure
                    self.event_handler.add(current_event)
                    continue

                # No servers were available therefore the event is blocked
                self.event_handler.block(
                    current_event)  # Arriving client has been blocked

            else:
                # Departure event received
                servers.deallocate(
                    current_event.served_by())  # Free the server
                self.event_handler.depart(
                    current_event)  # Event recorded as departed.
Exemple #19
0
    def run(self):
        """ Begin the simulation of a MMCC system. Process the information until
        termination criteria is meet.
        """

        # Initialise the beginning parameters of the simulation
        servers = Servers(self.total_servers)  # Set up server handler
        self.event_handler = EventHandler()  # Set up the event handler

        start_event = Event("arrival", 0)  # Construct the first event object
        start_event.departure_time -= start_event.arrival_time  # Reset times
        start_event.arrival_time = 0  # Reset times

        self.event_handler.add(start_event)  # Create the first event

        # Begin iteration of events, record arrivals for checking
        self.count_arrival = 0
        while self.count_arrival < self.total_arrival:
            # Collect next event from the event handler
            current_event = self.event_handler.next()
            # Update simulation time
            self.sim_time = current_event.time()

            if current_event.type == "arrival":
                # Create new arrival event
                self.event_handler.add(Event('arrival', current_event.time()))
                # Record number of arrivals
                self.count_arrival += 1

                # Check if any server is available
                if not servers.is_free():
                    self.event_handler.block(current_event)
                    continue

                # Begin serving the client.
                current_event.served_by(servers.allocate())
                # All event handler to manage departure
                self.event_handler.add(current_event)

            else:
                # Departure event received
                servers.deallocate(current_event.served_by())
                self.event_handler.depart(current_event)
Exemple #20
0
    async def refresh_discord_embed(self):
        # refresh servers.json cache
        self.servers = Servers()
        self.server_list = self.servers.get()

        # remove old discord embed
        channels = [server['channel'] for server in self.server_list]
        channels = list(set(channels))  # remove duplicated channels
        for channel in channels:
            await bot.get_channel(channel).purge(
                check=lambda m: m.author == bot.user)

        # send new discord embed
        self.messages = []
        for server in self.server_list:
            if ('frontMessage' in server and server['frontMessage'] != ''):
                self.messages.append(await bot.get_channel(
                    server['channel']).send(server['frontMessage']))
            self.messages.append(await bot.get_channel(
                server['channel']).send(embed=self.get_embed(server)))
Exemple #21
0
def test_geant():
    network_file = "../Networks/geant.txt"
    n = Network(network_file, "sndlib")

    #filename_tree = "../DataComposite/tree_syn_structure.txt"
    filename_tree = "../DataComposite/linear_structure_loops.txt"
    loops = True
    t = ServicesTree(loops, filename_tree)

    #servers_file = "../DataComposite/geant-loops-costs.txt"
    servers_file = "../DataComposite/geant-lin-alu30-del09-costs.txt"

    s = Servers(t, n, servers_file)

    #users_dem_file = "../DataComposite/geant-treeloops-alu25-del07-users.txt"
    users_dem_file = "../DataComposite/geant-lin-alu30-del09-users.txt"
    #users_top_file = "../DataComposite/geant-treeloops-alu25-del07-user_topo.txt"
    users_top_file = "../DataComposite/geant-user_topo.txt"

    u = Users(n, users_dem_file, users_top_file)

    #    cs = CompositeServices(n, t, s, u, opt_cong = True, cong_opt_method = "sp",
    #                           congestion_cost = True, cong_of = "fortz")

    cs = CompositeServices(n,
                           t,
                           s,
                           u,
                           opt_cong=False,
                           congestion_cost=False,
                           cong_of="fortz")

    ea_par = {"max_evaluations": 20000, "pop_size": 100}
    ea = EACompositeServices(cs)
    #ea = EACompositeServices(cs,optimize_routing_weights = True)

    assig = ea.run_evol_alg(ea_pars=ea_par)

    print("Best solution:")
    print(assig)
Exemple #22
0
def test1():
    #etwork_file = "../Networks/isno_30_4"
    network_file = "../Networks/isno_5_2"
    n = Network(network_file)

    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    #servers_file = "../DataComposite/test-cost.txt"
    #servers_file = "../DataComposite/isno_30_4-t1-costs.txt"
    servers_file = "../DataComposite/isno_5_2-t1-costs.txt"
    s = Servers(t, n, servers_file)

    #users_dem_file = "../DataComposite/test-users.txt"
    #users_top_file = "../DataComposite/test-user_topo.txt"
    #users_dem_file = "../DataComposite/isno_30_4-t1-users.txt"
    #users_top_file = "../DataComposite/isno_30_4-t1-user_topo.txt"
    users_dem_file = "../DataComposite/isno_5_2-t2-users.txt"
    users_top_file = "../DataComposite/isno_5_2-t1-user_topo.txt"

    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n,
                           t,
                           s,
                           u,
                           opt_cong=False,
                           congestion_cost=True,
                           cong_of="fortz")

    print("Starting EA:")
    ea_par = {"max_evaluations": 500}
    ea = EACompositeServices(cs)

    assig = ea.run_evol_alg(ea_pars=ea_par)
    #assig = ea.run_evol_alg(True, max_cpus = 50)

    print("Best solution:")
    print(assig)
Exemple #23
0
def test2():
    network_file = "../Networks/isno_30_4"
    #network_file = "../Networks/isno_5_2"
    n = Network(network_file)

    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    #servers_file = "../DataComposite/test-cost.txt"
    servers_file = "../DataComposite/isno_30_4-t1-costs.txt"
    s = Servers(t, n, servers_file)

    #users_dem_file = "../DataComposite/test-users.txt"
    #sers_top_file = "../DataComposite/test-user_topo.txt"
    users_dem_file = "../DataComposite/isno_30_4-t1-users.txt"
    users_top_file = "../DataComposite/isno_30_4-t1-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n,
                           t,
                           s,
                           u,
                           opt_cong=False,
                           congestion_cost=True,
                           cong_of="mlu")

    hcs = CompositeHeuristic(cs)

    order = list(range(len(cs.users)))

    sol = hcs.heuristic(order)
    print(sol)

    of = cs.of_normalized_penalty(sol, True)
    print("Objective function:", of)
Exemple #24
0
def test1():
    #network_file = "../Networks/isno_30_4"
    network_file = "../Networks/geant.txt"
    n = Network(network_file, "sndlib")

    filename_tree = "../DataComposite/linear_structure.txt"
    loops = False
    t = ServicesTree(loops, filename_tree)

    #    servers_file = "../DataComposite/isno_30_4-t1-costs.txt"
    servers_file = "../DataComposite/geant-t3-costs.txt"
    s = Servers(t, n, servers_file)

    users_dem_file = "../DataComposite/geant-t3-users.txt"
    #    users_dem_file = "../DataComposite/isno_30_4-t1-users.txt"
    users_top_file = "../DataComposite/geant-t3-user_topo.txt"
    #    users_top_file = "../DataComposite/isno_30_4-t1-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    cs = CompositeServices(n,
                           t,
                           s,
                           u,
                           opt_cong=True,
                           congestion_cost=True,
                           cong_opt_method="sp",
                           cong_of="fortz")

    print("Starting EA:")
    ea = DeapComposite(cs, optimize_routing_weights=True)

    #ea.run_evol_alg({"num_gens": 100})

    _, _, f = ea.run_mo({"max_evaluations": 10000, "algorithm": "spea"})

    numpy.savetxt("front.csv", f)
Exemple #25
0
class asciiMap():

    neutral = "N"
    hostile = "X"
    hacked = "H"

    # Servers
    server0 = Servers(0, 100, 200, "N")
    server1 = Servers(1, 100, 200, "N")
    server2 = Servers(2, 100, 200, "N")
    server3 = Servers(3, 100, 200, "N")
    server4 = Servers(4, 100, 200, "N")
    server5 = Servers(5, 100, 200, "N")
    server6 = Servers(6, 100, 200, "N")
    server7 = Servers(7, 100, 200, "N")
    server8 = Servers(8, 100, 200, "N")
    server9 = Servers(9, 100, 200, "N")
    server10 = Servers(10, 100, 200, "N")
    server11 = Servers(11, 100, 200, "N")
    server12 = Servers(12, 100, 200, "N")
    server13 = Servers(13, 100, 200, "N")
    server14 = Servers(14, 100, 200, "N")
    server15 = Servers(15, 100, 200, "N")

    #area = "...................." + server0 + "......\n..........." + server1 + "...............\n....." + server2 + ".....................\n...........................\n........." + server3 + ".........." + server4 + "......\n..." + server5 + ".........." + server6 + "............\n......" + server7 + "..........." + server8 + "........\n.........................." + server9 + "\n...........................\n...........................\n.." + server10 + "..........." + server11 + server12 + "...........\n............" + server13 + "........" + server14 + "...." + server15 + "\n"

    def __init__(self, server0, server1, server2, server3, server4, server5,
                 server6, server7, server8, server9, server10, server11,
                 server12, server13, server14, server15):
        self.server0 = server0
        self.server1 = server1
        self.server2 = server2
        self.server3 = server3
        self.server4 = server4
        self.server5 = server5
        self.server6 = server6
        self.server7 = server7
        self.server8 = server8
        self.server9 = server9
        self.server10 = server10
        self.server11 = server11
        self.server12 = server12
        self.server13 = server13
        self.server14 = server14
        self.server15 = server15

    #def get_area(self):
    #return self.area

    def get_status(self):
        return self.server0.state

    def get_map_state(self):
        area = "...................." + self.server0.state + "......\n..........." + self.server1.state + "...............\n....." + self.server2.state + ".....................\n...........................\n........." + self.server3.state + ".........." + self.server4.state + "......\n..." + self.server5.state + ".........." + self.server6.sate + "............\n......" + self.server7.state + "..........." + self.server8.state + "........\n.........................." + self.server9.state + "\n...........................\n...........................\n.." + self.server10.state + "..........." + self.server11.state + self.server12.state + "...........\n............" + self.server13.state + "........" + self.server14.state + "...." + self.server15.state + "\n"
        return area
Exemple #26
0
def run():
    ## FORMAT: type_optimization network_file services_tree instance_file results_file
    ## type_optimization:
    ##      nc - no congestion
    ##      d - congestion costs; shortest path delays
    ##      sp - congestion costs; EA optimizing weights
    ##      oc - congestion costs; MILP optimizaing congestion
    ## lnc, ld, lsp, loc - the same as before but with loops on the service tree

    ## network file - assuming sndlib format
    ## services tree - file with "tree" of services
    ## instance_file - defines "name" of instance
    ## assuming: instance_file + "-users.txt" - users demands
    ## assuming: instance_file + "-user_topo.txt" - users topologies
    ## assuming: instance_file + "-costs.txt" - server costs
    ## results_file: prefix of the files for results
    ## - files will be results_file + "-stats.txt" and results_file+ "-pop.txt"
    ## Options:
    ## -mo - do multiobjective optimization (NSGA 2)
    ## -p numcpus - activates parallel evaluation of OF with numcpus as maximum
    ## -ev maxevals - maximum number of evaluations (default: 10000)
    ## -mr rate - set mutation rate (per element)
    ## -lr rate - local opt rate (per individual)
    ## -r runs - number of runs (1 if not specified)
    ## -w weights - weights for the OF - fh, e2e, cost, congestion (split by ,)

    network_file = sys.argv[2]
    n = Network(network_file, "sndlib")  #, engine = "igraph")

    filename_tree = sys.argv[3]
    if sys.argv[1][0] == "l":
        loops = True
    else:
        loops = False
    t = ServicesTree(loops, filename_tree)

    servers_file = sys.argv[4] + "-costs.txt"
    s = Servers(t, n, servers_file)

    users_dem_file = sys.argv[4] + "-users.txt"
    users_top_file = sys.argv[4] + "-user_topo.txt"
    u = Users(n, users_dem_file, users_top_file)

    optimize_routing_weig = False
    if sys.argv[1] == "nc" or sys.argv[1] == "lnc":
        cs = CompositeServices(n,
                               t,
                               s,
                               u,
                               opt_cong=False,
                               congestion_cost=False,
                               cong_of="fortz")
    elif sys.argv[1] == "d" or sys.argv[1] == "ld":
        cs = CompositeServices(n,
                               t,
                               s,
                               u,
                               opt_cong=False,
                               congestion_cost=True,
                               cong_of="fortz")
    elif sys.argv[1] == "oc" or sys.argv[1] == "loc":
        cs = CompositeServices(n,
                               t,
                               s,
                               u,
                               opt_cong=True,
                               congestion_cost=True,
                               cong_opt_method="milp",
                               cong_of="fortz")
    elif sys.argv[1] == "sp" or sys.argv[1] == "lsp":
        cs = CompositeServices(n,
                               t,
                               s,
                               u,
                               opt_cong=True,
                               congestion_cost=True,
                               cong_opt_method="sp",
                               cong_of="fortz")
        optimize_routing_weig = True

    ## options
    par = False
    maxcpus = 1
    multiobj = False
    numruns = 1
    eapars = {}
    if len(sys.argv) > 6:
        i = 6
        while i < len(sys.argv):
            if sys.argv[i] == "-p":
                par = True
                maxcpus = int(sys.argv[i + 1])
                i += 2
            elif sys.argv[i] == "-mo":
                multiobj = True
                i += 1
            elif sys.argv[i] == "-ev":
                eapars["max_evaluations"] = int(sys.argv[i + 1])
                i += 2
            elif sys.argv[i] == "-mr":
                eapars["mutation_rate"] = float(sys.argv[i + 1])
                i += 2
            elif sys.argv[i] == "-lr":
                eapars["local_opt_rate"] = float(sys.argv[i + 1])
                i += 2
            elif sys.argv[i] == "-r":
                numruns = int(sys.argv[i + 1])
                i += 2
            elif sys.argv[i] == "-w":
                wstr = sys.argv[i + 1]
                tokens = wstr.split(",")
                w = {}
                w["fh"] = float(tokens[0])
                w["e2e"] = float(tokens[1])
                w["cost"] = float(tokens[2])
                if cs.congestion_cost and len(tokens) > 3:
                    w["congestion"] = float(tokens[3])
                cs.set_weights(w)
                print(cs.weights)
                i += 2
            else:
                print("Invalid option")
                sys.exit(1)

    res = {}

    if multiobj:
        res_keys = [
            "type", "network", "tree", "instance", "popsize", "evals",
            "mutation_rate", "local_rate"
        ]
    else:
        res_keys = [
            "type", "network", "tree", "instance", "popsize", "evals",
            "selected", "elites", "mutation_rate", "local_rate", "of_value",
            "of_cost", "of_e2e", "of_fh", "of_cong"
        ]

    for k in res_keys:
        res[k] = []

    network_name = sys.argv[2].split("/").pop()
    tree_name = sys.argv[3].split("/").pop()
    instance_name = sys.argv[4].split("/").pop()

    for r in range(numruns):

        start = timeit.default_timer()

        ea = EACompositeServices(
            cs, optimize_routing_weights=optimize_routing_weig)

        res["type"].append(sys.argv[1])
        res["network"].append(network_name)
        res["tree"].append(tree_name)
        res["instance"].append(instance_name)

        if multiobj:
            file_run = sys.argv[5] + "-run" + str(r)
            res_ea = ea.run_mo(ea_pars=eapars,
                               display=False,
                               save_file=file_run)

            #res["popsize"].append(res_ea["popsize"])
            #res["evals"].append(res_ea["evals"])
            #res["mutation_rate"].append(res_ea["mutation_rate"])
            #res["local_rate"].append(res_ea["local_rate"])

            #res_pd = pd.DataFrame(data = res)
            #res_pd.to_csv(sys.argv[5] + "-results.csv")
        else:
            if sys.argv[5] == 'None':
                _, res_ea = ea.run_evol_alg(parallel=par,
                                            max_cpus=maxcpus,
                                            ea_pars=eapars)
            else:
                file_run = sys.argv[5] + "-run" + str(r)
                _, res_ea = ea.run_evol_alg(parallel=par,
                                            max_cpus=maxcpus,
                                            ea_pars=eapars,
                                            save_file=file_run)

                res["of_value"].append(res_ea["of_value"])
                res["of_fh"].append(res_ea["of_fh"])
                res["of_e2e"].append(res_ea["of_e2e"])
                res["of_cost"].append(res_ea["of_cost"])
                res["of_cong"].append(res_ea["of_cong"])

                res["popsize"].append(res_ea["popsize"])
                res["evals"].append(res_ea["evals"])
                res["selected"].append(res_ea["selected"])
                res["elites"].append(res_ea["elites"])
                res["mutation_rate"].append(res_ea["mutation_rate"])
                res["local_rate"].append(res_ea["local_rate"])

                res_pd = pd.DataFrame(data=res)
                res_pd.to_csv(sys.argv[5] + "-results.csv")

        stop = timeit.default_timer()
        print('Time EA: ', stop - start)
Exemple #27
0
from servers import Servers

script = r"""
defs="/etc/login.defs"
min=$(grep "^UID_MIN" $defs)
max=$(grep "^UID_MAX" $defs)
awk -F':' -v "min=${min##UID_MIN}" -v "max=${max##UID_MAX}" '{ if ( $3 >= min && $3 <= max) print $1 }' /etc/passwd
"""

ignoredUsers = ["ubuntu", "test_01", "temp"]

s = Servers()
s.loadHostsFrom("ip.txt")
for host, result in s.ssh(script):
    users = result.stdout.splitlines()
    for u in users:
        if u not in ignoredUsers:
            print(host + "\t" + u)
Exemple #28
0
           "Aby sprawdzić ilość posiadanych kuponów, użyj komendy `{0}moje_kupony`"

    await ctx.send(text.format(info['prefix']))


@bot.command()
async def ziobro(ctx):
    await ctx.author.send('Przestań mi rodzinę prześladować')


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    bot.db = loop.run_until_complete(
        asyncpg.create_pool(user=db_info['user'],
                            database=db_info['database_name'],
                            password=db_info['password'],
                            max_size=15))

    bot.info = info

    if info['shop_active'] == 'y':
        bot.shop_is_on = True
    else:
        bot.shop_is_on = False

    bot.add_cog(Coupons(bot))
    bot.add_cog(Servers(bot))
    bot.add_cog(Masterserver(bot))

    bot.run(info['token'], reconnect=True)
Exemple #29
0
servers_json = os.getenv('SERVERS_JSON')
if servers_json and servers_json.strip():
    with open('configs/servers.json', 'w') as file:
        file.write(servers_json)

# [HEROKU] Check bot token and servers.json valid before start
if 'DGSM_TOKEN' in os.environ:
    invite_link = subprocess.run(['python3', 'getbotinvitelink.py'],
                                 stdout=subprocess.PIPE,
                                 shell=False).stdout.decode('utf8')
    if 'https://discord.com/api/oauth2/authorize?client_id=' not in invite_link:
        while True:
            time.sleep(1)
    with open('configs/servers.json', 'r') as file:
        try:
            Servers().get()
        except Exception as e:
            print(e)
            while True:
                time.sleep(1)

# env values
VERSION = '1.8.3'
SETTINGS = Settings.get()
DGSM_TOKEN = os.getenv('DGSM_TOKEN', SETTINGS['token'])
DGSM_PREFIX = os.getenv("DGSM_PREFIX", SETTINGS.get('prefix', '!'))
ROLE_ID = os.getenv('ROLE_ID', SETTINGS.get('role_id', '123'))
CUSTOM_IMAGE_URL = os.getenv('CUSTOM_IMAGE_URL', SETTINGS.get('image_url', ''))
REFRESH_RATE = int(os.getenv('REFRESH_RATE', SETTINGS['refreshrate'])) if int(
    os.getenv('REFRESH_RATE', SETTINGS['refreshrate'])) > 5 else 5
PRESENCE_TYPE = int(
Exemple #30
0
    def __init__(self, client):

        self.client = client
        self.servers = Servers()
        self.server_list = self.servers.get()
        self.message_error_count = self.current_display_server = 0