starter
start/src/
center
- server.py
- nodeMgt.py
- nodeState.py (改NodeBaseState)
三層對應
例如我們要修改server.py內的xxx-hostname
其他二隻程式必須要有相對的function去對應
以這個例子來看,為 rename
center
- centerMgt (centerHA才用的到)
node
- server.py (要做事情了)
center/server.py
控管node
程式起始點
node_join (無centerHA主要是執行這支,加入其他node)
standby_center_join (有centerHA就執行這支)
Cake-bootstrap
vs_data (openvswich的設定)
center pyro打開
node pyro打開
兩者之間是利用pyro互相溝通
centerProxy 開啟
每個動作都是call一個API
# 頁面卡住的問題
# 多半是storage造成
# 這時查看LOG會讓DEBUG變得比較容易
/var/log/vinfra/common
主要有三種LOG
- node-<UUID>.log (nodeMgt, nodeState的LOG)
- starter-center.log (center/server.py的LOG)
- starter-node.log (node/server.py的LOG)
目前CAKE HPC可能有問題的地方
node/server.py
- apply_nfs_storage
看centerdb的東東
python
from dao import db_api
dir(db_api)
db_api.get_hosts()
db_api.get_host_vswitchs_ports('UUID)
客戶常見問題
hostname跳來跳去 => UUID相衝
common/cake/network
複雜的東西 好像都沒註解
看架構圖
主要是這支 NetworkController
(待填)→ NetworkController ← (待填)
比較主要的是這三支
想查ovs指令看這隻就好
把ovs指令整再一起
ovscmd.py
CONFIG設定
lib/setting.py
consoleTool.py
create new screen
把這個東西想成HOMEPAGE
就是一進到consoleTool你會看到的頁面
show model
只要跟畫面有關係的
都是 show 開頭
web
controller
- action view
- render (template/vm/…)
- xxx.mako
- render (template/vm/…)
在 CAKE UI 看到的所有東西都是在
/cake/center
/cake/web
這兩個目錄下實作的
其中
center 為 backend 部分
web 為 frontend 部分
以前的 br0 就是對應到 mgmt
以前的 br1 就是對應到 web
其中 mgmt 是對內網路, 可以在 console 下透過 consoleTool 修改 IP
web 是對外網路, 可以在 CAKE UI 上直接修改 IP
手冊連結
【 CAKE wiki 】→【 Quick link 】→【 Manual 】→【 III/oreo/1.3.5 】
雜技
執行Linux commands
cake/starter/src/lib/util.py:31
usage: runcmd(CMD)
判斷center是否shutdown
self.centerFlag = bool(cfg.get('role','center')=='true')
if self.centerFlag is true 代表center是shutdown的狀態
互動yo
python
>>> from vinfra.dm import globalResource as gr
>>> cake_proxy = gr.getVinfraServiceProxy()
>>>
Logger
- node-<UUID>.log (nodeMgt, nodeState的LOG)
- starter-center.log (center/server.py的LOG)
- starter-node.log (node/server.py的LOG)
- cakeweb
- /var/log/vinfra/web.log