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+
2227def _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+
99139def 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 " )
0 commit comments