4 class Connection(object):
5 def __init__(self
, base_url
):
6 self
.base_url
= base_url
8 def set_active_tenant(self
, tenant
):
9 self
.tenant_id
= tenant
["id"]
11 def get_tenants(self
):
12 return self
._http
_get
("tenants")["tenants"]
15 return self
._http
_get
("hosts")["hosts"]
17 def get_networks(self
):
18 return self
._http
_get
("networks")["networks"]
21 return self
._http
_get
(self
.tenant_id
+ "/images")["images"]
23 def get_flavors(self
):
24 return self
._http
_get
(self
.tenant_id
+ "/flavors")["flavors"]
26 def create_server(self
, name
, description
, image
, flavor
, networks
):
27 request_data
= {"server": {
29 "description": description
,
30 "imageRef": image
["id"],
31 "flavorRef": flavor
["id"],
33 {"name": n
["name"], "uuid": n
["id"]}
38 path
= self
.tenant_id
+ "/servers"
39 return self
._http
_post
(path
, request_data
)
41 def _http_get(self
, path
):
42 response
= requests
.get(self
.base_url
+ path
)
43 assert response
.status_code
== 200
44 return response
.json()
46 def _http_post(self
, path
, request_data
):
47 data
= json
.dumps(request_data
)
48 headers
= {"content-type": "application/json"}
49 response
= requests
.post(self
.base_url
+ path
, data
=data
, headers
=headers
)
50 assert response
.status_code
== 200
51 return response
.json()
53 def connect(host
, port
=9080):
54 base_url
= "http://%s:%s/openvim/" % (host
, port
)
55 return Connection(base_url
)