Newer
Older
import contextlib
import json
import os
import socket
import pytest
import tempfile
@pytest.fixture(scope='session')
def configuration_data():
with contextlib.closing(
socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as s:
s.bind(('', 0))
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
yield {
"GENERAL": {
"public_hostname": "https://gap.geant.org"
},
"RESOURCE_MANAGER_API_PREFIX": "http://localhost:44444",
"IPAM": {
"INFOBLOX": {
"scheme": "https",
"wapi_version": "v2.12",
"host": "10.0.0.1",
"username": "robot-user",
"password": "robot-user-password"
},
"LO": {
"V4": {
"containers": [],
"networks": ["10.255.255.0/26"],
"mask": 32
},
"V6": {
"containers": [],
"networks": ["dead:beef::/80"],
"mask": 128
},
"domain_name": ".lo"
},
"TRUNK": {
"V4": {
"containers": ["10.255.255.0/24", "10.255.254.0/24"],
"mask": 31
},
"V6": {
"containers": ["dead:beef::/64", "dead:beee::/64"],
"mask": 126
},
"domain_name": ".trunk"
},
"GEANT_IP": {
"V4": {
"containers": ["10.255.255.0/24", "10.255.254.0/24"],
"mask": 31
},
"V6": {
"containers": ["dead:beef::/64", "dead:beee::/64"],
"mask": 126
},
"domain_name": ".geantip"
}
},
"PROVISIONING_PROXY": {
"scheme": "https",
"api_base": "localhost:44444",
"auth": "Bearer <token>",
"api_version": 1123
}
}
@pytest.fixture(scope='session')
def data_config_filename(configuration_data):
file_name = os.path.join(
tempfile.gettempdir(), os.urandom(24).hex())
open(file_name, 'x').close()
with open(file_name, 'wb') as f:
f.write(json.dumps(configuration_data).encode('utf-8'))
f.flush()
os.environ['OSS_PARAMS_FILENAME'] = f.name
yield f.name