0

vSphere Web クライアント プラグインで、データストアのリモートホストとリモートパスを取得したい

メディエーター クラスで DataByModelRequest を作成し、メディエーターから 1 つのモデルを呼び出しました

    [Event(name="{com.vmware.data.query.events.DataByModelRequest.REQUEST_ID}",
          type="com.vmware.data.query.events.DataByModelRequest")]

    private function requestData():void {
          var requestInfo:DataRequestInfo = new DataRequestInfo(DataUpdateSpec.newImplicitInstance());


       var dsdatarequest:DataByModelRequest = DataByModelRequest.newInstance(
           _contextObject, DatastoreDataItem, requestInfo);
       dispatchEvent(vmdatarequest);
       }

[ResponseHandler(name=
         "{com.vmware.data.query.events.DataByModelRequest.RESPONSE_ID}")]
   public function onDataRetrieved(request:DataByModelRequest,
                                   result:DatastoreDataItem, error:Error):void {

       if (error != null) {
           Alert.show("ERROR");
           _logger.debug("onDataRetrieved error: " + error.message);
           return;
       }
       else
           Alert.show(ObjectUtil.toString(_contextObject));
           Alert.show("RETRIVED");


       // Assigning the result to variables to update the view.
       _view.dsprop = result;
       Alert.show(ObjectUtil.toString(result)); 

   }

DatastoreDataItem は私のモデル クラスです

[Bindable]
[Model(type="Datastore")]

public class DatastoreDataItem extends DataObject {



    [Model(relation="info.nas", property="type")]
        public var type:String;

    [Model(relation="info.nas", property="remoteHost")]
        public var remotehost:String;

    [Model(relation="info.nas", property="remotePath")]
        public var remotepath:String;

    [Model(property="url")]
        public var url:String;
    }

すべてのフィールドの null 値を取得していますが、名前は正常に機能しており、[Model(type="NasDatastoreInfo")] も試しました

4

1 に答える 1

0

データストア情報は管理エンティティではなく、単なるプロパティ フィールドであるため、使用しているリレーショナル構文は機能しません。解決策は、正しいタイプの Datastore.Info、つまりあなたの場合は NasDatastoreInfo にキャストすることです。モデルで使用する構文は次のとおりです。

[Model(property="info[@type='NasDatastoreInfo'].nas.remoteHost")]

// The server for NFS datastore

public var nfsServer:String; 



[Model(property="info[@type='NasDatastoreInfo'].nas.remotePath")]

// The folder for NFS datastore

public var nfsFolder:String;

ソース: https://communities.vmware.com/thread/457542

于 2013-09-20T06:36:15.537 に答える