update
Some checks are pending
Setup Native Action / native (3.12.7) (push) Waiting to run
Setup Native Action / docker (3.12.7) (push) Waiting to run

This commit is contained in:
KaySar12 2025-04-03 09:48:51 +07:00
parent fc17fc8be8
commit 812bb92779
4 changed files with 101 additions and 9 deletions

View File

@ -18,7 +18,7 @@ DOCKER_PUSH=$(DOCKERCMD) push
DOCKER_IMAGE=$(DOCKERCMD) image DOCKER_IMAGE=$(DOCKERCMD) image
DOCKER_EXEC=$(DOCKERCMD) exec DOCKER_EXEC=$(DOCKERCMD) exec
DEPLOY_PATH=${PWD}/deployment DEPLOY_PATH=${PWD}/deployment
SETUP_PATH=${PWD}/setup SCRIPT_PATH=${PWD}/scripts
CONFIG=odoo.conf CONFIG=odoo.conf
HUB=hub.nextzenos.com HUB=hub.nextzenos.com
CDN=https://cdn.nextzenos.com/CDN/NextERP CDN=https://cdn.nextzenos.com/CDN/NextERP
@ -60,10 +60,10 @@ download_backup:
fi; \ fi; \
Filename=$$(basename $$LinkDB); \ Filename=$$(basename $$LinkDB); \
echo "Downloading $$Filename from: $$LinkDB"; \ echo "Downloading $$Filename from: $$LinkDB"; \
${PWD}/setup/download_backup.sh $$LinkDB backup.zip ${SCRIPT_PATH}/download_backup.sh $$LinkDB backup.zip
#$(MAKE) download_backup LINKDB=${BACKUP} #$(MAKE) download_backup LINKDB=${BACKUP}
gen_config: gen_config:
${PWD}/setup/init_config.sh --native ${ADDONS} ${DB_USER} ${DB_PASSWORD} ${DB_SERVER} ${DB_PORT} ${SCRIPT_PATH}/init_config.sh --native ${ADDONS} ${DB_USER} ${DB_PASSWORD} ${DB_SERVER} ${DB_PORT}
run_server: run_server:
${PYTHON} odoo-bin --config=${CONFIG} ${PYTHON} odoo-bin --config=${CONFIG}
run_test: run_test:
@ -81,13 +81,13 @@ scaffold_module:
${PYTHON} odoo-bin scaffold $$ModuleName && \ ${PYTHON} odoo-bin scaffold $$ModuleName && \
mv $$ModuleName ${PWD}/$$ModulePath; mv $$ModuleName ${PWD}/$$ModulePath;
cleanup_addons: cleanup_addons:
@bash ${PWD}/setup/clean_up_addons.sh $(shell echo $(ADDONS) | tr ',' ' ') @bash ${SCRIPT_PATH}/clean_up_addons.sh $(shell echo $(ADDONS) | tr ',' ' ')
install_modules: install_modules:
${PYTHON} odoo-bin --config=${CONFIG} -d ${DATABASE} -i ${MODULES} --xmlrpc-port=${PORT} ${PYTHON} odoo-bin --config=${CONFIG} -d ${DATABASE} -i ${MODULES} --xmlrpc-port=${PORT}
upgrade_modules: upgrade_modules:
${PYTHON} odoo-bin upgrade_code --script ${SCRIPTS} --addons-path=${UPGRADE_DIR} || true ${PYTHON} odoo-bin upgrade_code --script ${SCRIPTS} --addons-path=${UPGRADE_DIR} || true
delete_records: delete_records:
${PYTHON} ${PWD}/setup/delete_records.py ${DATABASE} ${BASE_MODEL} --force ${PYTHON} ${SCRIPT_PATH}/delete_records.py ${DATABASE} ${BASE_MODEL} --force
drop_database: drop_database:
${PYTHON} odoo-bin db --config=${CONFIG} drop ${DATABASE} ${PYTHON} odoo-bin db --config=${CONFIG} drop ${DATABASE}
##### Docker Deployment ######### ##### Docker Deployment #########
@ -96,7 +96,7 @@ run_test_docker:
sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db --config=/etc/odoo/${CONFIG} drop testdb-${TAG} sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db --config=/etc/odoo/${CONFIG} drop testdb-${TAG}
# $(MAKE) download_backup LINKDB=${BACKUP} # $(MAKE) download_backup LINKDB=${BACKUP}
gen_config_docker: gen_config_docker:
${PWD}/setup/init_config.sh --docker ${ODOO_IMAGE} ${TAG} ${CONTAINER_ID} ${SCRIPT_PATH}/init_config.sh --docker ${ODOO_IMAGE} ${TAG} ${CONTAINER_ID}
build_image: build_image:
(cd ${DEPLOY_PATH} && \ (cd ${DEPLOY_PATH} && \
DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress=plain --no-cache --tag $$(echo ${ODOO_IMAGE} | tr A-Z a-z):${TAG}\ DOCKER_BUILDKIT=1 ${DOCKER_BUILD} . --progress=plain --no-cache --tag $$(echo ${ODOO_IMAGE} | tr A-Z a-z):${TAG}\
@ -116,7 +116,7 @@ run_server_docker:
cd ${DEPLOY_PATH} &&\ cd ${DEPLOY_PATH} &&\
${DOCKER_COMPOSE_CMD} up -d ${DOCKER_COMPOSE_CMD} up -d
update_tag: update_tag:
${SETUP_PATH}/update_tag.sh $(CURR_BRANCH) ${SCRIPT_PATH}/update_tag.sh $(CURR_BRANCH)
restore_database_docker: restore_database_docker:
sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db -c /etc/odoo/odoo.conf load backup /var/lib/odoo/backup/backup.zip sudo ${DOCKER_EXEC} ${CONTAINER_ID} odoo db -c /etc/odoo/odoo.conf load backup /var/lib/odoo/backup/backup.zip
stop_server_docker: stop_server_docker:

@ -1 +1 @@
Subproject commit 68e631e4e12b9fbd45b2c0daadba5ac394072b19 Subproject commit a9b051c961ccf14569480036d725eea68b755a06

@ -1 +1 @@
Subproject commit 20dd9cf79177a1bebf5cff523815bf9499c1b3d2 Subproject commit 9a1c76e1af73a832f1d44e5c1c41624a8385bdcc

92
setup/upgrade_module.py Normal file
View File

@ -0,0 +1,92 @@
#!/usr/bin/env python
"""Install/update/uninstall specified odoo module."""
import odoorpc
import argparse
USER = "admin"
PASSWORD = "admin"
HOST = "localhost"
PORT = "8069"
DB = "odoodb"
def prepare_args():
"""Prepare arguments for module action RPC call."""
parser = argparse.ArgumentParser(
description="Run modules install, upgrade or uninstall."
)
parser.add_argument(
"-i",
"--install",
help="Comma separated list of modules to install",
)
parser.add_argument(
"-u",
"--upgrade",
help="Comma separated list of modules to upgrade",
)
parser.add_argument(
"-del",
"--delete",
help="Comma separated list of modules to uninstall",
)
parser.add_argument(
"--user",
help="User to log in with",
default=USER,
)
parser.add_argument(
"--password",
help="Password to log in with",
default=PASSWORD,
)
parser.add_argument(
"--host",
help="Host to log in to",
default=HOST,
)
parser.add_argument(
"--port",
help="Odoo port",
default=PORT,
)
parser.add_argument(
"-d",
"--database",
help="Database name to log in to",
default=DB,
)
return parser.parse_args()
def login(user, password, host, port, database):
"""Login to Odoo database and return connection object."""
odoo = odoorpc.ODOO(host, port=port)
odoo.login(database, user, password)
return odoo
def _find_modules(env, module_names):
IrModuleModule = env["ir.module.module"]
modules = module_names.replace(" ", "").split(",")
module_ids = IrModuleModule.search([("name", "in", modules)])
return IrModuleModule.browse(module_ids)
def trigger_action(env, module_names, action):
modules = _find_modules(env, module_names)
method = getattr(modules, f"button_immediate_{action}")
return method()
if __name__ == "__main__":
args = prepare_args()
odoo = login(args.user, args.password, args.host, args.port, args.database)
env = odoo.env
if args.install:
trigger_action(env, args.install, "install")
if args.upgrade:
trigger_action(env, args.upgrade, "upgrade")
if args.delete:
trigger_action(env, args.delete, "uninstall")