acex-cli 4.5.1__tar.gz → 4.6.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: acex-cli
3
- Version: 4.5.1
3
+ Version: 4.6.0
4
4
  Summary: ACE-X CLI - Command-line interface for ACE-X
5
5
  License: AGPL-3.0
6
6
  Keywords: automation,cli,control
@@ -11,13 +11,14 @@ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Classifier: Programming Language :: Python :: 3.13
13
13
  Classifier: Programming Language :: Python :: 3.14
14
- Requires-Dist: acex-client (>=4.8.1,<5.0.0)
15
- Requires-Dist: acex-devkit (>=2.4.0,<3.0.0)
16
- Requires-Dist: acex-driver-cisco-ioscli (>=2.7.0,<3.0.0)
17
- Requires-Dist: click (==8.1.7)
18
- Requires-Dist: ntc-templates (>=8.1.0,<9.0.0)
19
- Requires-Dist: rich (>=13.0.0,<14.0.0)
20
- Requires-Dist: typer (>=0.12.0,<0.13.0)
14
+ Classifier: Programming Language :: Python :: 3.15
15
+ Requires-Dist: acex-client (>=4.11.0,<5.0.0)
16
+ Requires-Dist: acex-devkit (>=2.11.0,<3.0.0)
17
+ Requires-Dist: acex-driver-cisco-ioscli (>=2.7.4,<3.0.0)
18
+ Requires-Dist: click (>=8.1.7)
19
+ Requires-Dist: ntc-templates (>=8.1.0)
20
+ Requires-Dist: rich (>=13.0.0)
21
+ Requires-Dist: typer (>=0.12.0)
21
22
  Project-URL: Homepage, https://github.com/acex-labs/acex
22
23
  Project-URL: Repository, https://github.com/acex-labs/acex
23
24
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "acex-cli"
3
- version = "4.5.1"
3
+ version = "4.6.0"
4
4
  description = "ACE-X CLI - Command-line interface for ACE-X"
5
5
  authors = ["Johan Lahti <johan.lahti@acebit.se>"]
6
6
  readme = "README.md"
@@ -14,13 +14,13 @@ packages = [
14
14
 
15
15
  [tool.poetry.dependencies]
16
16
  python = "^3.13"
17
- typer = "^0.12.0"
18
- rich = "^13.0.0"
19
- click = "8.1.7"
20
- acex-client = "^4.8.1" # Changes to real dep. by switch_acex_client_dep for publishing
21
- acex-devkit = "^2.4.0"
22
- acex-driver-cisco-ioscli = "^2.7.0"
23
- ntc-templates = "^8.1.0"
17
+ typer = ">=0.12.0"
18
+ rich = ">=13.0.0"
19
+ click = ">=8.1.7"
20
+ acex-client = "^4.11.0" # Changes to real dep. by switch_acex_client_dep for publishing
21
+ acex-devkit = "^2.11.0"
22
+ acex-driver-cisco-ioscli = "^2.7.4"
23
+ ntc-templates = ">=8.1.0"
24
24
 
25
25
  [tool.poetry.scripts]
26
26
  acex = "acex_cli.main:app"
@@ -0,0 +1,5 @@
1
+ """ACE-X CLI - Command-line interface for ACE-X."""
2
+
3
+ import importlib.metadata
4
+
5
+ __version__ = importlib.metadata.version("acex-cli")
@@ -57,7 +57,7 @@ def _fetch_node_instance(sdk, identifier: str):
57
57
  typer.echo(f"Multiple nodes match '{identifier}':")
58
58
  from acex_cli.output import display_list
59
59
 
60
- display_list(result, columns=["id", "hostname", "site", "status"], title="")
60
+ display_list(result, columns=["id", "hostname", "site", "admin_status", "provision_status"], title="")
61
61
  raise typer.Exit(1)
62
62
  node = sdk.node_instances.get(result.items[0].id)
63
63
  if not node:
@@ -84,7 +84,7 @@ def _resolve_node_quick(sdk, identifier: str):
84
84
  typer.echo(f"Multiple nodes match '{identifier}':")
85
85
  from acex_cli.output import display_list
86
86
 
87
- display_list(result, columns=["id", "hostname", "site", "status"], title="")
87
+ display_list(result, columns=["id", "hostname", "site", "admin_status", "provision_status"], title="")
88
88
  raise typer.Exit(1)
89
89
  return result.items[0]
90
90
 
@@ -205,7 +205,11 @@ def list_cmd(
205
205
  hostname: str | None = typer.Option(None, help="Filter by hostname (prefix match)"),
206
206
  logical_node_id: int | None = typer.Option(None, help="Filter by logical node ID"),
207
207
  asset_ref_id: int | None = typer.Option(None, help="Filter by asset ref ID"),
208
- status: str | None = typer.Option(None, help="Filter by status (planned, init, active, decommissioned)"),
208
+ admin_status: str | None = typer.Option(None, help="Filter by admin status (planned, active, decommissioned)"),
209
+ provision_status: str | None = typer.Option(
210
+ None,
211
+ help=("Filter by provision status (unprovisioned, adopted, enrolled, provisioning, provisioned, failed)"),
212
+ ),
209
213
  # Pagination
210
214
  limit: int = typer.Option(100, "--limit", "-l", help="Max items to return"),
211
215
  offset: int = typer.Option(0, "--offset", help="Items to skip"),
@@ -221,13 +225,16 @@ def list_cmd(
221
225
  hostname=hostname,
222
226
  logical_node_id=logical_node_id,
223
227
  asset_ref_id=asset_ref_id,
224
- status=status,
228
+ admin_status=admin_status,
229
+ provision_status=provision_status,
225
230
  )
226
231
  result = sdk.node_instances.query(limit=limit, offset=offset, **filters)
227
232
  display_list(
228
233
  result,
229
234
  format=format,
230
- columns=columns.split(",") if columns else ["id", "hostname", "site", "status", "vendor", "os", "ned_id"],
235
+ columns=columns.split(",")
236
+ if columns
237
+ else ["id", "hostname", "site", "admin_status", "provision_status", "vendor", "os", "ned_id"],
231
238
  no_header=no_header,
232
239
  model=NodeListItem,
233
240
  title="Node Instances",
@@ -641,7 +648,8 @@ def _flatten_node(node, node_id: str = None) -> dict:
641
648
  "hostname": logical_node.get("hostname"),
642
649
  "site": logical_node.get("site"),
643
650
  "role": logical_node.get("role"),
644
- "status": data.get("status"),
651
+ "admin_status": data.get("admin_status"),
652
+ "provision_status": data.get("provision_status"),
645
653
  "vendor": asset.get("vendor"),
646
654
  "os": asset.get("os"),
647
655
  "os_version": asset.get("os_version"),
@@ -673,7 +681,7 @@ def _resolve_node(sdk, identifier: str):
673
681
  typer.echo(f"Multiple nodes match hostname '{identifier}':")
674
682
  from acex_cli.output import display_list
675
683
 
676
- display_list(result, columns=["id", "hostname", "site", "status"], title="")
684
+ display_list(result, columns=["id", "hostname", "site", "admin_status", "provision_status"], title="")
677
685
  typer.echo("Use the ID to specify which node.")
678
686
  raise typer.Exit(1)
679
687
 
@@ -693,7 +701,7 @@ def _resolve_node_id(sdk, identifier: str) -> str:
693
701
  typer.echo(f"Multiple nodes match hostname '{identifier}':")
694
702
  from acex_cli.output import display_list
695
703
 
696
- display_list(result, columns=["id", "hostname", "site", "status"], title="")
704
+ display_list(result, columns=["id", "hostname", "site", "admin_status", "provision_status"], title="")
697
705
  typer.echo("Use the ID to specify which node.")
698
706
  raise typer.Exit(1)
699
707
  typer.echo(f"Node '{identifier}' not found.")
@@ -1,3 +0,0 @@
1
- """ACE-X CLI - Command-line interface for ACE-X."""
2
-
3
- __version__ = "0.2.0"
File without changes
File without changes
File without changes