gitlab-runner-tart-driver 0.3.5__py3-none-any.whl → 0.3.6__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- __version__ = "0.3.5"
1
+ __version__ = "0.3.6"
@@ -235,14 +235,32 @@ def prepare(
235
235
  for v in volumes:
236
236
  volume_mounts.append(TartVolume.from_string(v))
237
237
 
238
- _create_vm(
239
- tart_client=tart,
240
- vm_name=tart_vm_name,
241
- volume_mounts=volume_mounts,
242
- params=p,
243
- system_failure_exit_code=system_failure_exit_code,
244
- )
245
- _get_vm_ip(tart_client=tart, vm_name=tart_vm_name, params=p, system_failure_exit_code=system_failure_exit_code)
238
+ max_retries = 3
239
+ retry_count = 0
240
+ while True:
241
+ try:
242
+ _create_vm(
243
+ tart_client=tart,
244
+ vm_name=tart_vm_name,
245
+ volume_mounts=volume_mounts,
246
+ params=p,
247
+ system_failure_exit_code=system_failure_exit_code,
248
+ )
249
+ _get_vm_ip(
250
+ tart_client=tart, vm_name=tart_vm_name, params=p, system_failure_exit_code=system_failure_exit_code
251
+ )
252
+ break
253
+ except Exception:
254
+ if retry_count < max_retries:
255
+ retry_count += 1
256
+ click.secho(
257
+ "[WARNING] VM Coult not be started. Retrying...",
258
+ fg="yellow",
259
+ )
260
+ else:
261
+ click.secho(f"[ERROR] VM '{tart_vm_name}' could not be started.")
262
+ sys.exit(system_failure_exit_code)
263
+
246
264
  ssh_session = _create_ssh_session(
247
265
  tart_client=tart, vm_name=tart_vm_name, params=p, system_failure_exit_code=system_failure_exit_code
248
266
  )
@@ -288,37 +306,41 @@ def prepare(
288
306
 
289
307
 
290
308
  def _create_vm(
291
- tart_client, vm_name, volume_mounts, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=5
309
+ tart_client, vm_name, volume_mounts, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=10
292
310
  ):
311
+ # ensure that the VM is not running
293
312
  try:
294
- tart_client.run(vm_name, volume_mounts, no_graphics=params.headless, softnet=params.softnet_enabled)
295
- # check if vm is listed
296
- retry_count = 0
297
- while True:
298
- try:
299
- vm = tart_client.get(vm_name)
300
- if vm:
301
- click.echo(f"[INFO] VM '{vm_name}' is running")
302
- break
303
- else:
304
- raise Exception("VM not found")
305
- except Exception:
306
- if retry_count < max_retries:
307
- retry_count += 1
308
- click.secho(
309
- f"[WARNING] Failed to get IP of VM '{vm_name}'. [{retry_count+1}/{max_retries}] Retrying in '{retry_timeout_in_sec}' seconds...",
310
- fg="yellow",
311
- )
312
- time.sleep(retry_timeout_in_sec)
313
- else:
314
- click.secho(f"[ERROR] VM '{vm_name}' could not be started.")
315
- sys.exit(system_failure_exit_code)
313
+ tart_client.delete(vm_name)
316
314
  except Exception:
317
- click.secho(f"[ERROR] Failed to start VM '{vm_name}'", fg="red")
318
- sys.exit(system_failure_exit_code)
315
+ pass
319
316
 
317
+ tart_client.run(vm_name, volume_mounts, no_graphics=params.headless, softnet=params.softnet_enabled)
318
+ time.sleep(10) # give the VM some time to start
320
319
 
321
- def _get_vm_ip(tart_client, vm_name, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=5):
320
+ # check if vm is listed
321
+ retry_count = 0
322
+ while True:
323
+ try:
324
+ vm = tart_client.get(vm_name)
325
+ if vm:
326
+ click.echo(f"[INFO] VM '{vm_name}' is running")
327
+ break
328
+ else:
329
+ raise Exception("VM not found")
330
+ except Exception:
331
+ if retry_count < max_retries:
332
+ retry_count += 1
333
+ click.secho(
334
+ f"[WARNING] VM with name '{vm_name}' was not found. Retrying in '{retry_timeout_in_sec}' seconds...",
335
+ fg="yellow",
336
+ )
337
+ time.sleep(retry_timeout_in_sec)
338
+ else:
339
+ click.secho(f"[ERROR] VM '{vm_name}' could not be started.")
340
+ raise Exception("VM not found")
341
+
342
+
343
+ def _get_vm_ip(tart_client, vm_name, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=10):
322
344
  retry_count = 0
323
345
  while True:
324
346
  try:
@@ -331,18 +353,18 @@ def _get_vm_ip(tart_client, vm_name, params, system_failure_exit_code, max_retri
331
353
  if retry_count < max_retries:
332
354
  retry_count += 1
333
355
  click.secho(
334
- f"[WARNING] VM with name '{vm_name}' was not found. Retrying in '{retry_timeout_in_sec}' seconds...",
356
+ f"[WARNING] Failed to get IP of VM '{vm_name}'. [{retry_count+1}/{max_retries}] Retrying in '{retry_timeout_in_sec}' seconds...",
335
357
  fg="yellow",
336
358
  )
337
359
  time.sleep(retry_timeout_in_sec)
338
360
  else:
339
361
  click.secho(f"[ERROR] Failed to get IP of VM '{vm_name}'.")
340
- sys.exit(system_failure_exit_code)
362
+ raise Exception("VM IP not found")
341
363
 
342
364
  return vm_ip_address
343
365
 
344
366
 
345
- def _create_ssh_session(tart_client, vm_name, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=5):
367
+ def _create_ssh_session(tart_client, vm_name, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=10):
346
368
  ssh_session = None
347
369
  retry_count = 0
348
370
  while True:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gitlab-runner-tart-driver
3
- Version: 0.3.5
3
+ Version: 0.3.6
4
4
  Home-page: https://gitlab.com/schmieder.matthias/gitlab-runner-tart-driver
5
5
  Author: Matthias Schmieder
6
6
  Author-email: schmieder.matthias@gmail.com
@@ -1,10 +1,10 @@
1
- gitlab_runner_tart_driver/__init__.py,sha256=ThnCuF3X7rsQSd5PAea_jfYA70ZmhLvkFcLBxBPwZnY,22
1
+ gitlab_runner_tart_driver/__init__.py,sha256=W_9dCm49nLvZulVAvvsafxLJjVBSKDBHz9K7szFZllo,22
2
2
  gitlab_runner_tart_driver/__main__.py,sha256=FiyMv64vDC-R8i3CGEP9QP48djZFHm7utyChwZJWCeY,107
3
3
  gitlab_runner_tart_driver/cli.py,sha256=rCtFzi7i4JUX7VXteBHyII4sEbMzpn8SIpyjyKrQCBI,592
4
4
  gitlab_runner_tart_driver/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
5
  gitlab_runner_tart_driver/commands/cleanup.py,sha256=nFe7TGdxsVSXNR9onm-3iCjmUo6SzujV5LrA_y439fs,1422
6
6
  gitlab_runner_tart_driver/commands/config.py,sha256=cacJ9ms5r3nZGZ_sS2d21Uoz7S-bMjB__lORUmeXZ-4,760
7
- gitlab_runner_tart_driver/commands/prepare.py,sha256=JTxTlPnPELC9C2TMOLqvcu23jOL0sofMxdp9OwpfddU,13964
7
+ gitlab_runner_tart_driver/commands/prepare.py,sha256=hLybN4q-ppFeOs-DxJfv2Y4uVXJvTaJGNap_c7PZOeg,14488
8
8
  gitlab_runner_tart_driver/commands/run.py,sha256=kXQxi8nxv6QQRFzGrlqifLtFtbjXAYgjCiMVqXkb2_A,3065
9
9
  gitlab_runner_tart_driver/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  gitlab_runner_tart_driver/modules/gitlab_custom_command_config.py,sha256=XvE83QmQUcqtVMYZY3okGOgO86DBX6Y7xhXNenmKxFY,3086
@@ -12,9 +12,9 @@ gitlab_runner_tart_driver/modules/gitlab_custom_driver_config.py,sha256=ujxlzP1Z
12
12
  gitlab_runner_tart_driver/modules/tart.py,sha256=rD6IPtpz57dwsPGVBWaeKeVoqI1MoBvdtkqozXgmAxA,9914
13
13
  gitlab_runner_tart_driver/modules/utils.py,sha256=7ipKjy_5tC5iW67Na_A9XhF4o2lKcAqO8LRTTSJKNd0,923
14
14
  gitlab_runner_tart_driver/scripts/install-gitlab-runner.sh.j2,sha256=-rBzxZ92w7lMrTCVcjMHhlZgqPIK1RJKVoOc2wjZvck,2533
15
- gitlab_runner_tart_driver-0.3.5.dist-info/LICENSE.txt,sha256=TiYXQpEfbzcPBNGb7k1NslUngq_un-5cxGyT4W1S_f4,3303
16
- gitlab_runner_tart_driver-0.3.5.dist-info/METADATA,sha256=dI44fmUwC6k_iCygHAOKtp31CoAKM7uBme8-OPdYVo0,20705
17
- gitlab_runner_tart_driver-0.3.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
18
- gitlab_runner_tart_driver-0.3.5.dist-info/entry_points.txt,sha256=xmvpGQf1wvFPy5wqDWXu8k5FD_k9KkCNCkpuworTsr0,82
19
- gitlab_runner_tart_driver-0.3.5.dist-info/top_level.txt,sha256=JjRzCs2sr24xG4SV_5tIBPpNC1Tec7I4AbK4IKMDqOc,26
20
- gitlab_runner_tart_driver-0.3.5.dist-info/RECORD,,
15
+ gitlab_runner_tart_driver-0.3.6.dist-info/LICENSE.txt,sha256=TiYXQpEfbzcPBNGb7k1NslUngq_un-5cxGyT4W1S_f4,3303
16
+ gitlab_runner_tart_driver-0.3.6.dist-info/METADATA,sha256=Dnxtm1KtThyxjTt3AJsm2QVnFE2jGQ8NLCJWo-9ns9c,20705
17
+ gitlab_runner_tart_driver-0.3.6.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
18
+ gitlab_runner_tart_driver-0.3.6.dist-info/entry_points.txt,sha256=xmvpGQf1wvFPy5wqDWXu8k5FD_k9KkCNCkpuworTsr0,82
19
+ gitlab_runner_tart_driver-0.3.6.dist-info/top_level.txt,sha256=JjRzCs2sr24xG4SV_5tIBPpNC1Tec7I4AbK4IKMDqOc,26
20
+ gitlab_runner_tart_driver-0.3.6.dist-info/RECORD,,