Skip to content

Commit

Permalink
Fix #435: various fixes for vm_devbox
Browse files Browse the repository at this point in the history
- make sure username is usable as a hostname
- install run_d (/srv/vm_devbox_<username>)
  • Loading branch information
e-carlin committed Jan 31, 2024
1 parent 86f721f commit 07a6e0c
Show file tree
Hide file tree
Showing 11 changed files with 25 additions and 15 deletions.
8 changes: 8 additions & 0 deletions rsconf/component/vm_devbox.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,18 @@
from pykern.pkdebug import pkdp
from rsconf import component
from rsconf import systemd
import re

# Allowable pattern enforced by vagrant
_VM_HOSTNAME_RE = "[a-z0-9][a-z0-9.-]*"


class T(component.T):
def internal_build_compile(self):
def _create_user_instances():
for u in self.hdb.vm_devbox.users:
if not re.match(_VM_HOSTNAME_RE, u):
raise AssertionError(f"usernmae={u} must match /{_VM_HOSTNAME_RE}/")
self.buildt.build_component(
T(
f"{self.module_name}_{u}",
Expand Down Expand Up @@ -46,6 +52,8 @@ def internal_build_write(self):
return
jc = self.j2_ctx
z = jc[self.name]
self.install_access(mode="700", owner=z.run_u)
self.install_directory(z.run_d)
self.install_access(mode="500", owner=z.run_u)
self.install_resource("vm_devbox/start.sh", host_path=z.start_f)
self.install_access(mode="444", owner=jc.rsconf_db.root_u)
Expand Down
2 changes: 1 addition & 1 deletion rsconf/package_data/vm_devbox/start.sh.jinja
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
set -eou pipefail

vm_devbox_first_start() {
vm_devbox_create_vm() {
if [[ -e Vagrantfile ]]; then
return
fi
Expand Down
4 changes: 2 additions & 2 deletions tests/pkcli/build_data/1.in/db/000.yml
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ default:
timezone: America/Phoenix
vm_devbox_users:
spec:
user_1:
user-1:
ssh_port: 11110

channel:
Expand Down Expand Up @@ -611,7 +611,7 @@ host:
vm_devbox:
vm_parent_domain: radia.run
users:
- user_1
- user-1

# testing named needs build-perl-rpms.sh
# - bivio_named
Expand Down
2 changes: 1 addition & 1 deletion tests/pkcli/build_data/1.out/srv/host/v9.radia.run/000.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ rsconf_require sirepo_jupyterhub
rsconf_require sirepo_job_supervisor
rsconf_require sirepo
rsconf_require sirepo_test_http
rsconf_require vm_devbox_user_1
rsconf_require vm_devbox_user-1
rsconf_require vm_devbox
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
#!/bin/bash
set -eou pipefail

vm_devbox_first_start() {
vm_devbox_create_vm() {
if [[ -e Vagrantfile ]]; then
return
fi
curl 'https://radia.run' | vagrant_dev_vm_devbox=1 bash -s vagrant-sirepo-dev 'user_1.radia.run'
curl 'https://radia.run' | vagrant_dev_vm_devbox=1 bash -s vagrant-sirepo-dev 'user-1.radia.run'
}

vm_devbox_main() {
cd /srv/vm_devbox_user_1
cd /srv/vm_devbox_user-1
vm_devbox_create_vm
vm_devbox_set_forwarded_port
vm_devbox_set_ssh_config
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash
vm_devbox_user-1_rsconf_component() {
rsconf_service_prepare 'vm_devbox_user-1' '/etc/systemd/system/vm_devbox_user-1.service' '/etc/systemd/system/vm_devbox_user-1.service.d' '/srv/vm_devbox_user-1/start'
rsconf_install_access '700' 'vagrant' 'vagrant'
rsconf_install_directory '/srv/vm_devbox_user-1'
rsconf_install_access '500' 'vagrant' 'vagrant'
rsconf_install_file '/srv/vm_devbox_user-1/start' '46de8c2ad8e5fcb3d074110e25d70136'
rsconf_install_access '444' 'root' 'root'
rsconf_install_file '/etc/systemd/system/vm_devbox_user-1.service' '1bd0318206a0d747ce7ab0247d1d6b39'
}

This file was deleted.

0 comments on commit 07a6e0c

Please sign in to comment.