gitlab-runner-tart-driver 0.3.6__py3-none-any.whl → 0.3.7__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.6"
1
+ __version__ = "0.3.7"
@@ -171,84 +171,84 @@ def prepare(
171
171
  ######################################################################
172
172
  # Create VM
173
173
  ######################################################################
174
- tart_vm_name = p.vm_name()
175
- if tart_vm_name in tart_vm_map:
176
- if tart_vm_map[tart_vm_name].running:
177
- click.echo(f"[INFO] Found running VM '{tart_vm_name}'. Going to stop it...")
178
- tart.stop(tart_vm_name)
179
- click.echo(f"[INFO] Found VM '{tart_vm_name}'. Going to delete it...")
180
- tart.delete(tart_vm_name)
181
-
182
- # verfiy that the limit of running VMs is not exceeded
183
- list_running_vms = []
184
- for vm in tart.list():
185
- if vm.running:
186
- list_running_vms.append(vm)
187
-
188
- if len(list_running_vms) > p.tart_max_vm_count:
189
- click.secho(
190
- f"[ERROR] The limit of running VMs [{p.tart_max_vm_count}] is exceeded [{len(list_running_vms)}].", fg="red"
191
- )
192
- sys.exit(system_failure_exit_code)
193
-
194
- click.echo(f"[INFO] Cloning VM instance '{tart_vm_name}' from '{p.ci_job_image}'")
195
- try:
196
- tart.clone(p.ci_job_image, tart_vm_name)
197
- except:
198
- click.secho(f"[ERROR] failed to clone image f'{p.ci_job_image}'", fg="red")
199
- sys.exit(system_failure_exit_code)
200
-
201
- if cpu or memory or p.display:
202
- click.echo(f"[INFO] Configuring instance '{tart_vm_name}' from '{p.ci_job_image}'")
203
- click.echo(
204
- f"[INFO] {tart_vm_name} [cpu={cpu if cpu else 'default'}, memory={memory if memory else 'default'}, display={p.display if p.display else 'default'}]"
205
- )
206
- tart.set(tart_vm_name, cpu=cpu, memory=memory, display=display)
207
- elif auto_resources:
208
- click.echo("[INFO] Auto resource-disribution enabled.")
209
- host_spec = get_host_spec()
210
- tart.set(tart_vm_name, cpu=int(host_spec.cpu_count / concurrency), memory=int(host_spec.memory / concurrency))
211
-
212
- click.echo(f"[INFO] Starting VM instance '{tart_vm_name}'")
213
-
214
- remote_build_dir = "/opt/builds"
215
- remote_script_dir = "/opt/temp"
216
- remote_cache_dir = "/opt/cache"
217
-
218
- volume_mounts = []
219
- if cache_dir:
220
- cache_dir = os.path.abspath(os.path.expanduser(cache_dir))
221
- os.makedirs(cache_dir, exist_ok=True)
222
- click.echo(f"[INFO] Cache directory set to '{cache_dir}'")
223
- volume_mounts.append(TartVolume(source=cache_dir, dest=remote_cache_dir, name="cache", ro=False))
224
- if builds_dir:
225
- # Concurrency compatible builds directory
226
- # see https://docs.gitlab.com/runner/executors/shell.html#run-scripts-as-a-privileged-user
227
- # <builds_dir>/<short-token>/<concurrent-id>/<namespace>/<project-name>.
228
- builds_dir = os.path.join(
229
- os.path.abspath(os.path.expanduser(builds_dir)), p.ci_runner_short_token, p.ci_concurrent_project_id
230
- )
231
- os.makedirs(builds_dir, exist_ok=True)
232
- click.echo(f"[INFO] Builds directory set to '{builds_dir}'")
233
- volume_mounts.append(TartVolume(source=builds_dir, dest=remote_build_dir, name="builds", ro=False))
234
-
235
- for v in volumes:
236
- volume_mounts.append(TartVolume.from_string(v))
237
-
238
174
  max_retries = 3
239
175
  retry_count = 0
240
176
  while True:
241
177
  try:
178
+ tart_vm_name = p.vm_name()
179
+ if tart_vm_name in tart_vm_map:
180
+ if tart_vm_map[tart_vm_name].running:
181
+ click.echo(f"[INFO] Found running VM '{tart_vm_name}'. Going to stop it...")
182
+ tart.stop(tart_vm_name)
183
+ click.echo(f"[INFO] Found VM '{tart_vm_name}'. Going to delete it...")
184
+ tart.delete(tart_vm_name)
185
+
186
+ # verfiy that the limit of running VMs is not exceeded
187
+ list_running_vms = []
188
+ for vm in tart.list():
189
+ if vm.running:
190
+ list_running_vms.append(vm)
191
+
192
+ if len(list_running_vms) > p.tart_max_vm_count:
193
+ click.secho(
194
+ f"[ERROR] The limit of running VMs [{p.tart_max_vm_count}] is exceeded [{len(list_running_vms)}].",
195
+ fg="red",
196
+ )
197
+ sys.exit(system_failure_exit_code)
198
+
199
+ click.echo(f"[INFO] Cloning VM instance '{tart_vm_name}' from '{p.ci_job_image}'")
200
+ try:
201
+ tart.clone(p.ci_job_image, tart_vm_name)
202
+ except:
203
+ click.secho(f"[ERROR] failed to clone image f'{p.ci_job_image}'", fg="red")
204
+ sys.exit(system_failure_exit_code)
205
+
206
+ if cpu or memory or p.display:
207
+ click.echo(f"[INFO] Configuring instance '{tart_vm_name}' from '{p.ci_job_image}'")
208
+ click.echo(
209
+ f"[INFO] {tart_vm_name} [cpu={cpu if cpu else 'default'}, memory={memory if memory else 'default'}, display={p.display if p.display else 'default'}]"
210
+ )
211
+ tart.set(tart_vm_name, cpu=cpu, memory=memory, display=display)
212
+ elif auto_resources:
213
+ click.echo("[INFO] Auto resource-disribution enabled.")
214
+ host_spec = get_host_spec()
215
+ tart.set(
216
+ tart_vm_name, cpu=int(host_spec.cpu_count / concurrency), memory=int(host_spec.memory / concurrency)
217
+ )
218
+
219
+ click.echo(f"[INFO] Starting VM instance '{tart_vm_name}'")
220
+
221
+ remote_build_dir = "/opt/builds"
222
+ remote_script_dir = "/opt/temp"
223
+ remote_cache_dir = "/opt/cache"
224
+
225
+ volume_mounts = []
226
+ if cache_dir:
227
+ cache_dir = os.path.abspath(os.path.expanduser(cache_dir))
228
+ os.makedirs(cache_dir, exist_ok=True)
229
+ click.echo(f"[INFO] Cache directory set to '{cache_dir}'")
230
+ volume_mounts.append(TartVolume(source=cache_dir, dest=remote_cache_dir, name="cache", ro=False))
231
+ if builds_dir:
232
+ # Concurrency compatible builds directory
233
+ # see https://docs.gitlab.com/runner/executors/shell.html#run-scripts-as-a-privileged-user
234
+ # <builds_dir>/<short-token>/<concurrent-id>/<namespace>/<project-name>.
235
+ builds_dir = os.path.join(
236
+ os.path.abspath(os.path.expanduser(builds_dir)), p.ci_runner_short_token, p.ci_concurrent_project_id
237
+ )
238
+ os.makedirs(builds_dir, exist_ok=True)
239
+ click.echo(f"[INFO] Builds directory set to '{builds_dir}'")
240
+ volume_mounts.append(TartVolume(source=builds_dir, dest=remote_build_dir, name="builds", ro=False))
241
+
242
+ for v in volumes:
243
+ volume_mounts.append(TartVolume.from_string(v))
244
+
242
245
  _create_vm(
243
246
  tart_client=tart,
244
247
  vm_name=tart_vm_name,
245
248
  volume_mounts=volume_mounts,
246
249
  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
250
  )
251
+ _get_vm_ip(tart_client=tart, vm_name=tart_vm_name, params=p)
252
252
  break
253
253
  except Exception:
254
254
  if retry_count < max_retries:
@@ -305,15 +305,8 @@ def prepare(
305
305
  sys.exit(0)
306
306
 
307
307
 
308
- def _create_vm(
309
- tart_client, vm_name, volume_mounts, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=10
310
- ):
308
+ def _create_vm(tart_client, vm_name, volume_mounts, params, max_retries=3, retry_timeout_in_sec=10):
311
309
  # ensure that the VM is not running
312
- try:
313
- tart_client.delete(vm_name)
314
- except Exception:
315
- pass
316
-
317
310
  tart_client.run(vm_name, volume_mounts, no_graphics=params.headless, softnet=params.softnet_enabled)
318
311
  time.sleep(10) # give the VM some time to start
319
312
 
@@ -340,7 +333,7 @@ def _create_vm(
340
333
  raise Exception("VM not found")
341
334
 
342
335
 
343
- def _get_vm_ip(tart_client, vm_name, params, system_failure_exit_code, max_retries=3, retry_timeout_in_sec=10):
336
+ def _get_vm_ip(tart_client, vm_name, params, max_retries=3, retry_timeout_in_sec=10):
344
337
  retry_count = 0
345
338
  while True:
346
339
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gitlab-runner-tart-driver
3
- Version: 0.3.6
3
+ Version: 0.3.7
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=W_9dCm49nLvZulVAvvsafxLJjVBSKDBHz9K7szFZllo,22
1
+ gitlab_runner_tart_driver/__init__.py,sha256=J0I0c7-a50EOnWXMryTu_E6xhXSYFBPjVpeYP_a3vRI,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=hLybN4q-ppFeOs-DxJfv2Y4uVXJvTaJGNap_c7PZOeg,14488
7
+ gitlab_runner_tart_driver/commands/prepare.py,sha256=UQikIoLpZFWEM3BZQYb36S2x67ElkE4amCTBSqZIyKI,14700
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.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,,
15
+ gitlab_runner_tart_driver-0.3.7.dist-info/LICENSE.txt,sha256=TiYXQpEfbzcPBNGb7k1NslUngq_un-5cxGyT4W1S_f4,3303
16
+ gitlab_runner_tart_driver-0.3.7.dist-info/METADATA,sha256=a4QxViHAnAJHDhluxbeEz7XHt0gITfK1ostJNqjNIzM,20705
17
+ gitlab_runner_tart_driver-0.3.7.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
18
+ gitlab_runner_tart_driver-0.3.7.dist-info/entry_points.txt,sha256=xmvpGQf1wvFPy5wqDWXu8k5FD_k9KkCNCkpuworTsr0,82
19
+ gitlab_runner_tart_driver-0.3.7.dist-info/top_level.txt,sha256=JjRzCs2sr24xG4SV_5tIBPpNC1Tec7I4AbK4IKMDqOc,26
20
+ gitlab_runner_tart_driver-0.3.7.dist-info/RECORD,,