mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-26 18:53:01 +02:00
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
"""Manage Infix containers"""
|
|
|
|
class Container:
|
|
"""Helper methods"""
|
|
IMAGE = "curios-httpd-v24.03.0.tar.gz"
|
|
|
|
def __init__(self, target):
|
|
self.system = target
|
|
|
|
def _find(self, name):
|
|
oper = self.system.get_data("/infix-containers:containers/container")
|
|
if not oper:
|
|
return None
|
|
|
|
for container in oper["containers"]["container"]:
|
|
if container["name"] == name:
|
|
return container
|
|
return None
|
|
|
|
def exists(self, name):
|
|
"""Check if container {name} runs on target."""
|
|
container = self._find(name)
|
|
if not container:
|
|
return False
|
|
return True
|
|
|
|
def running(self, name):
|
|
"""Check if container {name} exists and is running."""
|
|
container = self._find(name)
|
|
if container and container["running"]:
|
|
return True
|
|
return False
|
|
|
|
def action(self, name, act):
|
|
"""Call NETCONF action 'type' on container 'name'"""
|
|
return self.system.call_action_dict("infix-containers", {
|
|
"containers": {
|
|
"container": [
|
|
{
|
|
"name": f"{name}",
|
|
f"{act}": {}
|
|
}
|
|
]
|
|
}
|
|
})
|