在開發 Orchestrator 外掛程式的不同元件時,落實特定作法有助於您改善外掛程式的品質。

表格 1. 外掛程式執行的實用作法

元件

項目

說明

一般

存取第三方 API

外掛程式應盡可能提供簡化的第三方 API 存取方式。

介面

外掛程式應提供一致且標準的介面供使用者使用,即使 API 無法提供。

動作

指令碼物件

您應為各建立、修改、刪除和所有其他指令碼物件的可用方式建立動作。

說明

動作描述應描述動作內容而非運作方式。

執行指令碼

當您使用指令碼取得物件屬性或方式時,可檢查物件數值是否與 nullundefined 不同。

取代

若動作遭取代,commentthrow 陳述式應指出取代動作,或該動作應呼叫新的取代動作,以便取代的動作版本解決方案不會無效。

工作流程

採協調技術的使用者介面作業

您應為協調技術的使用者介面中的所有作業建立工作流程。

說明

工作流程描述應描述工作流程內容而非運作方式。

簡報內容 mandatory input

您必須為所有強制工作流程輸入設定 mandatory input 內容。

簡報內容 default value

若您開發的工作流程設定實體,則該工作流程簡報應載入此實體的預設組態數值。例如:若您開發名為主機組態的工作流程,此工作流程簡報必須載入主機組態的預設數值。

簡報內容 Show in inventory

您必須設定 Show in inventory 內容才能擁有詳細目錄物件的內容工作流程。

簡報內容 specify a root parameter

您應在無須瀏覽樹狀根目錄的詳細目錄時,使用工作流程中的此內容。

工作流程驗證

您必須驗證工作流程及修正所有錯誤。

物件建立

所有建立新物件的工作流程皆應將新物件當成輸出參數傳回。

取代

若工作流程遭取代,commentthrow 陳述式應指出取代工作流程,或該工作流程應呼叫新的取代工作流程,以確保根據舊版工作流程建立的解決方案不會無效。

詳細目錄

主機中斷連線

若您的詳細目錄包含主機連線,則此主機將無法使用,而您應指出中斷連接的主機。您可利用 vCloud Director 外掛程式相同的方式,藉由附加 - disconnected 重新命名根物件或移除此物件下的物件樹狀結構,完成此動作。

Select value as list 內容

詳細目錄物件必須可當成 treeviewlist 選擇。

主機管理員

若外掛程式執行目標系統的 host 物件,則父系 hostmanager 根物件應含有用於新增、移除或編輯主機的內容。

取得或更新物件

若正使用協調技術執行查詢服務,您應用於取得多重物件。

子系探索

若您需要另外擷取子系物件,擷取的程序必須為多執行緒且在單一錯誤上未封鎖。

Orchestrator 物件變更

詳細目錄中所有可變更元素狀態的工作流程都必須更新詳細目錄,以避免讓物件脫離同步化。

外部物件變更

您可使用通知機制來告知因執行作業超出 Orchestrator 範圍而導致協調技術中發生變更。若此作業造成協調技術中的物件移除,您必須重新整理詳細目錄,以避免故障或資料遺失。例如:若刪除 vCenter Server 中的虛擬機器,vCenter Server 外掛程式會更新詳細目錄,以移除已移除虛擬機器的物件。

Finder 物件

Finder 物件應含有可用於區分物件的內容。這些通常是存在於使用者介面中的內容。

指令碼物件

執行

必須執行 equals 方式才能確保在相同物件上進行的 == 作業與部分狀況下可能擁有兩個執行個體的物件相同。

外掛程式物件內容

含父系物件的物件應執行 parent 內容。

外掛程式物件內容

含子系物件的物件應執行 GET 方式以傳回大量子系物件。

詳細目錄物件

詳細目錄物件應可透過 Server.find 搜尋。

所有詳細目錄物件應可序列化,以便在工作流程中當成輸入或輸出屬性使用。

建構函式與方法

在大多數情況下,可編寫指令碼物件應含有建構函式或由其他物件屬性或方式傳回。

物件識別碼

從外部系統發出擁有識別碼的物件應使用內部識別碼,藉此確保您在協調多部伺服器時不會出現重複的識別碼。

搜尋物件

searchfind 方式應執行篩選,以便找出指定名稱或識別碼,而非所有物件。例如:Orchestrator 伺服器的 Server.FindForId 方式可透過外掛程式物件的識別碼找到外掛程式。若要搜尋,必須針對外掛程式中各個可找到的物件執行此方式。

觸發

如有可能,應可觸發變更物件,讓 Orchestrator 能在各種事件時觸發原則。例如:要決定新增虛擬機器、開機、關機等時間,Orchestrator 可監控 Datacenter 物件上 vCenter 外掛程式中的觸發或事件。

物件內容

其他外掛程式中的物件應有可輕易在外掛程式間轉換的內容。例如:虛擬機器物件需有 moref(受管理的物件參考識別碼)。

工作階段管理員

若您連接至可用有不同工作階段的遠端伺服器,該外掛程式應執行共用工作階段與各使用者的工作階段。

觸發

觸發

所有長時間作業與封鎖方式皆應能在傳回工作時非同步開始,並於完成時產生觸發事件。

列舉

列舉

列舉指定型別應含有能於列舉中選擇不同數值的詳細目錄物件。

記錄

記錄

方法應執行不同的記錄層級。

版本設定

外掛程式版本

外掛程式版本應遵循標準並隨外掛程式更新進行更新。

API 說明文件

方法

在 API 說明文件中描述的方法不得在物件上擲回例外狀況 no xyz method / property。相反的,方法應在沒有可用內容時傳回 null 並詳細記錄。

vso.xml

所有物件、方法及內容都必須記錄在 vso.xml 中。