Exemple #1
0
def statistics(region,Meteric,duration,RES_ID):
    metricUrl=KeyStoneManager().getServiceUrl("metering",region)
    token=ks_auth.getToken()
    print "token:",token
    headers1 = { "X-Auth-Token":token, "Content-type":"application/json" }
    now=int(time.time())
    duration_sec=DUR[duration]
    period_start=utils.msecs2utc(now-8*3600-duration_sec)
    data1={
        "Meteric":Meteric,
        "RES_ID":RES_ID,
        "period":PERIOD[duration],
        "period_start":urllib.quote(period_start,''),
    }
    print "metricUrl:",metricUrl
    print "->:",connUrl(metricUrl)
    conn1 = httplib.HTTPConnection(connUrl(metricUrl))
    m_url="/v2/meters/%(Meteric)s/statistics?q.field=resource_id&q.field=timestamp&q.op=eq&q.op=gt&q.type=&q.type=&q.value=%(RES_ID)s&q.value=%(period_start)s&period=%(period)s" % data1
    print "m_url:",m_url
    conn1.request("GET",m_url,None,headers1)
    response1 = conn1.getresponse()
    rtn = response1.read()
    conn1.close()
    if rtn:
        rtn = json.loads(rtn)
    print "rtn:",rtn
    return rtn
Exemple #2
0
Fichier : eva.py Projet : hum1/mana
def eva(ip,regions):
    apitoken=ks_auth.getToken()
    if not apitoken:
	return RTN_500 % "Can't get token from keystone"

    for region in regions:
	if not NOVA(region) in nova_list:
		print "DB %s_nova doesn't configure." % region
		continue
	if not NEUTRON(region) in neutron_list:
		print "DB %s_neutron doesn't configure." % region
		continue
	print "---------Start to query instanceId from db(%s)-------------" % region
	instanceBean=InstanceManager().findInstanceIdByIp(NEUTRON_DB(region),NOVA_DB(region),ip)
	if not instanceBean:
		print "can't find instance in db(%s) by vir" % region
		print "------- check if it's a physical machine --------"		
		childs=InstanceManager().getChildrens(NOVA_DB(region),ip)
		
		print childs
		
		if not childs:
		    if isinstance(childs,list):
			return RTN_500 % ("[] instance find in nova.instances by physical machine(%s) in Region(%s)" % (ip,region))
	       	    print "can't find it as a physical machine in db(%s)" % region
		    continue
		msg={}
		for child in childs:
			msg["uuid_%s" % child.uuid]=evacuate(apitoken,child,region,child.host)
		return RTN_200 % msg
	else:
		mess=evacuate(apitoken,instanceBean,region,instanceBean.host)
		return RTN_200 % mess
    return RTN_500 % ("Can't find machine|virtual by ip (%s)" % ip)	
Exemple #3
0
def m1(req):
    token=ks_auth.getToken()
    expire=public.TOKEN["expire"]
    li=json.dumps(public.TOKEN)
    metricUrl = '1111'
    expire  = '22222'
    return render_to_response('m1.html',locals())
Exemple #4
0
Fichier : eva.py Projet : hum1/mana
def az_list(req):
    apitoken=ks_auth.getToken()
    if not apitoken:
	return HttpResponse("Can't get token from keystone")
    zones=ks_auth.getAvaZones(apitoken,"RegionOne")
    if not zones:
	return HttpResponse("Can't get az - compute nodes.")
    else:
	json_str=json.dumps(zones)
	return render_to_response('json.html',locals())
Exemple #5
0
def getServiceStatus(req):
    apitoken=ks_auth.getToken()
    if not apitoken:
        return HttpResponse("Can't get token from keystone")
    response=""
    for region in REGIONS:
        service=ks_auth.getOsServices(apitoken,region)
        if not service:
            return HttpResponse("Can't get service status from Region %s" % region)
        else:
            response+="<hr><span style='color:blue'>Region:%s</span><br/>" % region
            for k,v in service.items():
                if v=="down":
                    response+=k+"&nbsp&nbsp<span style='color:red'>"+v+"</span><br/>"
                else:
                    response+=k+"&nbsp&nbsp"+v+"<br/>"
    return HttpResponse(response)	
Exemple #6
0
Fichier : eva.py Projet : hum1/mana
def getMachineInfoByIp(req,ip):
    apitoken=ks_auth.getToken()
    if not apitoken:
	return HttpResponse("Can't get token from keystone")

    for region in REGIONS:
	if not NOVA(region) in nova_list:
		print "DB %s_nova doesn't configure." % region
		continue
	if not NEUTRON(region) in neutron_list:
		print "DB %s_neutron doesn't configure." % region
		continue
	print "---------Start to query instanceId from db(%s)-------------" % region
	instanceBean=InstanceManager().findInstanceIdByIp(connections[NEUTRON(region)],connections[NOVA(region)],ip)
	if not instanceBean:
		print "can't find instance in db(%s) by vir" % region
		print "------- check if it's a physical machine --------"		
		cnode=ComputeNodeMana().getComputeNodeByIp(ip,connections[NOVA(region)])
		
		if cnode:
		    return HttpResponse("Region(%s),physical machine info:%s" % (region,cnode))
	else:
		return HttpResponse("Region(%s),virtual instance info:%s" % (region,instanceBean))
    return HttpResponse("Can't get machine info.")
Exemple #7
0
def getMultiUserNetwork(req,region,tenant_id,networkname):
    if not region in REGIONS:
        return HttpResponse("""{"code":500,"message":"X REG."}""")
    obj=C2cidrManager().getMultiFreecidr(tenant_id,region)
    if not obj:
        return HttpResponse("""{"code":500,"message":"Can't find cidr."}""")
    if not obj["network_id"]:
        apitoken=ks_auth.getToken()
        if not apitoken:
            return HttpResponse("""{"code":500,"message":"Can't get token from keystone"}""")
        #create network
        data=ks_auth.createNetwork(apitoken,region,obj["id"],base64.standard_b64decode(networkname),tenant_id)
        if not data or data.has_key("NeutronError"):
            return HttpResponse("""{"code":500,"message":"Can't get data from create-network api.","data":"%s"}""" % (None if not data else data))
        network=data["network"]["id"]
        #create subnet
        data2=ks_auth.createSubnet(apitoken,region,obj["cidr"],network,tenant_id)
        if not data2 or data2.has_key("NeutronError"):
            return HttpResponse("""{"code":500,"message":"Can't get data from create-subnet api.","data":"%s"}""" % (None if not data2 else data2))
        #update cidr
        C2cidrManager().useCidr(int(obj["id"]),tenant_id,network,region)
        return HttpResponse("""{"code":200,"message":"ok","data":"%s"}""" % network)
    else:
        return HttpResponse("""{"code":200,"message":"ok","data":"%s"}""" % obj["network_id"])
Exemple #8
0
def index(req,uuid,region):
    token=ks_auth.getToken()
    UUID=uuid
    REGION=region
    return render_to_response('metric.html',locals())