diff --git a/ceilometer b/ceilometer old mode 100755 new mode 100644 index 218d89af0555ce635a5fd478fa8aa619f66997ce..eeff33e8dcb3dc13a586200494e5245b46a5cc9a --- a/ceilometer +++ b/ceilometer @@ -71,19 +71,7 @@ class api_request(): response = api_response(res.status, res.read(), res.msg) return response -def getMeter(token_id, server, meter, resource_id): - if meter in ('cpu', 'cpu_util', 'disk.ephemeral.size', 'disk.root.size', 'memory', 'vcpus'): - url = "/v2/meters/%s?q.field=resource_id&q.op=eq&q.value=%s&limit=1" % (meter, resource_id) - elif meter in ('network.incoming.bytes', 'network.outgoing.bytes'): - url = "/v2/meters/%s?q.field=metadata.instance_id&q.op=eq&q.value=%s&limit=1" % (meter, resource_id) - else: - return "Error: unknown meter!" - - res_json = json.loads(api_request.httpGet(url, server, 8777, {"X-Auth-Token": token_id}).getData()) - - return res_json[0]['counter_volume'] - -def getToken(server, tenant, username, password, port): +def getToken(server, tenant, username, password, port, protocol): token_file_path = os.path.join(os.path.dirname(__file__), 'token_backup') parser_token = ConfigParser.SafeConfigParser() @@ -93,7 +81,11 @@ def getToken(server, tenant, username, password, port): if (not parser_token.get('token', 'expires')) or (int(float(parser_token.get('token', 'expires')) - time.time()) <= 0): auth = '{"auth": {"tenantName": "%s", "passwordCredentials": {"username": "%s", "password": "%s"}}}' % (tenant, username, password) header = {"Content-Type": "application/json", "Accept": "application/json"} - res = api_request.httpPost('/v2.0/tokens', server, port, auth, header) + if protocol == 'http': + res = api_request.httpPost('/v2.0/tokens', server, port, auth, header) + else: + res = api_request.httpsPost('/v2.0/tokens', server, port, auth, header) + res_json = json.loads(res.getData()) timestamp = calendar.timegm(time.strptime(res_json['access']['token']['expires'],"%Y-%m-%dT%H:%M:%SZ")) @@ -107,6 +99,21 @@ def getToken(server, tenant, username, password, port): return parser_token.get('token', 'id') +def getMeter(token_id, server, protocol, meter, resource_id): + if meter in ('cpu', 'cpu_util', 'disk.ephemeral.size', 'disk.root.size', 'memory', 'vcpus'): + url = "/v2/meters/%s?q.field=resource_id&q.op=eq&q.value=%s&limit=1" % (meter, resource_id) + elif meter in ('network.incoming.bytes', 'network.outgoing.bytes'): + url = "/v2/meters/%s?q.field=metadata.instance_id&q.op=eq&q.value=%s&limit=1" % (meter, resource_id) + else: + return "Error: unknown meter!" + + if protocol == 'http': + res_json = json.loads(api_request.httpGet(url, server, 8777, {"X-Auth-Token": token_id}).getData()) + else: + res_json = json.loads(api_request.httpsGet(url, server, 8777, {"X-Auth-Token": token_id}).getData()) + + return res_json[0]['counter_volume'] + def main(): config_file_path = os.path.join(os.path.dirname(__file__), 'proxy.conf') parser_config = ConfigParser.SafeConfigParser() @@ -117,10 +124,13 @@ def main(): username = parser_config.get('ceilometer', 'username') password = parser_config.get('ceilometer', 'password') port = parser_config.get('ceilometer', 'port') + protocol = parser_config.get('ceilometer', 'protocol') + + protocol_keystone = parser_config.get('keystone', 'protocol') - token_id = getToken(server, tenant, username, password, port) + token_id = getToken(server, tenant, username, password, port, protocol_keystone) - print getMeter(token_id, server, sys.argv[1], sys.argv[2]) + print getMeter(token_id, server, protocol, sys.argv[1], sys.argv[2]) if __name__ == "__main__": main() diff --git a/hypervisor-show.sh b/hypervisor-show.sh old mode 100644 new mode 100755 diff --git a/prisma-iaas.sh b/prisma-iaas.sh old mode 100644 new mode 100755 diff --git a/proxy_template.conf b/proxy_template.conf index 1f8d14a1f63933c3ce70f236219867e82c6af18d..8481a0a71b310bca2d6d7748bde49ea30e900d71 100644 --- a/proxy_template.conf +++ b/proxy_template.conf @@ -4,3 +4,7 @@ tenant = username = password = port = +protocol = + +[keystone] +protocol =