91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

運維開發里的數據動態獲取和自動補錄

發布時間:2020-08-11 14:03:35 來源:ITPUB博客 閱讀:168 作者:jeanron100 欄目:數據庫
vm_info_dict = virtual_machine_info.objects.get(ip=vm_ip_addr) print(vm_info_dict) if vm_info_dict != None: physical_server_ip = vm_info_dict.hostip device_info_dict = physical_server_info.objects.get(ip=physical_server_ip) phy_contain_vms = virtual_machine_info.objects.filter(hostip=physical_server_ip) else: token = gettoken('xxxxx', 'xxxxx') vm_info_dict=getresponse('https://xxxxx/API/v1/GetServerInfo/'+vm_ip_addr, token) physical_server_ip = vm_info_dict.get("hostip") print(physical_server_ip) device_info_dict=getresponse('https://xxxxxx/API/v1/GetDeviceInfo/'+physical_server_ip, token)

整體的思路就是通過Django API獲取虛擬機信息,如果不存在就通過API去訪問獲取。

這個問題看起來比較奇怪,按照錯誤的思路,應該是在exception的異常捕獲部門來處理,這么做確實是可以的,但是如果要擴展邏輯,異常處理的邏輯就會越來越重,感覺怪怪的。

所以反復測試,也算是明白了,使用get的方式去獲取數據,如果獲取不到就會拋錯,個人感覺這個接口還是不太友好,可以換一種方式,比如filter來實現,因為從表結構能夠定位到這是一個主鍵或者唯一性索引。

所以代碼的部分根據count的方式來做了調整,然后在這個基礎上又做了改進,即如果在本地的數據庫中不存在,則訪問接口得到數據庫,把數據庫下沉到本地,整個過程對于我們使用是透明的,也算是一種比較友好的交互方式。

vm_info_dict_exists = virtual_machine_info.objects.filter(ip=vm_ip_addr).count() if vm_info_dict_exists >= 1:
vm_info_dict = virtual_machine_info.objects.get(ip=vm_ip_addr) print(vm_info_dict) physical_server_ip = vm_info_dict.hostip device_info_dict = physical_server_info.objects.get(ip=physical_server_ip)
phy_contain_vms = virtual_machine_info.objects.filter(hostip=physical_server_ip)
return_dict["device_info_dict"] = device_info_dict
return_dict["vm_info_dict"] = vm_info_dict
return_dict["phy_contain_vms"] = phy_contain_vms else:
token = gettoken('xxxx', 'xxxxxx')
vm_info_dict = getresponse('https://xxxxxx/API/v1/GetServerInfo/' + vm_ip_addr, token)
physical_server_ip = vm_info_dict.get("hostip") print(physical_server_ip) device_info_dict = getresponse('https://xxxxxxxAPI/v1/GetDeviceInfo/' + physical_server_ip, token)
return_dict["device_info_dict"] = device_info_dict
return_dict["vm_info_dict"] = vm_info_dict
vm_info = virtual_machine_info()
......
vm_info.memo = vm_info_dict.get("memo")
vm_info.save()
phy_exists = physical_server_info.objects.filter(ip=vm_info.hostip).count() if phy_exists == 0:
phy_info = physical_server_info()
phy_exists = physical_server_info.objects.filter(ip=vm_info.hostip).count() if phy_exists == 0:
phy_info = physical_server_info()
phy_info.update_date = device_info_dict.get("update_date")
......
phy_info.memo = device_info_dict.get("memo")
phy_info.save()
phy_contain_vms = virtual_machine_info.objects.filter(hostip=vm_info.hostip)
return_dict["phy_contain_vms"] = phy_contain_vms

后續準備對這些信息做更進一步的改進,能夠實現元數據的增量刷新,即數據發生變化的時候我會調用接口刷新數據到本地,否則還是保持不變。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

磴口县| 江口县| 湄潭县| 固镇县| 巴里| 和林格尔县| 榆树市| 漳平市| 武隆县| 武定县| 库尔勒市| 昌黎县| 永寿县| 黄陵县| 马龙县| 三门县| 务川| 简阳市| 平阴县| 宿松县| 从江县| 长白| 贵港市| 天镇县| 黄石市| 司法| 徐汇区| 蓝山县| 海晏县| 英超| 南陵县| 香河县| 沁源县| 山阳县| 松潘县| 咸宁市| 泉州市| 黄山市| 普兰县| 罗江县| 绥棱县|