diff --git a/files/opendsa/on_update.sh b/files/opendsa/on_update.sh index 5cd50b8f34ff1ec3e93474e952eebbec7b32f104..a2912aae220747d95ecc6e82aec52d83e3c0d9fa 100644 --- a/files/opendsa/on_update.sh +++ b/files/opendsa/on_update.sh @@ -8,7 +8,15 @@ update_pip_fn=$(cat <<'EOF' cd python3 -m pip install --user -r OpenDSA/server/requirements.txt + +# Initialize the DB if required. +if [[ ! -f OpenDSA/server/openDSA.db ]] +then + cd OpenDSA/server/ + ./main.py init_db +fi EOF +) # Run PIP as OpenDSA. sudo --user opendsa --group opendsa --set-home -- bash -c "$update_pip_fn" diff --git a/files/update_repo.sh b/files/update_repo.sh index 5efd735e62373f0a36c7225ad512fce849994da4..c871f416b5e32be90723fca95003573861de992e 100755 --- a/files/update_repo.sh +++ b/files/update_repo.sh @@ -90,7 +90,7 @@ then if [[ ! -z "$REPO_ON_UPDATE" ]] then # Run it if it is there. - $REPO_ON_UPDATE + eval "$REPO_ON_UPDATE" fi exit 0 else diff --git a/manifests/aes_broker.pp b/manifests/aes_broker.pp index 89adf822716dfb41c0f99919456c7968f6256106..8b7ab129dd6fa749630db8ded1192c0a6f3514f2 100644 --- a/manifests/aes_broker.pp +++ b/manifests/aes_broker.pp @@ -22,7 +22,7 @@ class aes::aes_broker { user { "${broker_user}" : ensure => present, - home => "${broker_user}", + home => "${broker_home}", comment => 'Message broker for AES', managehome => false, membership => inclusive, diff --git a/manifests/opendsa.pp b/manifests/opendsa.pp index 448eb548359dead713c0a92571603707038821df..fc2662a2e195818c7ee9edeb4adbf103159b5d46 100644 --- a/manifests/opendsa.pp +++ b/manifests/opendsa.pp @@ -27,12 +27,20 @@ class aes::opendsa { ensure => present, owner => root, group => root, - mode => '0600', + mode => '0700', source => "puppet:///modules/${module_name}/opendsa/on_update.sh", } + file { "/etc/systemd/system/${opendsa_service}.service": + ensure => present, + owner => root, + group => root, + mode => '0644', + source => "puppet:///modules/${module_name}/opendsa/opendsa.service", + } + exec { 'update-repo': - command => "/opt/utils/update_repo.sh ${opendsa_home}/OpenDSA https://oauth2:taNPRZid9Hv6jJtdW_T8@gitlab.liu.se:opendsa/OpenDSA.git exam", + command => "/opt/utils/update_repo.sh ${opendsa_home}/OpenDSA https://oauth2:taNPRZid9Hv6jJtdW_T8@gitlab.liu.se/opendsa/OpenDSA.git exam", environment => [ "REPO_USER=${opendsa_user}", "REPO_GROUP=${opendsa_group}", "REPO_ON_UPDATE=${opendsa_home}/on_update.sh" ], # This command will need to run "on_update" as root in order to restart the service. user => root, @@ -48,20 +56,15 @@ class aes::opendsa { source => "puppet:///modules/${module_name}/opendsa/manage.sh", } - exec { "${opendsa_home}/OpenDSA/server/main.py init_db" : - cwd => "${opendsa_home}/OpenDSA/server/", - creates => "${opendsa_home}/OpenDSA/server/openDSA.db", - user => "${opendsa_user}", - group => "${opendsa_group}", + # Temporary! + file { '/opt/utils/update_repo.sh': + ensure => file, + mode => '0755', + owner => root, + group => root, + content => file("${module_name}/update_repo.sh"), } - file { "/etc/systemd/system/${opendsa_service}.service": - ensure => present, - owner => root, - group => root, - mode => '0644', - source => "puppet:///modules/${module_name}/opendsa/opendsa.service", - } # Do we need port 12000 open? NO service { "${opendsa_service}" :