Skip to content

Commit baa4028

Browse files
Merge pull request #2930 from VWS-Python/adamtheturtle/vumark-secrets
Bump vws-web-tools and add VuMark tooling
2 parents b530b94 + b1e0e8d commit baa4028

File tree

3 files changed

+119
-37
lines changed

3 files changed

+119
-37
lines changed

admin/create_secrets_files.py

Lines changed: 110 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,101 @@
1616

1717
if TYPE_CHECKING:
1818
from selenium.webdriver.remote.webdriver import WebDriver
19+
from vws_web_tools import DatabaseDict, VuMarkDatabaseDict
20+
21+
22+
def _create_and_get_database_details(
23+
driver: "WebDriver",
24+
email_address: str,
25+
password: str,
26+
license_name: str,
27+
database_name: str,
28+
) -> "DatabaseDict | None":
29+
"""Create a cloud database and get its details.
30+
31+
Returns database details or None if a timeout occurs.
32+
"""
33+
vws_web_tools.log_in(
34+
driver=driver,
35+
email_address=email_address,
36+
password=password,
37+
)
38+
vws_web_tools.wait_for_logged_in(driver=driver)
39+
try:
40+
vws_web_tools.create_license(driver=driver, license_name=license_name)
41+
except TimeoutException:
42+
sys.stderr.write("Timed out waiting for license creation\n")
43+
return None
44+
45+
vws_web_tools.create_cloud_database(
46+
driver=driver,
47+
database_name=database_name,
48+
license_name=license_name,
49+
)
50+
51+
try:
52+
return vws_web_tools.get_database_details(
53+
driver=driver,
54+
database_name=database_name,
55+
)
56+
except TimeoutException:
57+
sys.stderr.write("Timed out waiting for database to be created\n")
58+
return None
59+
60+
61+
def _create_and_get_vumark_details(
62+
driver: "WebDriver",
63+
vumark_database_name: str,
64+
) -> "VuMarkDatabaseDict | None":
65+
"""Create a VuMark database and get its details.
66+
67+
Returns VuMark database details or None if a timeout occurs.
68+
"""
69+
try:
70+
vws_web_tools.create_vumark_database(
71+
driver=driver,
72+
database_name=vumark_database_name,
73+
)
74+
except TimeoutException:
75+
sys.stderr.write("Timed out waiting for VuMark database creation\n")
76+
return None
77+
78+
try:
79+
return vws_web_tools.get_vumark_database_details(
80+
driver=driver,
81+
database_name=vumark_database_name,
82+
)
83+
except TimeoutException:
84+
sys.stderr.write(
85+
"Timed out waiting for VuMark database to be created\n"
86+
)
87+
return None
88+
89+
90+
def _generate_secrets_file_content(
91+
database_details: "DatabaseDict",
92+
vumark_details: "VuMarkDatabaseDict",
93+
) -> str:
94+
"""Generate the content of a secrets file."""
95+
return textwrap.dedent(
96+
text=f"""\
97+
VUFORIA_TARGET_MANAGER_DATABASE_NAME={database_details["database_name"]}
98+
VUFORIA_SERVER_ACCESS_KEY={database_details["server_access_key"]}
99+
VUFORIA_SERVER_SECRET_KEY={database_details["server_secret_key"]}
100+
VUFORIA_CLIENT_ACCESS_KEY={database_details["client_access_key"]}
101+
VUFORIA_CLIENT_SECRET_KEY={database_details["client_secret_key"]}
102+
103+
INACTIVE_VUFORIA_TARGET_MANAGER_DATABASE_NAME={os.environ["INACTIVE_VUFORIA_TARGET_MANAGER_DATABASE_NAME"]}
104+
INACTIVE_VUFORIA_SERVER_ACCESS_KEY={os.environ["INACTIVE_VUFORIA_SERVER_ACCESS_KEY"]}
105+
INACTIVE_VUFORIA_SERVER_SECRET_KEY={os.environ["INACTIVE_VUFORIA_SERVER_SECRET_KEY"]}
106+
INACTIVE_VUFORIA_CLIENT_ACCESS_KEY={os.environ["INACTIVE_VUFORIA_CLIENT_ACCESS_KEY"]}
107+
INACTIVE_VUFORIA_CLIENT_SECRET_KEY={os.environ["INACTIVE_VUFORIA_CLIENT_SECRET_KEY"]}
108+
109+
VUMARK_VUFORIA_TARGET_MANAGER_DATABASE_NAME={vumark_details["database_name"]}
110+
VUMARK_VUFORIA_SERVER_ACCESS_KEY={vumark_details["server_access_key"]}
111+
VUMARK_VUFORIA_SERVER_SECRET_KEY={vumark_details["server_secret_key"]}
112+
""",
113+
)
19114

20115

21116
def main() -> None:
@@ -50,57 +145,36 @@ def main() -> None:
50145
)
51146
license_name = f"my-license-{time}"
52147
database_name = f"my-database-{time}"
148+
vumark_database_name = f"my-vumark-database-{time}"
53149

54-
vws_web_tools.log_in(
150+
database_details = _create_and_get_database_details(
55151
driver=driver,
56152
email_address=email_address,
57153
password=password,
154+
license_name=license_name,
155+
database_name=database_name,
58156
)
59-
vws_web_tools.wait_for_logged_in(driver=driver)
60-
try:
61-
vws_web_tools.create_license(
62-
driver=driver, license_name=license_name
63-
)
64-
except TimeoutException:
65-
sys.stderr.write("Timed out waiting for license creation\n")
157+
if database_details is None:
66158
driver.quit()
67159
driver = None
68160
continue
69161

70-
vws_web_tools.create_cloud_database(
162+
vumark_details = _create_and_get_vumark_details(
71163
driver=driver,
72-
database_name=database_name,
73-
license_name=license_name,
164+
vumark_database_name=vumark_database_name,
74165
)
75-
76-
try:
77-
database_details = vws_web_tools.get_database_details(
78-
driver=driver,
79-
database_name=database_name,
80-
)
81-
except TimeoutException:
82-
sys.stderr.write("Timed out waiting for database to be created\n")
83-
continue
84-
finally:
166+
if vumark_details is None:
85167
driver.quit()
86168
driver = None
169+
continue
87170

88-
file_contents = textwrap.dedent(
89-
text=f"""\
90-
VUFORIA_TARGET_MANAGER_DATABASE_NAME={database_details["database_name"]}
91-
VUFORIA_SERVER_ACCESS_KEY={database_details["server_access_key"]}
92-
VUFORIA_SERVER_SECRET_KEY={database_details["server_secret_key"]}
93-
VUFORIA_CLIENT_ACCESS_KEY={database_details["client_access_key"]}
94-
VUFORIA_CLIENT_SECRET_KEY={database_details["client_secret_key"]}
95-
96-
INACTIVE_VUFORIA_TARGET_MANAGER_DATABASE_NAME={os.environ["INACTIVE_VUFORIA_TARGET_MANAGER_DATABASE_NAME"]}
97-
INACTIVE_VUFORIA_SERVER_ACCESS_KEY={os.environ["INACTIVE_VUFORIA_SERVER_ACCESS_KEY"]}
98-
INACTIVE_VUFORIA_SERVER_SECRET_KEY={os.environ["INACTIVE_VUFORIA_SERVER_SECRET_KEY"]}
99-
INACTIVE_VUFORIA_CLIENT_ACCESS_KEY={os.environ["INACTIVE_VUFORIA_CLIENT_ACCESS_KEY"]}
100-
INACTIVE_VUFORIA_CLIENT_SECRET_KEY={os.environ["INACTIVE_VUFORIA_CLIENT_SECRET_KEY"]}
101-
""",
102-
)
171+
driver.quit()
172+
driver = None
103173

174+
file_contents = _generate_secrets_file_content(
175+
database_details=database_details,
176+
vumark_details=vumark_details,
177+
)
104178
file.write_text(data=file_contents)
105179
sys.stdout.write(f"Created database {file.name}\n")
106180
files_to_create.pop()

pyproject.toml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ optional-dependencies.dev = [
104104
"vulture==2.14",
105105
"vws-python==2026.2.15",
106106
"vws-test-fixtures==2023.3.5",
107-
"vws-web-tools==2026.2.16",
107+
"vws-web-tools==2026.2.16.1",
108108
"yamlfix==1.19.1",
109109
"zizmor==1.22.0",
110110
]
@@ -440,6 +440,9 @@ ignore_names = [
440440
"REQUEST_QUOTA_REACHED",
441441
# pydantic-settings
442442
"model_config",
443+
# Used in TYPE_CHECKING for type hints
444+
"DatabaseDict",
445+
"VuMarkDatabaseDict",
443446
]
444447
# Duplicate some of .gitignore
445448
exclude = [ ".venv" ]

vuforia_secrets.env.example

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,8 @@ INACTIVE_VUFORIA_SERVER_SECRET_KEY=<INACTIVE_SERVER_SECRET_KEY>
1313

1414
INACTIVE_VUFORIA_CLIENT_ACCESS_KEY=<INACTIVE_CLIENT_ACCESS_KEY>
1515
INACTIVE_VUFORIA_CLIENT_SECRET_KEY=<INACTIVE_CLIENT_SECRET_KEY>
16+
17+
VUMARK_VUFORIA_TARGET_MANAGER_DATABASE_NAME=<VUMARK_DATABASE_NAME>
18+
19+
VUMARK_VUFORIA_SERVER_ACCESS_KEY=<VUMARK_SERVER_ACCESS_KEY>
20+
VUMARK_VUFORIA_SERVER_SECRET_KEY=<VUMARK_SERVER_SECRET_KEY>

0 commit comments

Comments
 (0)