Unable to serialize object of class in vCenter Orchestrator


家ラボの vCenter Orchestrator を 5.5.2.1 (ShellShock 対応) に上げたところ、action:waitAllWorkflowComplete でエラーが発生するようになったので、その対応方法を記します。 発生するエラーメッセージは以下の通り。

この問題を起こした Action は、直前の Foreach ノードで複数実行したワークフローの完了を workflow token (wfTokens) の内容を確認しながら待機します。この wfToken は Foreach ノードで実行したワークフローのアウトプット オブジェクトも含まれているので、その辺で Serialize Error が出ているのかもしれません。以下が、問題を発生した実際のワークフローになります。

vco error

バグ報告をしても修正を待っていられないので、回避策として action:waitAllWorkflowComplete を Scriptable Task に置き換えます。 まず、action:waitAllWorkflowComplete のスクリプトの内容を確認します。

script task

次に、問題を起こしたワークフローの action:waitAllWorkflowComplete を Scriptable Task に変更します。

revised task

そしてその中身のスクリプトとパラメーターバインディングを行います。スクリプトは以下になります。

parameter binding

action:waitAllWorkflowComplete のスクリプトから不要な return 文を削除します。 パラメーターバインディングは以下になります。

parameter binding

ワークフローでは、ワークフロー トークンの配列を wfTokens としていますが、バインディングの際に tokens という名前に変更しています。 実際のスクリプトは、貼り付けるほどでもないですが、以下のようになります。

コメントを残す