diff --git a/CHANGELOG.md b/CHANGELOG.md index 6240f3f2..e108747a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Bug Fixes 1. [#206](https://github.com/influxdata/influxdb-client-python/pull/207): Use default (system) certificates instead of Mozilla's root certificates (certifi.where()) +1. [#217](https://github.com/influxdata/influxdb-client-python/pull/217): Fixed clone_task function ### API 1. [#209](https://github.com/influxdata/influxdb-client-python/pull/209): Allow setting shard-group durations for buckets via API diff --git a/influxdb_client/client/tasks_api.py b/influxdb_client/client/tasks_api.py index 61011714..d67b5d73 100644 --- a/influxdb_client/client/tasks_api.py +++ b/influxdb_client/client/tasks_api.py @@ -98,12 +98,13 @@ def update_task_request(self, task_id, task_update_request: TaskUpdateRequest) - def clone_task(self, task: Task) -> Task: """Clone a task.""" - cloned = Task(name=task.name, org_id=task.org_id, org=task.org, flux=task.flux, status="active") + cloned = Task(id=0, name=task.name, org_id=task.org_id, org=task.org, flux=task.flux, status="active") created = self.create_task(cloned) - labels = self.get_labels(task) - for label in labels: - self.add_label(label, created.id) + if task.id: + labels = self.get_labels(task.id) + for label in labels.labels: + self.add_label(label.id, created.id) return created def get_labels(self, task_id): diff --git a/tests/test_TasksApi.py b/tests/test_TasksApi.py index 9c3283a2..9511f338 100644 --- a/tests/test_TasksApi.py +++ b/tests/test_TasksApi.py @@ -112,7 +112,6 @@ def test_create_task_with_offset(self): def test_create_task_every(self): task_name = self.generate_name("it_task") task = self.tasks_api.create_task_every(task_name, TASK_FLUX, "1h", self.organization) - print(task) self.assertIsNotNone(task) self.assertGreater(len(task.id), 1) @@ -391,3 +390,22 @@ def test_get_run(self): self.assertIsNotNone(run_by_id) self.assertEqual(run.id, run_by_id.id) + def test_clone(self): + task = self.tasks_api.create_task_every(self.generate_name("it_task"), TASK_FLUX, "1h", self.organization) + label = self.labels_api.create_label(self.generate_name("it_task"), self.organization.id, { + "color": "green", + "location": "west" + }) + self.tasks_api.add_label(label.id, task.id) + cloned = self.tasks_api.clone_task(task) + self.assertNotEqual(task.id, cloned.id) + self.assertEqual(task.flux, cloned.flux) + labels = self.tasks_api.get_labels(cloned.id).labels + self.assertEqual(1, len(labels)) + self.assertEqual(label.id, labels[0].id) + + def test_clone_new(self): + task = self.tasks_api._create_task(self.generate_name("it_task"), TASK_FLUX, "1h", None, self.organization.id) + cloned = self.tasks_api.clone_task(task) + self.assertNotEqual(task.id, cloned.id) + self.assertEqual(task.flux, cloned.flux) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy