feat(odoo_scripts): remove odoo-user

This commit is contained in:
Janik von Rotz committed 2025-03-17 17:09:51 +01:00
1 parent aa1a984051
commit 7bdfdc0dca
7 files changed
+104 -91

No files matched your search

+102
View File
@@ -0,0 +1,102 @@
#!/bin/bash
set -e
# Get script name
SCRIPT=$(basename "$0")
VERSION="1.0.1"
# Display Help
Help() {
echo
echo "$SCRIPT"
echo
echo "Description: Backup Odoo database from container."
echo "Syntax: $SCRIPT [-d|-c|-f|-r|-u|-V|help]"
echo "Example: $SCRIPT -d erp-dev -c postgres01 -f tmp/erp.zip -r -p ~/.local/share/Odoo/filestore"
echo "options:"
echo " -d Database name. Defaults to filename."
echo " -c Postgres container. Defaults to 'odoo'."
echo " -f Odoo database backup file. Defaults to '/var/tmp/odoo.zip'."
echo " -r Replace existing database."
echo " -p Path to the filestore. Defaults to '~/.local/share/Odoo/filestore'"
echo " -V Show $SCRIPT version."
echo " help Show $SCRIPT manual."
echo
}
# Show help and exit
if [[ "$1" == "help" ]]; then
Help
exit
fi
# Check requiremements
command -v uuidgen >/dev/null 2>&1 || { echo >&2 "uuidgen not found: apt-get install uuid-runtime"; exit 1; }
# Initialise option flag with a false value
REPLACE='false'
# Process params
while getopts ":c: :d: :f: :r :p :V" opt; do
case $opt in
c) CONTAINER="$OPTARG";;
d) DATABASE="$OPTARG";;
f) FILE="$OPTARG";;
r) REPLACE='true';;
p) FILESTORE_PATH='true';;
V) echo "$SCRIPT version $VERSION"
exit 0
;;
\?) echo "Invalid option -$OPTARG" >&2
Help
exit;;
esac
done
# Fallback to environment vars and default values
: ${CONTAINER:='postgres'}
: ${FILE:='/var/tmp/odoo.zip'}
: ${FILESTORE_PATH:='~/.local/share/Odoo/filestore'}
# Get file and directory name
DIR=`dirname "$FILE"`
FILENAME=`basename "$FILE"`
: ${DATABASE:="${FILENAME::-4}"}
# Start restore
echo "Requesting restore for Odoo database from $FILENAME to $DATABASE ..."
# Set alias
docker_exec_bash="docker exec -e DATABASE=$DATABASE $CONTAINER /bin/bash -c"
docker_exec_root_bash="docker exec --user root -e DATABASE=$DATABASE $CONTAINER /bin/bash -c"
# Unip archive
echo "Unzip archive."
cd $DIR
unzip -q -o $FILENAME
# Clear database
if $REPLACE; then
echo "Remove filestore $FILESTORE_PATH/$DATABASE."
rm -rf "$FILESTORE_PATH/$DATABASE"
docker-postgres-drop -c "$CONTAINER" -d "$DATABASE"
fi
# Copy filestore
echo "Move filestore."
mv filestore "$FILESTORE_PATH/$DATABASE"
# Create database
echo "Create database $DATABASE."
docker exec "$CONTAINER" /bin/bash -c "createdb -U \$POSTGRES_USER -T template0 $DATABASE"
# Restore database
echo "Restore database from $DATABASE."
docker-postgres-restore -c "$CONTAINER" -d "$DATABASE" -f
# Remove source files
echo "Cleanup source files."
rm -rf dump.sql filestore
# Notify if backup has finished
echo "The restore for Odoo database $DATABASE has finished."
+1 -1
View File
@@ -15,7 +15,7 @@ Help() {
echo "Example: $SCRIPT -d erp-dev -c odoo06 -f tmp/erp.zip -r"
echo "options:"
echo " -d Database name. Defaults to filename."
echo " -c Docker container. Defaults to 'odoo'."
echo " -c Odoo container. Defaults to 'odoo'."
echo " -f Odoo database backup file. Defaults to '/var/tmp/odoo.zip'."
echo " -r Replace existing database."
echo " -u Update database uuid."
-1
View File
@@ -25,7 +25,6 @@ SCRIPTS=(
odoo-drop
odoo-duplicate
odoo-restore
odoo-user
)
for SCRIPT in ${SCRIPTS[@]}; do
+1 -12
View File
@@ -72,18 +72,7 @@ if [[ "${FILE: -3}" =~ "zip" ]]; then
fi
if $REPLACE; then
# Ask for confirmation
read -p "Please confirm the deletion of $DATABASE on $ODOO_HOST (y/n)? " REPLY
if [[ $REPLY == y ]]; then
echo "Deleting Odoo database $DATABASE ..."
curl \
--silent \
-F "master_pwd=${PASSWORD}" \
-F "name=${DATABASE}" \
${ODOO_HOST%/}/web/database/drop | grep -q -E 'Internal Server Error|Redirecting...'
fi
odoo-drop -p "$ODOO_MASTER_PASSWORD" -d "$DATABASE" -h "$ODOO_HOST"
fi
# Start restore
-75
View File
@@ -1,75 +0,0 @@
#!/bin/bash
set -e
# Get script name
SCRIPT=$(basename "$0")
VERSION="1.0.0"
# Display Help
Help() {
echo
echo "$SCRIPT"
echo
echo "Description: Manage Odoo users."
echo "Syntax: $SCRIPT [-d|-a[enable,disable,list]|-i|-V|help]"
echo "Example: $SCRIPT -d erp-dev -a enable -id janikvonrot@mint-system.ch"
echo "options:"
echo " -d Database name. Defaults to 'odoo'."
echo " -a Action to perform."
echo " -i User account login id."
echo " -V Show $SCRIPT version."
echo " help Show $SCRIPT manual."
echo
}
# Show help and exit
if [[ "$1" == "help" ]]; then
Help
exit
fi
# Process params
while getopts ":d: :a: :i: :V" opt; do
case $opt in
d) PGDATABASE="$OPTARG";;
a) ACTION="$OPTARG";;
i) ID="$OPTARG";;
V) echo "$SCRIPT version $VERSION"
exit 0
;;
\?) echo "Invalid option -$OPTARG" >&2
Help
exit;;
esac
done
# Fallback to environment vars and default values
: ${PGHOST:='localhost'}
: ${PGDATABASE:='odoo'}
: ${PGUSER:='odoo'}
: ${PGPASSWORD:='odoo'}
# Export environment variables for psql
export PGHOST
export PGDATABASE
export PGUSER
export PGPASSWORD
# Verify variables
[[ -z "$ACTION" ]] && { echo "Parameter -a|action is empty" ; exit 1; }
if [[ $ACTION == 'enable' ]]; then
[[ -z "$ID" ]] && { echo "Parameter -i|id is empty" ; exit 1; }
psql -c "UPDATE public.res_users SET active=true WHERE login='$ID';"
echo "Enabled user $ID on Odoo database $PGDATABASE."
fi
if [[ $ACTION == 'disable' ]]; then
[[ -z "$ID" ]] && { echo "Parameter -i|id is empty" ; exit 1; }
psql -c "UPDATE public.res_users SET active=false WHERE login='$ID';"
echo "Disabled user $ID on Odoo database $PGDATABASE."
fi
if [[ $ACTION == 'list' ]]; then
psql -c "SELECT login,active FROM public.res_users;"
fi
@@ -26,7 +26,6 @@
- odoo-drop
- odoo-duplicate
- odoo-restore
- odoo-user
- name: Remove deprecated {{ role_name }}
ansible.builtin.file:
-1
View File
@@ -37,7 +37,6 @@ curl -L https://raw.githubusercontent.com/mint-system/ansible-build/main/roles/o
- odoo-drop
- odoo-duplicate
- odoo-restore
- odoo-user
## [nginx](roles/nginx/README.md)