CheckBox Navigation(十/十一)Side-loading Providers & Checkbox Configs
技術標籤:Checkbox Ubuntuubuntucheckbox
CheckBox Navigation 10/11
Side-loading Providers
如果您希望建立一個新的作業,或者調整一個現有的作業,而不需要重新打包提供程式或snap,那麼您可以使用側載入的提供程式。
如果路徑/var/tmp/checkbox-providers
存在,Checkbox將從該路徑載入提供程式。
如果任何給定的提供程式與現有的(安裝或使用相同的snap提供程式提供的)提供程式具有相同的名稱空間和名稱,則只使用側載入的提供程式。
您可以根據需要重寫任意多個提供程式。
附帶載入的新提供程式的數量也沒有限制。
Note
側載入是在開發新任務時快速迭代的一種方法。不要在生產中使用它。還請記住,在完成開發後清空(或刪除)
~/provider
目錄,這樣就不會出現令人討厭的意外情況。如果使用了側載供應商,checkbox將不會向認證網站提交任何報告。
1. Example scenario
目標:更改stress/cpu_stress s_ng_test作業的執行時,而不需要重新構建snap。
請確保安裝了checkbox-snappy snap。
它提供以下提供者:
plainbox-provider-checkbox plainbox-provider-docker 2017.com.canonical.se:engineering-tests plainbox-provider-ipdt plainbox-provider-resource-generic plainbox-provider-snappy plainbox-provider-sru plainbox-provider-tpm2
建立checkbox-providers
目錄到/var/tmp/
:
mkdir /var/tmp/checkbox-providers
Note
您可能沒有
/var/tmp/
的寫許可權。您可能想要用sudo執行mkdir,然後再chown
該目錄
克隆plainbox-provider-checkbox
到side-loaded
目錄:
cd /var/tmp/checkbox-providers
git clone --depth=1 http://git.launchpad.net/plainbox-provider-checkbox
Tip
-depth =1告訴git不要下載repo的所有歷史記錄
當啟動時,checkbox應該顯示以下警告:
$ checkbox-snappy.checkbox-cli
WARNING:plainbox.session.assistant:Using side-loaded provider:
com.canonical.certification:plainbox-provider-checkbox
讓我們編輯一下工作定義:
$ vim /var/tmp/checkbox-providers/plainbox-provider-checkbox/units/stress/jobs.pxu
現在讓我們執行checkbox:
$ checkbox-snappy.checkbox-cli
應該使用最近編輯的定義。
Checkbox Configs
1. Configuration values resolution order
配置檔案的搜尋目錄為:·/etc/xdg/ ~/.config/·
1)Invoking checkbox-cli
(without launcher)
假設配置檔名是checkbox.conf
2)Invoking launcher
要查詢的檔名是使用啟動器中的[config]
部分中的config_filename
變數指定的。如果不存在,則使用checkbox.conf
。
注意,如果同一個配置變數在多個地方定義,其值解析如下:
1. 配置檔案從`~/.config`
2. 正在呼叫啟動程式(只有新的語法啟動程式)
3. 配置檔案`/etc/xdg`
2. Configs with Checkbox Remote
當checkboxSlave啟動時,它會在本地checkbox會話查詢的相同位置(在Slave端)查詢配置檔案。
如果主伺服器使用一個啟動器,那麼該啟動器中的值優先於從伺服器端的config中的值。
Example:
# checkbox.conf on the Slave
[environment]
FOO = 12
BAR = 6
# Launcher used by the master
# (...)
[environment]
FOO = 42
執行echo $FOO $BAR
的checkbox作業將列印42 6
注意,BAR
仍然可用,即使主用啟動器沒有定義它。