wadebug/wa_actions/models/wa_container.py (52 lines of code) (raw):
#!/usr/bin/env python3
# Copyright (c) Facebook, Inc. and its affiliates.
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
WA_WEB_CONTAINER_TAG = "whatsapp.biz/web"
WA_COREAPP_CONTAINER_TAG = "whatsapp.biz/coreapp"
MYSQL_CONTAINER_TAG = "mysql"
class WAContainer:
def __init__(self, docker_container):
self.container = docker_container
def __getattr__(self, attr):
if attr in self.__dict__:
return getattr(self, attr)
return getattr(self.container, attr)
def is_coreapp(self):
return (
len(
[
repo_tag
for repo_tag in self.image.attrs["RepoTags"]
if WA_COREAPP_CONTAINER_TAG in repo_tag
]
)
> 0
)
def is_webapp(self):
return (
len(
[
repo_tag
for repo_tag in self.image.attrs["RepoTags"]
if WA_WEB_CONTAINER_TAG in repo_tag
]
)
> 0
)
def is_db(self):
return (
len(
[
repo_tag
for repo_tag in self.image.attrs["RepoTags"]
if MYSQL_CONTAINER_TAG in repo_tag
]
)
> 0
)
def is_running(self):
return self.status == "running"
def get_container_type(self):
if self.is_coreapp():
return WA_COREAPP_CONTAINER_TAG
elif self.is_webapp():
return WA_WEB_CONTAINER_TAG
else:
return MYSQL_CONTAINER_TAG