53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
from kubernetes import config, client
|
|
from kubernetes.stream import stream
|
|
from odoo.addons.smile_log.tools import SmileDBLogger
|
|
from odoo.exceptions import UserError
|
|
import yaml
|
|
|
|
|
|
# import git_aggregator
|
|
|
|
def del_git_dir(self, path):
|
|
"""
|
|
It will delete addons directory inside running container
|
|
"""
|
|
_logger = SmileDBLogger(self._cr.dbname, self._name, self.id, self._uid)
|
|
if self.app_name and path:
|
|
try:
|
|
data2 = yaml.safe_load(self.configuration.config_file)
|
|
config.load_kube_config_from_dict(data2)
|
|
except config.config_exception.ConfigException as e:
|
|
_logger.error(str(e))
|
|
raise UserError("Unable to Connect K8s Cluster")
|
|
core_v1_api = client.CoreV1Api()
|
|
|
|
try:
|
|
pod = core_v1_api.list_namespaced_pod(namespace='default', label_selector='app={}'.format(self.app_name))
|
|
except Exception as e:
|
|
raise UserError("Unable to connect to cluster")
|
|
resp1 = stream(core_v1_api.connect_get_namespaced_pod_exec,
|
|
pod.items[0].metadata.name,
|
|
'default',
|
|
command=['chmod', '-R', 'ugo+rw', path],
|
|
stderr=True, stdin=False,
|
|
stdout=True, tty=False)
|
|
|
|
resp = stream(core_v1_api.connect_get_namespaced_pod_exec,
|
|
pod.items[0].metadata.name,
|
|
'default',
|
|
command=['rm', '-rf', path ],
|
|
stderr=True, stdin=False,
|
|
stdout=True, tty=False)
|
|
|
|
resp3 = stream(core_v1_api.connect_get_namespaced_pod_exec,
|
|
pod.items[0].metadata.name,
|
|
'default',
|
|
command=['mkdir', path ],
|
|
stderr=True, stdin=False,
|
|
stdout=True, tty=False)
|
|
_logger.info(str(resp1))
|
|
_logger.info(str(resp))
|
|
_logger.info(str(resp3))
|
|
_logger.info(str(path))
|
|
_logger.info(str("code deleted"))
|