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.
- gitlab_runner_tart_driver/__init__.py +1 -1
- gitlab_runner_tart_driver/commands/prepare.py +70 -77
- {gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/METADATA +1 -1
- {gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/RECORD +8 -8
- {gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/LICENSE.txt +0 -0
- {gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/WHEEL +0 -0
- {gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/entry_points.txt +0 -0
- {gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.3.
|
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,
|
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:
|
{gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/RECORD
RENAMED
@@ -1,10 +1,10 @@
|
|
1
|
-
gitlab_runner_tart_driver/__init__.py,sha256=
|
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=
|
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.
|
16
|
-
gitlab_runner_tart_driver-0.3.
|
17
|
-
gitlab_runner_tart_driver-0.3.
|
18
|
-
gitlab_runner_tart_driver-0.3.
|
19
|
-
gitlab_runner_tart_driver-0.3.
|
20
|
-
gitlab_runner_tart_driver-0.3.
|
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,,
|
{gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/LICENSE.txt
RENAMED
File without changes
|
{gitlab_runner_tart_driver-0.3.6.dist-info → gitlab_runner_tart_driver-0.3.7.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|