Skip to content

Commit 8ddd00a

Browse files
gmargaritisparisk
authored andcommitted
feat: add destroy option in setups command
1 parent b7eceb1 commit 8ddd00a

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

cycleops/client.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,13 @@ def deploy(self, setup_id: int) -> Optional[Dict[str, Any]]:
154154
jobs_client = JobClient(cycleops_client)
155155
return jobs_client.create(description=description, type=type, setup=setup_id)
156156

157+
def destroy(self, setup_id: int) -> Optional[Dict[str, Any]]:
158+
description: str = f"Destroying setup: {setup_id}"
159+
type: str = "Destruction"
160+
161+
jobs_client = JobClient(cycleops_client)
162+
return jobs_client.create(description=description, type=type, setup=setup_id)
163+
157164

158165
class UnitClient(SubClient):
159166
"""

cycleops/setups.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,26 @@ def deploy(
208208
raise typer.Abort()
209209

210210

211+
@app.command()
212+
def destroy(
213+
setup_identifier: str = typer.Argument(
214+
..., help="The ID or name of the setup. Names take precedence."
215+
),
216+
) -> None:
217+
"""
218+
Deploy the setup with the specified given ID or name.
219+
"""
220+
221+
try:
222+
setup = get_setup(setup_identifier)
223+
setup_client.destroy(setup["id"])
224+
225+
display_success_message(f"Setup {setup['id']} has been queued for destruction")
226+
except Exception as error:
227+
display_error_message(error)
228+
raise typer.Abort()
229+
230+
211231
def get_setup(setup_identifier: str) -> Optional[Dict[str, Any]]:
212232
"""
213233
Retrieves a Setup with either a name or ID. Names take precedence.

0 commit comments

Comments
 (0)