Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions gvm/protocols/gmp/_gmp224.py
Original file line number Diff line number Diff line change
Expand Up @@ -3925,14 +3925,13 @@ def modify_task(
)
)

def move_task(
self, task_id: EntityID, *, slave_id: EntityID | None = None
) -> T:
def move_task(self, task_id: EntityID, *, slave_id: EntityID = "") -> T:
"""Move an existing task to another GMP slave scanner or the master

Args:
task_id: UUID of the task to be moved
slave_id: UUID of the sensor to reassign the task to, empty for master.
slave_id: UUID of the sensor to reassign the task to. Defaults to
an empty string, which selects the master.
"""
return self._send_request_and_transform_response(
Tasks.move_task(task_id, slave_id=slave_id)
Expand Down
7 changes: 3 additions & 4 deletions gvm/protocols/gmp/_gmpnext.py
Original file line number Diff line number Diff line change
Expand Up @@ -957,14 +957,13 @@ def modify_task(
)
)

def move_task(
self, task_id: EntityID, *, slave_id: EntityID | None = None
) -> T:
def move_task(self, task_id: EntityID, *, slave_id: EntityID = "") -> T:
"""Move an existing task to another GMP slave scanner or the master

Args:
task_id: UUID of the task to be moved
slave_id: UUID of the sensor to reassign the task to, empty for master.
slave_id: UUID of the sensor to reassign the task to. Defaults to
an empty string, which selects the master.
"""
return self._send_request_and_transform_response(
Tasks.move_task(
Expand Down
13 changes: 8 additions & 5 deletions gvm/protocols/gmp/requests/next/_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -695,24 +695,27 @@ def modify_task(

@classmethod
def move_task(
cls, task_id: EntityID, *, slave_id: EntityID | None = None
cls, task_id: EntityID, *, slave_id: EntityID = ""
) -> Request:
"""Move an existing task to another GMP slave scanner or the master

Args:
task_id: UUID of the task to be moved
slave_id: UUID of the sensor to reassign the task to, empty for master.
slave_id: UUID of the sensor to reassign the task to. Defaults to
an empty string, which selects the master.
"""
if not task_id:
raise RequiredArgument(
function=cls.move_task.__name__, argument="task_id"
)
if slave_id is None:
raise RequiredArgument(
function=cls.move_task.__name__, argument="slave_id"
)

cmd = XmlCommand("move_task")
cmd.set_attribute("task_id", str(task_id))

if slave_id is not None:
cmd.set_attribute("slave_id", str(slave_id))
cmd.set_attribute("slave_id", str(slave_id))

return cmd

Expand Down
13 changes: 8 additions & 5 deletions gvm/protocols/gmp/requests/v224/_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -354,24 +354,27 @@ def modify_task(

@classmethod
def move_task(
cls, task_id: EntityID, *, slave_id: EntityID | None = None
cls, task_id: EntityID, *, slave_id: EntityID = ""
) -> Request:
"""Move an existing task to another GMP slave scanner or the master

Args:
task_id: UUID of the task to be moved
slave_id: UUID of the sensor to reassign the task to, empty for master.
slave_id: UUID of the sensor to reassign the task to. Defaults to
an empty string, which selects the master.
"""
if not task_id:
raise RequiredArgument(
function=cls.move_task.__name__, argument="task_id"
)
if slave_id is None:
raise RequiredArgument(
function=cls.move_task.__name__, argument="slave_id"
)

cmd = XmlCommand("move_task")
cmd.set_attribute("task_id", str(task_id))

if slave_id is not None:
cmd.set_attribute("slave_id", str(slave_id))
cmd.set_attribute("slave_id", str(slave_id))

return cmd

Expand Down
13 changes: 12 additions & 1 deletion tests/protocols/gmp/requests/v224/test_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -664,7 +664,14 @@ def test_move_task(self):
request = Tasks().move_task("task_id")
self.assertEqual(
bytes(request),
b'<move_task task_id="task_id"/>',
b'<move_task task_id="task_id" slave_id=""/>',
)

def test_move_task_to_master(self):
request = Tasks().move_task("task_id", slave_id="")
self.assertEqual(
bytes(request),
b'<move_task task_id="task_id" slave_id=""/>',
)

def test_move_task_with_slave_id(self):
Expand All @@ -681,6 +688,10 @@ def test_move_task_missing_task_id(self):
with self.assertRaises(RequiredArgument):
Tasks().move_task(None)

def test_move_task_none_slave_id(self):
with self.assertRaises(RequiredArgument):
Tasks().move_task("task_id", slave_id=None)

def test_start_task(self):
request = Tasks().start_task("task_id")
self.assertEqual(
Expand Down
15 changes: 14 additions & 1 deletion tests/protocols/gmpnext/entities/tasks/test_move_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,16 @@ class GmpMoveTaskTestMixin:
def test_move_task(self):
self.gmp.move_task("a1")

self.connection.send.has_been_called_with(b'<move_task task_id="a1"/>')
self.connection.send.has_been_called_with(
b'<move_task task_id="a1" slave_id=""/>'
)

def test_move_task_to_master(self):
self.gmp.move_task("a1", slave_id="")

self.connection.send.has_been_called_with(
b'<move_task task_id="a1" slave_id=""/>'
)

def test_move_task_to_slave(self):
self.gmp.move_task("a1", slave_id="s1")
Expand All @@ -25,3 +34,7 @@ def test_missing_id(self):

with self.assertRaises(GvmError):
self.gmp.move_task("")

def test_none_slave_id(self):
with self.assertRaises(GvmError):
self.gmp.move_task("a1", slave_id=None)
15 changes: 14 additions & 1 deletion tests/protocols/gmpv224/entities/tasks/test_move_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,16 @@ class GmpMoveTaskTestMixin:
def test_move_task(self):
self.gmp.move_task("a1")

self.connection.send.has_been_called_with(b'<move_task task_id="a1"/>')
self.connection.send.has_been_called_with(
b'<move_task task_id="a1" slave_id=""/>'
)

def test_move_task_to_master(self):
self.gmp.move_task("a1", slave_id="")

self.connection.send.has_been_called_with(
b'<move_task task_id="a1" slave_id=""/>'
)

def test_move_task_to_slave(self):
self.gmp.move_task("a1", slave_id="s1")
Expand All @@ -25,3 +34,7 @@ def test_missing_id(self):

with self.assertRaises(GvmError):
self.gmp.move_task("")

def test_none_slave_id(self):
with self.assertRaises(GvmError):
self.gmp.move_task("a1", slave_id=None)
Loading