diff --git a/README.md b/README.md index 8437d31d7215f777e9d4940f4bba454ff0302fc5..75220d7e07b5b355a2b21960eacea300824eea45 100644 --- a/README.md +++ b/README.md @@ -21,5 +21,6 @@ export api_url=http://127.0.0.1:8080/api/v1/subscriptions/routers export host_vars_dir=/path/to/base/hostvars/dir export vars_file_name=wfo_vars.yaml export hosts_file_dir=/path/to/base/hosts/dir +export gso_api_key=get_this_token_from_gso_admin_based_on_your_environment -ansible_inventory_generator \ No newline at end of file +ansible_inventory_generator diff --git a/ansible_inventory_generator/app.py b/ansible_inventory_generator/app.py index 7c4d1fb39384a5de3f4c8793403e13e0683255ce..7b535c2bb502d6fec84aed0f996a3591affffbfb 100644 --- a/ansible_inventory_generator/app.py +++ b/ansible_inventory_generator/app.py @@ -100,7 +100,9 @@ def safe_write(temp_dir: Path, old_vars_dir: Path, old_hosts_file: Path) -> Gene def generate_inventory_from_api() -> None: settings = load_settings() """Generate Ansible inventory from API.""" - response = requests.get(settings.api_url, timeout=API_TIMEOUT_SEC) + response = requests.get( + settings.api_url, timeout=API_TIMEOUT_SEC, headers={"Authorization": f"Bearer {settings.gso_api_key}"} + ) response.raise_for_status() try: router_subscriptions = response.json() diff --git a/ansible_inventory_generator/config.py b/ansible_inventory_generator/config.py index b94b8cea5a84c29b74c8e9ec5703a0d08dfb09cf..35e125bbb4ee077de6b67c84969c847accd404d8 100644 --- a/ansible_inventory_generator/config.py +++ b/ansible_inventory_generator/config.py @@ -6,6 +6,7 @@ class Settings(BaseSettings): host_vars_dir: str vars_file_name: str hosts_file_dir: str + gso_api_key: str class Config: env_file = "../.env" diff --git a/example.env b/example.env index 4654690ac5af327c2b4afe1d4ab6fd79f5e86921..59005596d63d1d67b373cb73b9e6efd39b2667ce 100644 --- a/example.env +++ b/example.env @@ -2,3 +2,4 @@ api_url=http://127.0.0.1:8080/api/v1/subscriptions/routers host_vars_dir=/path/to/base/hostvars/dir vars_file_name=wfo_vars.yaml hosts_file_dir=/path/to/base/hosts/dir +gso_api_key=askjdhaskhdaksjhdkajshdkashd diff --git a/setup.py b/setup.py index f676b0fc3fdabae9eb5fab80d2f44fe00ad7ba44..7ffd35e4350862b3146a98a0d3a5e1c77c363f83 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ setup( name="ansible_inventory_generator", version="0.1", author="GEANT", - author_email="swd@geant.org", + author_email="gap@geant.org", description="Ansible inventory generator for WFO", url="https://gitlab.software.geant.org/goat/gap/ansible_inventory_generator", packages=find_packages(), diff --git a/tests/test_inventory_generator.py b/tests/test_inventory_generator.py index a309c7bc4938394cf3b3e2cb9ed05ead2f11f916..2b5fc13d7cf81cebbb60480724bff4b7af42e950 100644 --- a/tests/test_inventory_generator.py +++ b/tests/test_inventory_generator.py @@ -157,6 +157,7 @@ def setup_test(tmp_dir, mocked_subscription_api_data): host_vars_dir=str(tmp_dir), vars_file_name="wfo_vars.yaml", hosts_file_dir=str(tmp_dir), + gso_api_key="random_gso_api_key", ) mock_get.return_value.json.return_value = mocked_subscription_api_data