Пример #1
0
    def test_enqueue_new_task(self, *_):
        c = self.client
        c.resource_server = Mock()
        c.keys_auth = Mock()
        c.keys_auth.key_id = str(uuid.uuid4())

        c.task_server = TaskServer.__new__(TaskServer)
        c.task_server.client = c
        c.task_server.task_computer = Mock()
        c.task_server.task_manager = TaskManager.__new__(TaskManager)
        c.task_server.task_manager.add_new_task = Mock()
        c.task_server.task_manager.root_path = self.path

        task = Mock()
        task.header.max_price = 1 * 10**18
        task.header.task_id = str(uuid.uuid4())

        c.enqueue_new_task(task)
        task.get_resources.assert_called_with(None, resource_types["hashes"])
        c.resource_server.resource_manager.build_client_options.assert_called_with(
            c.keys_auth.key_id)
        assert c.resource_server.add_task.called
        assert not c.task_server.task_manager.add_new_task.called

        deferred = Deferred()
        deferred.callback(True)

        c.resource_server.add_task.called = False
        c.resource_server.add_task.return_value = deferred

        c.enqueue_new_task(task)
        assert c.resource_server.add_task.called
        assert c.task_server.task_manager.add_new_task.called
Пример #2
0
    def test_directories(self, *_):
        c = self.client

        self.assertIsInstance(c.get_datadir(), unicode)
        self.assertIsInstance(c.get_dir_manager(), Mock)

        c.task_server = TaskServer.__new__(TaskServer)
        c.task_server.client = self.client
        c.task_server.task_manager = TaskManager.__new__(TaskManager)
        c.task_server.task_manager.root_path = self.path
        c.task_server.task_computer = TaskComputer.__new__(TaskComputer)
        c.task_server.task_computer.dir_manager = DirManager(self.tempdir)
        c.task_server.task_computer.current_computations = []

        c.resource_server = ResourceServer.__new__(ResourceServer)
        c.resource_server.dir_manager = c.task_server.task_computer.dir_manager

        self.assertIsInstance(c.get_dir_manager(), DirManager)

        res_dirs = c.get_res_dirs()

        self.assertIsInstance(res_dirs, dict)
        self.assertTrue(len(res_dirs) == 3)

        for key, value in res_dirs.iteritems():
            self.assertIsInstance(key, unicode)
            self.assertIsInstance(value, unicode)
            self.assertTrue(self.path in value)

        res_dir_sizes = c.get_res_dirs_sizes()

        for key, value in res_dir_sizes.iteritems():
            self.assertIsInstance(key, unicode)
            self.assertIsInstance(value, unicode)
            self.assertTrue(key in res_dirs)
Пример #3
0
    def test_enqueue_new_task_dict(self, *_):
        t_dict = {
            'resources': [
                '/Users/user/Desktop/folder/texture.tex',
                '/Users/user/Desktop/folder/model.mesh',
                '/Users/user/Desktop/folder/stylized_levi.blend'
            ],
            'name':
            'Golem Task 17:41:45 GMT+0200 (CEST)',
            'type':
            'blender',
            'timeout':
            '09:25:00',
            'subtask_count':
            '6',
            'subtask_timeout':
            '4:10:00',
            'bid':
            '0.000032',
            'options': {
                'resolution': [1920, 1080],
                'frames': '1-10',
                'format': 'EXR',
                'output_path': '/Users/user/Desktop/',
                'compositing': True,
            }
        }

        c = self.client
        c.resource_server = Mock()
        c.keys_auth = Mock()
        c.keys_auth.key_id = str(uuid.uuid4())

        c.task_server = TaskServer.__new__(TaskServer)
        c.task_server.client = c
        c.task_server.task_computer = Mock()
        c.task_server.task_manager = TaskManager('node_name', Mock(),
                                                 c.keys_auth)
        c.task_server.task_manager.add_new_task = Mock()
        c.task_server.task_manager.root_path = self.path

        task = c.enqueue_new_task(t_dict)
        assert isinstance(task, Task)
        assert task.header.task_id

        c.resource_server.resource_manager.build_client_options\
            .assert_called_with(c.keys_auth.key_id)
        assert c.resource_server.add_task.called
        assert not c.task_server.task_manager.add_new_task.called
Пример #4
0
    def setUp(self):
        TempDirFixture.setUp(self)

        self.task_id = str(uuid.uuid4())

        self.datadir_1 = os.path.join(self.path, 'node_1')
        self.datadir_2 = os.path.join(self.path, 'node_2')

        self.dir_manager_1 = DirManager(self.datadir_1)
        self.dir_manager_2 = DirManager(self.datadir_2)

        self.resource_manager_1 = self._resource_manager_class(
            self.dir_manager_1)
        self.resource_manager_2 = self._resource_manager_class(
            self.dir_manager_2)

        self.client_1 = Client(datadir=self.datadir_1,
                               connect_to_known_hosts=False,
                               use_docker_machine_manager=False,
                               use_monitor=False)
        self.client_2 = Client(datadir=self.datadir_2,
                               connect_to_known_hosts=False,
                               use_docker_machine_manager=False,
                               use_monitor=False)
        self.client_1.start = self.client_2.start = Mock()

        self.resource_server_1 = BaseResourceServer(self.resource_manager_1,
                                                    self.dir_manager_1, Mock(),
                                                    self.client_1)
        self.resource_server_2 = BaseResourceServer(self.resource_manager_2,
                                                    self.dir_manager_2, Mock(),
                                                    self.client_2)
        self.resource_server_1.client.resource_server = self.resource_server_1
        self.resource_server_2.client.resource_server = self.resource_server_2

        task_server_1 = TaskServer.__new__(TaskServer, Mock(), Mock(), Mock(),
                                           self.client_1)
        task_server_2 = TaskServer.__new__(TaskServer, Mock(), Mock(), Mock(),
                                           self.client_2)
        task_server_1.client = self.client_1
        task_server_2.client = self.client_2
        task_server_1.keys_auth = self.client_1.keys_auth
        task_server_2.keys_auth = self.client_2.keys_auth
        task_server_1.sync_network = task_server_2.sync_network = Mock()
        task_server_1.start_accepting = task_server_2.start_accepting = Mock()
        task_server_1.task_computer = task_server_2.task_computer = Mock()

        self.client_1.task_server = task_server_1
        self.client_2.task_server = task_server_2

        self.task_session_1 = TaskSession(Mock())
        self.task_session_2 = TaskSession(Mock())
        self.task_session_1.task_server = task_server_1
        self.task_session_2.task_server = task_server_2
        self.task_session_1.task_id = self.task_session_2.task_id = self.task_id

        self.resource_dir_1 = self.resource_manager_1.storage.get_dir(
            self.task_id)
        self.resource_dir_2 = self.resource_manager_2.storage.get_dir(
            self.task_id)

        client_options = self.resource_manager_1.build_client_options(
            task_server_1.get_key_id())

        self.resources_relative, self.resources = self._create_resources(
            self.resource_dir_1)
        self.resource_manager_1._add_task(self.resources,
                                          self.task_id,
                                          client_options=client_options)