added stop container
This commit is contained in:
parent
f4e7273735
commit
808dc294b9
@ -12,3 +12,8 @@ def c_start_container(req_obj, host, port, jwt, endpoint, cid):
|
||||
url = f'https://{host}:{port}/api/endpoints/{endpoint}/docker/containers/{cid}/start'
|
||||
c_start_container_response = req_obj.post(url, headers={"Authorization": f"Bearer {jwt}"},verify=False)
|
||||
return c_start_container_response.status_code
|
||||
|
||||
def c_stop_container(req_obj, host, port, jwt, endpoint, cid):
|
||||
url = f'https://{host}:{port}/api/endpoints/{endpoint}/docker/containers/{cid}/stop'
|
||||
c_start_container_response = req_obj.post(url, headers={"Authorization": f"Bearer {jwt}"},verify=False)
|
||||
return c_start_container_response.status_code
|
@ -9,5 +9,6 @@
|
||||
"use_pushover": false,
|
||||
"use_log": true,
|
||||
"po_key": "",
|
||||
"po_token": ""
|
||||
"po_token": "",
|
||||
"start_containers": false
|
||||
}
|
@ -1,8 +1,13 @@
|
||||
def build_cont_list(obj):
|
||||
# TODO add file for containers that need to be started
|
||||
def build_cont_list(obj,hypercare_containers):
|
||||
cont_list = []
|
||||
for i, c in enumerate(obj):
|
||||
if c["State"].lower() != "running":
|
||||
if c["Names"][0].lstrip("/") in hypercare_containers:
|
||||
print(f'index: {i} container: {c["Names"][0].lstrip("/")} State: {c["State"]} ID: {c["Id"]}')
|
||||
cont_list.append(c)
|
||||
print(len(cont_list))
|
||||
return cont_list
|
||||
|
||||
def process_cont_list(full_cont_list, cont_fn):
|
||||
pass
|
6
crane.py
6
crane.py
@ -1,6 +1,6 @@
|
||||
import pushover
|
||||
from json import load
|
||||
from cclient import c_auth, c_get_containers
|
||||
from cclient import c_auth, c_get_containers, c_start_container
|
||||
from clogging import *
|
||||
import time
|
||||
import datetime
|
||||
@ -14,6 +14,9 @@ class Crn:
|
||||
self.st = datetime.datetime.now()
|
||||
with open('./config.json') as c:
|
||||
self.config = load(c)
|
||||
with open('./containers.json') as cts:
|
||||
self.containers = load(cts)
|
||||
self.observed_containers = self.containers.values()
|
||||
# Create the api object
|
||||
self.cc = requests
|
||||
# Create the logging and pushover objects
|
||||
@ -32,6 +35,7 @@ class Crn:
|
||||
self.username = self.config["username"]
|
||||
self.password = self.config["password"]
|
||||
self.endpoint = self.config["endpoint"]
|
||||
self.start_containers = self.config["start_containers"]
|
||||
cont_log(self)
|
||||
cont_notify(self)
|
||||
self.t = time
|
||||
|
@ -1,7 +1,7 @@
|
||||
import unittest
|
||||
import requests
|
||||
from json import load
|
||||
from cclient import c_auth, c_get_containers, c_start_container
|
||||
from cclient import c_auth, c_get_containers, c_start_container, c_stop_container
|
||||
from cprocess import build_cont_list
|
||||
|
||||
class TestCrane(unittest.TestCase):
|
||||
@ -13,8 +13,9 @@ class TestCrane(unittest.TestCase):
|
||||
self.username = self.config["username"]
|
||||
self.password = self.config["password"]
|
||||
self.endpoint = self.config["endpoint"]
|
||||
self.cid = 'ef8fee86e02b2b82acbddf6f0da1ff023f60bfe52c0b4087cac29c1686ccbac4'
|
||||
self.cid = '06ffaed8153495db19b35f5982e0f9d4cfea0da7b803f825a6686a4017af8d6e'
|
||||
self.req_obj = requests
|
||||
self.hypercare_containers = ['hello-world']
|
||||
def test_c_auth(self):
|
||||
self.jwt = c_auth(self.req_obj, self.host, self.port, self.username, self.password)
|
||||
self.assertTrue(self.jwt, "No JWT returned by cauth.")
|
||||
@ -27,7 +28,7 @@ class TestCrane(unittest.TestCase):
|
||||
def test_build_cont_list(self):
|
||||
self.jwt = c_auth(self.req_obj, self.host, self.port, self.username, self.password)
|
||||
self.cont_obj = c_get_containers(self.req_obj, self.host, self.port, self.jwt, self.endpoint)
|
||||
self.cont_list = build_cont_list(self.cont_obj)
|
||||
self.cont_list = build_cont_list(self.cont_obj, self.hypercare_containers)
|
||||
self.assertTrue(self.cont_list, "No cont_list returned by build_cont_list.")
|
||||
|
||||
def test_c_start_container(self):
|
||||
@ -37,5 +38,10 @@ class TestCrane(unittest.TestCase):
|
||||
self.assertTrue(self.c_start_container_response, "No c_start_container_resonse returned by c_start_container.")
|
||||
# 204 success 304 already on
|
||||
|
||||
def test_c_stop_container(self):
|
||||
self.jwt = c_auth(self.req_obj, self.host, self.port, self.username, self.password)
|
||||
self.c_stop_container_response = c_stop_container(self.req_obj, self.host, self.port, self.jwt, self.endpoint, self.cid)
|
||||
print(self.c_stop_container_response)
|
||||
self.assertTrue(self.c_stop_container_response, "No c_start_container_resonse returned by c_start_container.")
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user