error

Unable to serialize object of class in vCenter Orchestrator

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

Workflow:Create lab / waitAllWorkflowComplete (item6) : ch.dunes.model.type.ConvertorException: Unable to serialize object of class : ch.dunes.vso.sdk.SDKTypeConvertor_server$1

この問題を起こした 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 という名前に変更しています。 実際のスクリプトは、貼り付けるほどでもないですが、以下のようになります。

var result = new Array();
if (tokens != null && tokens.length > 0) {
    result[tokens.length-1] = null; // init the array with the good size but full of null

    var allFinished = false;
    while (! allFinished) {
        System.sleep(500);

        allFinished = true;

        for (var i in tokens) {
            if (tokens[i].state == "completed" || tokens[i].state == "failed" || tokens[i].state == "canceled") {
                allFinished &= true;
                if (result[i] == null) {
                    var prop = tokens[i].getOutputParameters(); // Properties
                    if (prop == null) prop = new Properties();
                    prop.put("__state", tokens[i].state);
                    if (tokens[i].state == "failed")
                        prop.put("__exception", tokens[i].exception);
                    result[i] = prop;
                }
            }
            else {
                allFinished = false;
            }
        }
    }   
}

関連記事

  1. Yufuin-no-mori Traing

    vco

    Updating Host advanced settings with updateOptions…

    まとめvRealize Orchestrator のスクリプティ…

  2. Tong-Sai@Naka Island, Thailand

    install

    vCenter Orchestrator (2) – Installation Type…

    Windows 版 vCenter Server をイ…

  3. vco

    備忘録: wait a vim task in vCO script

    var task = folder.destory_Task();…

  4. vco

    vCenter Orchestrator (1) – Intro

    VMware の数ある製品の中でおそらく 3 番目に顧客先でインス…

  5. vco

    [Fixed] Unable to serialize object of class in vRe…

    先日にエントリのネタになったバグが KB として上がり、さらにバグパッ…

  6. vco

    vCO のスクリプトで vCenter の情報が取得できない

    vCenter Orchestrator (vCO) のスクリプト…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。










  1. vmotion

    vMotion の歴史 (5) – vCenter Server 5…
  2. install

    QUADstor – (1) Installation
  3. software-defined storage

    Virtual SAN の HCL を JSON で取得する
  4. vcenter

    vCenter Server 6.5 に対して IE11 で 4GB 以上の O…
  5. GCP

    gcloud コマンドで Project の一覧を表示
PAGE TOP
Translate »