X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2Fvim-emu.git;a=blobdiff_plain;f=src%2Femuvim%2Fapi%2Frest%2Fcompute.py;h=dc2b611a9858f5b048669f87406ae37d916e5f69;hp=22e9d6df13c9a0a17bbf3cf8bb6d1cd62635230d;hb=a6ce6f3c00d8d4ae7d378da7ddc6feccf9a38477;hpb=c46fe93dd3f79a91ce86baf933282aa25ff76ddc diff --git a/src/emuvim/api/rest/compute.py b/src/emuvim/api/rest/compute.py index 22e9d6d..dc2b611 100755 --- a/src/emuvim/api/rest/compute.py +++ b/src/emuvim/api/rest/compute.py @@ -50,8 +50,13 @@ class Compute(Resource): """ global dcs - def put(self, dc_label, compute_name): + def put(self, dc_label, compute_name, resource=None, value=None): + # check if resource update + if resource and value: + c = self._update_resource(dc_label, compute_name, resource, value) + return c.getStatus(), 200 + # deploy new container # check if json data is a dict data = request.json if data is None: @@ -74,6 +79,20 @@ class Compute(Resource): logging.exception("API error.") return ex.message, 500, CORS_HEADER + def _update_resource(self, dc_label, compute_name, resource, value): + #check if container exists + d = dcs.get(dc_label).net.getNodeByName(compute_name) + if resource == 'cpu': + cpu_period = int(dcs.get(dc_label).net.cpu_period) + cpu_quota = int(cpu_period * float(value)) + #put default values back + if float(value) <= 0: + cpu_period = 100000 + cpu_quota = -1 + d.updateCpuLimit(cpu_period=cpu_period, cpu_quota=cpu_quota) + return d + + def get(self, dc_label, compute_name): logging.debug("API CALL: compute status")