代码之家  ›  专栏  ›  技术社区  ›  asvignesh

在vSphere Webclient SDK中获取NAS数据存储的财产

  •  0
  • asvignesh  · 技术社区  · 11 年前

    在vSphere web客户端插件中,我想获取数据存储的远程主机和远程路径

    我在中介类中创建了一个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;
        }
    

    正在获取所有字段的null值,但name工作正常,我尝试过 [型号(type=“NasDatastoreInfo”)]

    1 回复  |  直到 9 年前
        1
  •  0
  •   asvignesh    11 年前

    您使用的关系语法不起作用,因为数据存储信息不是托管实体,它只是一个属性字段。解决方案是将其转换为正确类型的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