Skip to content

Commit a12c022

Browse files
Merge pull request #2938 from VWS-Python/adamtheturtle/pr-vumark-svg
Use vws-web-tools upload for VuMark target IDs
2 parents bef9e65 + 206f379 commit a12c022

4 files changed

Lines changed: 67 additions & 7 deletions

File tree

admin/create_secrets_files.py

Lines changed: 61 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
from vws_web_tools import DatabaseDict, VuMarkDatabaseDict
2020

2121

22+
VUMARK_TEMPLATE_SVG_FILE_PATH = Path(__file__).with_name(
23+
name="vumark_template.svg",
24+
)
25+
26+
2227
def _create_and_get_database_details(
2328
driver: "WebDriver",
2429
email_address: str,
@@ -73,6 +78,7 @@ def _generate_secrets_file_content(
7378
database_details: "DatabaseDict",
7479
vumark_details: "VuMarkDatabaseDict",
7580
inactive_database_details: "DatabaseDict",
81+
vumark_target_id: str,
7682
) -> str:
7783
"""Generate the content of a secrets file."""
7884
return textwrap.dedent(
@@ -90,12 +96,46 @@ def _generate_secrets_file_content(
9096
INACTIVE_VUFORIA_CLIENT_SECRET_KEY={inactive_database_details["client_secret_key"]}
9197
9298
VUMARK_VUFORIA_TARGET_MANAGER_DATABASE_NAME={vumark_details["database_name"]}
99+
VUMARK_VUFORIA_TARGET_ID={vumark_target_id}
93100
VUMARK_VUFORIA_SERVER_ACCESS_KEY={vumark_details["server_access_key"]}
94101
VUMARK_VUFORIA_SERVER_SECRET_KEY={vumark_details["server_secret_key"]}
95102
""",
96103
)
97104

98105

106+
def _create_and_get_vumark_target_id(
107+
driver: "WebDriver",
108+
vumark_database_name: str,
109+
vumark_template_name: str,
110+
) -> str:
111+
"""Upload a VuMark template and get its target ID."""
112+
vws_web_tools.upload_vumark_template(
113+
driver=driver,
114+
database_name=vumark_database_name,
115+
svg_file_path=VUMARK_TEMPLATE_SVG_FILE_PATH,
116+
template_name=vumark_template_name,
117+
width=100.0,
118+
)
119+
return vws_web_tools.get_vumark_target_id(
120+
driver=driver,
121+
database_name=vumark_database_name,
122+
target_name=vumark_template_name,
123+
)
124+
125+
126+
def _create_vuforia_resource_names() -> tuple[str, str, str, str]:
127+
"""Create names for Vuforia resources."""
128+
time = datetime.datetime.now(tz=datetime.UTC).strftime(
129+
format="%Y-%m-%d-%H-%M-%S",
130+
)
131+
return (
132+
f"my-license-{time}",
133+
f"my-database-{time}",
134+
f"my-vumark-database-{time}",
135+
f"my-vumark-template-{time}",
136+
)
137+
138+
99139
def main() -> None:
100140
"""Create secrets files."""
101141
email_address = os.environ["VWS_EMAIL_ADDRESS"]
@@ -132,12 +172,12 @@ def main() -> None:
132172
driver = vws_web_tools.create_chrome_driver()
133173
file = files_to_create[-1]
134174
sys.stdout.write(f"Creating database {file.name}\n")
135-
time = datetime.datetime.now(tz=datetime.UTC).strftime(
136-
format="%Y-%m-%d-%H-%M-%S",
137-
)
138-
license_name = f"my-license-{time}"
139-
database_name = f"my-database-{time}"
140-
vumark_database_name = f"my-vumark-database-{time}"
175+
(
176+
license_name,
177+
database_name,
178+
vumark_database_name,
179+
vumark_template_name,
180+
) = _create_vuforia_resource_names()
141181

142182
try:
143183
database_details = _create_and_get_database_details(
@@ -168,13 +208,28 @@ def main() -> None:
168208
driver = None
169209
continue
170210

211+
try:
212+
vumark_target_id = _create_and_get_vumark_target_id(
213+
driver=driver,
214+
vumark_database_name=vumark_database_name,
215+
vumark_template_name=vumark_template_name,
216+
)
217+
except TimeoutException:
218+
sys.stderr.write(
219+
"Timed out waiting for VuMark template upload after retries\n"
220+
)
221+
driver.quit()
222+
driver = None
223+
continue
224+
171225
driver.quit()
172226
driver = None
173227

174228
file_contents = _generate_secrets_file_content(
175229
database_details=database_details,
176230
vumark_details=vumark_details,
177231
inactive_database_details=inactive_database_details,
232+
vumark_target_id=vumark_target_id,
178233
)
179234
file.write_text(data=file_contents)
180235
sys.stdout.write(f"Created database {file.name}\n")

admin/vumark_template.svg

Lines changed: 4 additions & 0 deletions
Loading

pyproject.toml

Lines changed: 1 addition & 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.17",
107+
"vws-web-tools==2026.2.17.1",
108108
"yamlfix==1.19.1",
109109
"zizmor==1.22.0",
110110
]

vuforia_secrets.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ INACTIVE_VUFORIA_CLIENT_ACCESS_KEY=<INACTIVE_CLIENT_ACCESS_KEY>
1515
INACTIVE_VUFORIA_CLIENT_SECRET_KEY=<INACTIVE_CLIENT_SECRET_KEY>
1616

1717
VUMARK_VUFORIA_TARGET_MANAGER_DATABASE_NAME=<VUMARK_DATABASE_NAME>
18+
VUMARK_VUFORIA_TARGET_ID=<SHARED_VUMARK_TARGET_ID>
1819

1920
VUMARK_VUFORIA_SERVER_ACCESS_KEY=<VUMARK_SERVER_ACCESS_KEY>
2021
VUMARK_VUFORIA_SERVER_SECRET_KEY=<VUMARK_SERVER_SECRET_KEY>

0 commit comments

Comments
 (0)