From 2f682f8bd8e848f9c11d90ba8c268ff95075244f Mon Sep 17 00:00:00 2001 From: Magnus Andersson Date: Fri, 30 Aug 2024 08:57:17 +0200 Subject: [PATCH] multinode-db1: Add logic and template to create userlists by department. --- manifests/multinode_db.pp | 10 ++++++++++ templates/mariadb/genuserdeplists.sh.erb | 22 +--------------------- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/manifests/multinode_db.pp b/manifests/multinode_db.pp index c373e0b..f10c50d 100644 --- a/manifests/multinode_db.pp +++ b/manifests/multinode_db.pp @@ -18,6 +18,9 @@ class sunetdrive::multinode_db(){ notify { 'hostmessage': message => 'We are on multinode-db1. Set up statistics environment.', } + $custdata=$customers.reduce({}) |$memo, $value| { + $memo + {$value => lookup($value)} + } $rclone_url = 'https://downloads.rclone.org/rclone-current-linux-amd64.deb' $local_path = '/tmp/rclone-current-linux-amd64.deb' exec { 'rclone_deb': @@ -44,5 +47,12 @@ class sunetdrive::multinode_db(){ group => 'root', mode => '0700', } + file { '/root/tasks/genusersondepartmentlists.sh': + ensure => file, + content => template('sunetdrive/mariadb/genuserdeplists.sh.erb'), + owner => 'root', + group => 'root', + mode => '0700', + } } } diff --git a/templates/mariadb/genuserdeplists.sh.erb b/templates/mariadb/genuserdeplists.sh.erb index 78f4c90..dc2f5eb 100644 --- a/templates/mariadb/genuserdeplists.sh.erb +++ b/templates/mariadb/genuserdeplists.sh.erb @@ -1,32 +1,12 @@ #!/bin/bash -<% basedir="statistics:drive-server-coms" -%> -<% cupath="/opt/mariadb/statistics/users/" -%> -<% custdata="/opt/mariadb/statistics/custdata.json" -%> -status=0 - <% @custdata.each do |cust,data| -%> #Customer <%= cust %> has no billing departments. <% if defined?(data[@environment]["billdomains"]) && data[@environment]["billdomains"] -%> mkdir -p /opt/mariadb/statistics/users/<%= cust %> chmod '0700' /opt/mariadb/statistics/users/<%= cust %> <% data[@environment]["billdomains"].each do |dom| -%> -/root/tasks/listusersbydep.sh <%= cust %> <%= dom %> > /opt/mariadb/statistics/users/<%= cust %>/users-<%= dom.gsub(/[.]/, '-') %>.json -if jq . <%= cupath + cust %>/users-<%= dom.gsub(/[.]/, '-') %>.json &>/dev/null -then - timeout 30s rclone copy -c --no-check-certificate --webdav-headers "Host,sunet.drive.sunet.se" --use-cookies <%= cupath + cust %>/users-<%= dom.gsub(/[.]/, '-') %>.json <%= basedir%>/<%= cust %>-<%= @environment%>/ - [[ $? -eq 0 ]] || { status=1 ; echo "Error: Upload of user data failed." ; } -else - echo "Error in json data" - status=1 -fi + /root/tasks/listusersbydep.sh <%= cust %> <%= dom %> > /opt/mariadb/statistics/users/<%= cust %>/users-<%= dom.gsub(/[.]/, '-') %>.json <% end -%> <% end -%> <% end -%> - -if [[ -f <%= custdata %> ]] -then - timeout 30s rclone copy -c --no-check-certificate --webdav-headers "Host,sunet.drive.sunet.se" --use-cookies <%= custdata %> <%= basedir%>/ -fi - -exit ${status}