X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=charm%2Fopenvim%2Flayer-openvim%2Ftests%2Fopenvim.py;fp=charm%2Fopenvim%2Flayer-openvim%2Ftests%2Fopenvim.py;h=ce5a32c7babfe71f1c0af1577914c240b8ad0829;hb=f7aa8c4db7a57d5865d3b7767d5957fda6867198;hp=0000000000000000000000000000000000000000;hpb=de6d6e77ff7bb93136a01ca8d3b90be9bc4be013;p=osm%2Fopenvim.git diff --git a/charm/openvim/layer-openvim/tests/openvim.py b/charm/openvim/layer-openvim/tests/openvim.py new file mode 100644 index 0000000..ce5a32c --- /dev/null +++ b/charm/openvim/layer-openvim/tests/openvim.py @@ -0,0 +1,55 @@ +import requests +import json + +class Connection(object): + def __init__(self, base_url): + self.base_url = base_url + + def set_active_tenant(self, tenant): + self.tenant_id = tenant["id"] + + def get_tenants(self): + return self._http_get("tenants")["tenants"] + + def get_hosts(self): + return self._http_get("hosts")["hosts"] + + def get_networks(self): + return self._http_get("networks")["networks"] + + def get_images(self): + return self._http_get(self.tenant_id + "/images")["images"] + + def get_flavors(self): + return self._http_get(self.tenant_id + "/flavors")["flavors"] + + def create_server(self, name, description, image, flavor, networks): + request_data = {"server": { + "name": name, + "description": description, + "imageRef": image["id"], + "flavorRef": flavor["id"], + "networks": [ + {"name": n["name"], "uuid": n["id"]} + for n in networks + ] + }} + + path = self.tenant_id + "/servers" + return self._http_post(path, request_data) + + def _http_get(self, path): + response = requests.get(self.base_url + path) + assert response.status_code == 200 + return response.json() + + def _http_post(self, path, request_data): + data = json.dumps(request_data) + headers = {"content-type": "application/json"} + response = requests.post(self.base_url + path, data=data, headers=headers) + assert response.status_code == 200 + return response.json() + +def connect(host, port=9080): + base_url = "http://%s:%s/openvim/" % (host, port) + return Connection(base_url)