Получение свойств хранилища данных NAS в vSphere Webclient SDK

В плагине веб-клиента vSphere я хочу получить удаленный хост и удаленный путь к хранилищу данных.

Я создал DataByModelRequest в классе посредника и вызвал одну модель из посредника

    [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;
    }

я получаю нулевое значение для всех полей, но имя работает нормально, и я также пробовал [Model (type = "NasDatastoreInfo")]


person asvignesh    schedule 19.09.2013    source источник


Ответы (1)


Используемый вами реляционный синтаксис не работает, потому что информация хранилища данных не является управляемым объектом, это просто поле свойства. Решение состоит в том, чтобы привести его к правильному типу 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

person asvignesh    schedule 20.09.2013