neuer Versuch uninstall modules via rpc
Some checks failed
odoo-restore-open_workshop-install / run-odoo-backup-in-docker (push) Failing after 1m24s
Some checks failed
odoo-restore-open_workshop-install / run-odoo-backup-in-docker (push) Failing after 1m24s
This commit is contained in:
parent
42faa68903
commit
7dbd9e8f12
|
|
@ -7,9 +7,7 @@ on:
|
|||
- 13.0_dev
|
||||
|
||||
env:
|
||||
URL_BACKUP: https://odoo.lan.hobbyhimmel.de
|
||||
URL_RESTORE: http://hobbybackend2.fritz.box:9013
|
||||
REGISTRY: gitea.lan.hobbyhimmel.de
|
||||
|
||||
jobs:
|
||||
run-odoo-backup-in-docker:
|
||||
|
|
@ -115,11 +113,14 @@ jobs:
|
|||
|
||||
- name: Uninstall vvow_pos
|
||||
run: |
|
||||
echo "Odoo DB Name: ${{ env.DB_NAME }}"
|
||||
docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c "
|
||||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
/opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME }} < uninstall_vvow_pos.py"
|
||||
|
||||
docker exec -e ODOO_URL=${{ env.URL_RESTORE }} \
|
||||
-e ODOO_DB=${{ env.DB_NAME }} \
|
||||
-e ODOO_USERNAME=${{ secrets.ODOO_ADMIN }} \
|
||||
-e ODOO_PASSWORD=${{ secrets.ODOO_ADMIN_PASSWORD }} \
|
||||
hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} \
|
||||
/bin/bash -c "
|
||||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
python3 uninstall_rpc.py vvow_pos"
|
||||
|
||||
- name: Fix Database hobbyhimmel with fix_missing_pos_partner.py
|
||||
# In diesem Schritt wird das Skript `fix_missing_pos_partner.py` ausgeführt, um sicherzustellen, dass alle Partner in der Datenbank korrekt sind.
|
||||
|
|
@ -141,47 +142,13 @@ jobs:
|
|||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
/opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME }} < import_machine_products.py"
|
||||
|
||||
- name: Stoppe Odoo-Container
|
||||
run: docker stop hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }}
|
||||
|
||||
- name: Erstelle temporäres Image vom gestoppten Container
|
||||
run: docker commit hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} temp-odoo-uninstall:${{ env.ODOO_VERSION }}
|
||||
|
||||
- name: Starte temporären Container im Leerlauf
|
||||
- name: Uninstall vvow_einweisungen
|
||||
run: |
|
||||
docker run -d --rm \
|
||||
--name odoo_uninstall \
|
||||
-v hobbyhimmel_odoo_13_dev_odoo:/home/odoo \
|
||||
--network hobbyhimmel_odoo_13_dev_default \
|
||||
-e PGHOST=${{ env.DB_HOST }} \
|
||||
-e PGPORT=${{ env.DB_PORT }} \
|
||||
-e PGUSER=${{ env.DB_USER }} \
|
||||
-e PGPASSWORD=${{ env.DB_PASSWORD }} \
|
||||
temp-odoo-uninstall:${{ env.ODOO_VERSION }} \
|
||||
tail -f /dev/null
|
||||
|
||||
# Warte kurz, bis der Container vollständig läuft
|
||||
sleep 5
|
||||
|
||||
- name: Modul vvow_einweisungen deinstallieren
|
||||
run: |
|
||||
docker exec odoo_uninstall \
|
||||
/opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME }} < /home/odoo/custom_addons/open_workshop/scripts/uninstall_vvow_einweisungen.py
|
||||
|
||||
- name: Stoppe temporären Container
|
||||
run: docker stop odoo_uninstall
|
||||
|
||||
- name: Starte regulären Odoo-Container wieder
|
||||
run: docker start hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }}
|
||||
|
||||
# - name: Pause vor dem Deinstallieren von vvow_einweisungen
|
||||
# run: sleep 120
|
||||
|
||||
# - name: Uninstall vvow_einweisungen
|
||||
# run: |
|
||||
# docker exec hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} /bin/bash -c "
|
||||
# cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
# /opt/odoo/odoo/odoo-bin shell -d ${{ env.DB_NAME }} < uninstall_vvow_einweisungen.py"
|
||||
# docker restart hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }}
|
||||
|
||||
|
||||
docker exec -e ODOO_URL=${{ env.URL_RESTORE }} \
|
||||
-e ODOO_DB=${{ env.DB_NAME }} \
|
||||
-e ODOO_USERNAME=${{ secrets.ODOO_ADMIN }} \
|
||||
-e ODOO_PASSWORD=${{ secrets.ODOO_ADMIN_PASSWORD }} \
|
||||
hobbyhimmel_odoo_${{ env.CONTAINER_NAME_EXTENSION }} \
|
||||
/bin/bash -c "
|
||||
cd /home/odoo/custom_addons/open_workshop/scripts && \
|
||||
python3 uninstall_rpc.py vvow_einweisungen"
|
||||
|
|
|
|||
59
scripts/uninstall_rpc.py
Executable file
59
scripts/uninstall_rpc.py
Executable file
|
|
@ -0,0 +1,59 @@
|
|||
import sys
|
||||
import os
|
||||
import xmlrpc.client
|
||||
|
||||
# ----------------------
|
||||
# KONFIGURATION AUS UMGEBUNG
|
||||
# ----------------------
|
||||
url = os.getenv("ODOO_URL", "http://localhost:8069")
|
||||
db = os.getenv("DB_NAME", "hobbyhimmel")
|
||||
username = os.getenv("ODOO_ADMIN")
|
||||
password = os.getenv("ODOO_ADMIN_PASSWORD")
|
||||
|
||||
# ----------------------
|
||||
# PRÜFUNG DER KONFIGURATION
|
||||
# ----------------------
|
||||
if not all([url, db, username, password]):
|
||||
print("❌ Fehler: ODOO_URL, ODOO_DB, ODOO_USERNAME und ODOO_PASSWORD müssen als Umgebungsvariablen gesetzt sein.")
|
||||
sys.exit(1)
|
||||
|
||||
# ----------------------
|
||||
# PARAMETER PRÜFEN
|
||||
# ----------------------
|
||||
if len(sys.argv) != 2:
|
||||
print("❌ Fehler: Modulname muss als Parameter übergeben werden.")
|
||||
print("👉 Beispiel: python3 uninstall_rpc.py vvow_einweisungen")
|
||||
sys.exit(1)
|
||||
|
||||
module_name = sys.argv[1]
|
||||
|
||||
# ----------------------
|
||||
# AUTHENTIFIZIERUNG
|
||||
# ----------------------
|
||||
common = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/common")
|
||||
uid = common.authenticate(db, username, password, {})
|
||||
|
||||
if not uid:
|
||||
print("❌ Anmeldung fehlgeschlagen. Bitte Zugangsdaten prüfen.")
|
||||
sys.exit(1)
|
||||
|
||||
# ----------------------
|
||||
# MODUL SUCHEN & DEINSTALLIEREN
|
||||
# ----------------------
|
||||
models = xmlrpc.client.ServerProxy(f"{url}/xmlrpc/2/object")
|
||||
|
||||
ids = models.execute_kw(db, uid, password,
|
||||
'ir.module.module', 'search',
|
||||
[[['name', '=', module_name], ['state', '=', 'installed']]],
|
||||
{'limit': 1}
|
||||
)
|
||||
|
||||
if ids:
|
||||
print(f"📦 Deinstalliere Modul: {module_name}")
|
||||
models.execute_kw(db, uid, password,
|
||||
'ir.module.module', 'button_immediate_uninstall',
|
||||
[ids]
|
||||
)
|
||||
print("✅ Deinstallation abgeschlossen.")
|
||||
else:
|
||||
print(f"ℹ️ Modul '{module_name}' ist nicht installiert oder nicht vorhanden.")
|
||||
Loading…
Reference in New Issue
Block a user