|
1 |
| -from typing import Optional |
| 1 | +import os |
| 2 | +import sys |
2 | 3 |
|
3 | 4 | import typer
|
4 | 5 | from diffsync.diff import Diff
|
5 |
| -from diff_nautobot_understack.project.main import ( |
6 |
| - openstack_project_diff_from_nautobot_tenant, |
7 |
| -) |
| 6 | +from rich import print |
| 7 | +from rich.console import Console |
| 8 | +from rich.table import Table |
| 9 | + |
8 | 10 | from diff_nautobot_understack.network.main import (
|
9 | 11 | openstack_network_diff_from_ucvni_network,
|
10 | 12 | )
|
| 13 | +from diff_nautobot_understack.project.main import ( |
| 14 | + openstack_project_diff_from_nautobot_tenant, |
| 15 | +) |
11 | 16 | from diff_nautobot_understack.settings import app_settings as settings
|
12 |
| -from rich.console import Console |
13 |
| -from rich.table import Table |
14 |
| -from rich import print |
| 17 | + |
| 18 | +required_env_vars = ["NAUTOBOT_TOKEN", "NAUTOBOT_URL", "OS_CLOUD"] |
| 19 | + |
15 | 20 |
|
16 | 21 | app = typer.Typer(
|
17 | 22 | name="diff",
|
|
25 | 30 |
|
26 | 31 |
|
27 | 32 | def display_output(
|
28 |
| - diff_result: Diff, diff_output: str, output_format: Optional[str] = None |
| 33 | + diff_result: Diff, diff_output: str, output_format: str | None = None |
29 | 34 | ):
|
30 | 35 | print(diff_result.summary())
|
31 | 36 | __output_format = (
|
@@ -84,5 +89,14 @@ def network(
|
84 | 89 | display_output(diff_result, "network", output_format)
|
85 | 90 |
|
86 | 91 |
|
87 |
| -if __name__ == "__main__": |
88 |
| - app() |
| 92 | +def check_env_vars(required_vars): |
| 93 | + missing_vars = [var for var in required_vars if var not in os.environ] |
| 94 | + |
| 95 | + if missing_vars: |
| 96 | + print(f"Error: Missing environment variables: {', '.join(missing_vars)}") |
| 97 | + sys.exit(1) |
| 98 | + else: |
| 99 | + print("All required environment variables are set.") |
| 100 | + |
| 101 | + |
| 102 | +check_env_vars(required_env_vars) |
0 commit comments