Ejemplo n.º 1
0
    def test_assign_by_weight(self):
        jobtype_version = self.create_jobtype_version()
        high_queue = self.create_queue_with_job("heavyweight", jobtype_version)
        high_queue.weight = 60
        mid_queue = self.create_queue_with_job("mediumweight", jobtype_version)
        mid_queue.weight = 30
        low_queue = self.create_queue_with_job("lightweight", jobtype_version)
        low_queue.weight = 10
        db.session.add_all([high_queue, mid_queue, low_queue])
        db.session.commit()

        agents = []
        for i in range(0, 100):
            agent = Agent(hostname="agent%s" % i, id=uuid.uuid4(), ram=32,
                          free_ram=32, cpus=1, port=50000)
            db.session.add(agent)
            agents.append(agent)
        db.session.commit()

        for agent in agents:
            assign_tasks_to_agent(agent.id)

        self.assertGreaterEqual(high_queue.num_assigned_agents(), 59)
        self.assertLessEqual(high_queue.num_assigned_agents(), 61)

        self.assertGreaterEqual(mid_queue.num_assigned_agents(), 29)
        self.assertLessEqual(mid_queue.num_assigned_agents(), 31)

        self.assertGreaterEqual(low_queue.num_assigned_agents(), 9)
        self.assertLessEqual(low_queue.num_assigned_agents(), 11)
Ejemplo n.º 2
0
    def test_assign_by_weight(self):
        jobtype_version = self.create_jobtype_version()
        high_queue = self.create_queue_with_job("heavyweight", jobtype_version)
        high_queue.weight = 60
        mid_queue = self.create_queue_with_job("mediumweight", jobtype_version)
        mid_queue.weight = 30
        low_queue = self.create_queue_with_job("lightweight", jobtype_version)
        low_queue.weight = 10
        db.session.add_all([high_queue, mid_queue, low_queue])
        db.session.commit()

        agents = []
        for i in range(0, 100):
            agent = Agent(hostname="agent%s" % i,
                          id=uuid.uuid4(),
                          ram=32,
                          free_ram=32,
                          cpus=1,
                          port=50000)
            db.session.add(agent)
            agents.append(agent)
        db.session.commit()

        for agent in agents:
            assign_tasks_to_agent(agent.id)

        self.assertGreaterEqual(high_queue.num_assigned_agents(), 59)
        self.assertLessEqual(high_queue.num_assigned_agents(), 61)

        self.assertGreaterEqual(mid_queue.num_assigned_agents(), 29)
        self.assertLessEqual(mid_queue.num_assigned_agents(), 31)

        self.assertGreaterEqual(low_queue.num_assigned_agents(), 9)
        self.assertLessEqual(low_queue.num_assigned_agents(), 11)
Ejemplo n.º 3
0
    def test_assign_by_weight_additional_queues(self):
        jobtype_version = self.create_jobtype_version()
        high_queue = self.create_queue_with_job("heavyweight", jobtype_version)
        high_queue.weight = 6
        mid_queue = self.create_queue_with_job("mediumweight", jobtype_version)
        mid_queue.weight = 3
        low_queue = self.create_queue_with_job("lightweight", jobtype_version)
        low_queue.weight = 1
        db.session.add_all([high_queue, mid_queue, low_queue])

        # The presence of additional queues with arbitrary weights should not
        # make any difference if they aren't drawing any agents
        additional_queue1 = JobQueue(name="additional1", weight=10)
        additional_queue2 = JobQueue(name="additional2", weight=10)
        additional_queue3 = JobQueue(name="additional3", weight=10)
        db.session.add_all(
            [additional_queue1, additional_queue2, additional_queue3])

        db.session.commit()

        agents = []
        for i in range(0, 100):
            agent = Agent(hostname="agent%s" % i,
                          id=uuid.uuid4(),
                          ram=32,
                          free_ram=32,
                          cpus=1,
                          port=50000)
            db.session.add(agent)
            agents.append(agent)
        db.session.commit()

        for agent in agents:
            assign_tasks_to_agent(agent.id)

        self.assertGreaterEqual(high_queue.num_assigned_agents(), 59)
        self.assertLessEqual(high_queue.num_assigned_agents(), 61)

        self.assertGreaterEqual(mid_queue.num_assigned_agents(), 29)
        self.assertLessEqual(mid_queue.num_assigned_agents(), 31)

        self.assertGreaterEqual(low_queue.num_assigned_agents(), 9)
        self.assertLessEqual(low_queue.num_assigned_agents(), 11)
Ejemplo n.º 4
0
    def test_assign_by_weight_additional_queues(self):
        jobtype_version = self.create_jobtype_version()
        high_queue = self.create_queue_with_job("heavyweight", jobtype_version)
        high_queue.weight = 6
        mid_queue = self.create_queue_with_job("mediumweight", jobtype_version)
        mid_queue.weight = 3
        low_queue = self.create_queue_with_job("lightweight", jobtype_version)
        low_queue.weight = 1
        db.session.add_all([high_queue, mid_queue, low_queue])

        # The presence of additional queues with arbitrary weights should not
        # make any difference if they aren't drawing any agents
        additional_queue1 = JobQueue(name="additional1", weight=10)
        additional_queue2 = JobQueue(name="additional2", weight=10)
        additional_queue3 = JobQueue(name="additional3", weight=10)
        db.session.add_all([additional_queue1, additional_queue2,
                            additional_queue3])

        db.session.commit()

        agents = []
        for i in range(0, 100):
            agent = Agent(hostname="agent%s" % i, id=uuid.uuid4(), ram=32,
                          free_ram=32, cpus=1, port=50000)
            db.session.add(agent)
            agents.append(agent)
        db.session.commit()

        for agent in agents:
            assign_tasks_to_agent(agent.id)

        self.assertGreaterEqual(high_queue.num_assigned_agents(), 59)
        self.assertLessEqual(high_queue.num_assigned_agents(), 61)

        self.assertGreaterEqual(mid_queue.num_assigned_agents(), 29)
        self.assertLessEqual(mid_queue.num_assigned_agents(), 31)

        self.assertGreaterEqual(low_queue.num_assigned_agents(), 9)
        self.assertLessEqual(low_queue.num_assigned_agents(), 11)