예제 #1
0
    def test_mesos_executor_driver_status_update(self):
        os.environ['MESOS_SLAVE_PID'] = str(self.slave.pid)

        executor = Executor()
        driver = PesosExecutorDriver(executor, context=self.context)
        assert driver.start() == mesos_pb2.DRIVER_RUNNING

        # wait until registered
        driver.executor_process.connected.wait(timeout=MAX_TIMEOUT)
        assert driver.executor_process.connected.is_set()

        task_status = mesos_pb2.TaskStatus(
            task_id=mesos_pb2.TaskID(value='task-id'),
            state=mesos_pb2.TASK_FAILED,
        )

        assert driver.send_status_update(
            task_status) == mesos_pb2.DRIVER_RUNNING
        self.slave.status_update_event.wait(timeout=MAX_TIMEOUT)
        assert self.slave.status_update_event.is_set()

        assert len(self.slave.status_updates) == 1
        assert self.slave.status_updates[0][0] == driver.executor_process.pid

        status_update_message = self.slave.status_updates[0][1]
        status_update = status_update_message.update
        assert status_update.slave_id == self.slave.slave_id
        assert status_update.framework_id == mesos_pb2.FrameworkID(
            value=self.FRAMEWORK_ID)
        assert status_update.executor_id == mesos_pb2.ExecutorID(
            value=self.EXECUTOR_ID)
        assert status_update.status.task_id == task_status.task_id
        assert status_update.status.state == task_status.state
        assert status_update.HasField('timestamp')
        assert status_update.HasField('uuid')
예제 #2
0
  def test_mesos_executor_driver_status_update(self):
    os.environ['MESOS_SLAVE_PID'] = str(self.slave.pid)

    executor = Executor()
    driver = PesosExecutorDriver(executor, context=self.context)
    assert driver.start() == mesos_pb2.DRIVER_RUNNING

    # wait until registered
    driver.executor_process.connected.wait(timeout=MAX_TIMEOUT)
    assert driver.executor_process.connected.is_set()

    task_status = mesos_pb2.TaskStatus(
        task_id=mesos_pb2.TaskID(value='task-id'),
        state=mesos_pb2.TASK_FAILED,
    )

    assert driver.send_status_update(task_status) == mesos_pb2.DRIVER_RUNNING
    self.slave.status_update_event.wait(timeout=MAX_TIMEOUT)
    assert self.slave.status_update_event.is_set()

    assert len(self.slave.status_updates) == 1
    assert self.slave.status_updates[0][0] == driver.executor_process.pid

    status_update_message = self.slave.status_updates[0][1]
    status_update = status_update_message.update
    assert status_update.slave_id == self.slave.slave_id
    assert status_update.framework_id == mesos_pb2.FrameworkID(value=self.FRAMEWORK_ID)
    assert status_update.executor_id == mesos_pb2.ExecutorID(value=self.EXECUTOR_ID)
    assert status_update.status.task_id == task_status.task_id
    assert status_update.status.state == task_status.state
    assert status_update.HasField('timestamp')
    assert status_update.HasField('uuid')