大發彩票平臺出租搭建
1148916888.com
帶手機版。源碼開源。
根據實體對象的屬性獲取相關對象時,在虛擬機中,獲取的仍然可能是一個托管對象引用,如根據虛擬機的屬性runtime獲取到的VirtualMachineRuntimeInfo對象,要獲取該對象中的主機名,通過getHost()方法獲取的是host的一個ManagedObjectReference,這樣就需要進一步根據托管對象獲取其對應的實體名稱。
代碼如下:
/**
- @Title: getObjectName
- @Description: 根據托管對象引用獲取對象名稱
- @param mor
- @return
- @throws Exception
-
@version 1.0*/
@Override
br/>*/
@Override
String objectName = null;
// 遍歷屬性規範
PropertySpec propSpec = new PropertySpec();
propSpec.setAll(new Boolean(false));
propSpec.getPathSet().add("name");
propSpec.setType(mor.getType());ObjectSpec objSpec = new ObjectSpec();
objSpec.setObj(mor);
objSpec.setSkip(new Boolean(false));// 屬性過濾規範
PropertyFilterSpec spec = new PropertyFilterSpec();
spec.getPropSet().add(propSpec);
spec.getObjectSet().add(objSpec);ArrayList<PropertyFilterSpec> listpfs = new ArrayList<PropertyFilterSpec>();
listpfs.add(spec);List<ObjectContent> listobjcont = retrievePropertiesAllObjects(listpfs);
ObjectContent oc = listobjcont.get(0);
objectName = (String) oc.getPropSet().get(0).getVal();
}
return objectName;
}
根據屬性檢索要查詢的對象信息(該方法參考文章【1】):
/**
- @Title: retrievePropertiesAllObjects
- @Description: 根據屬性檢索要查詢的對象信息
- @param listpfs
- @return
- @throws Exception
- @version 1.0
*/
private List<ObjectContent> retrievePropertiesAllObjects(List<PropertyFilterSpec> listpfs) throws Exception {
RetrieveOptions propObjectRetrieveOpts = new RetrieveOptions();
List<ObjectContent> listobjcontent = new ArrayList<>();
VimPortType vimPortType = this.vmClientSession.getVimPortType();
ServiceContent serviceContent = this.vmClientSession.getServiceContent();
try {
// 檢索屬性
RetrieveResult rslts =
vimPortType.retrievePropertiesEx(serviceContent.getPropertyCollector(), listpfs, propObjectRetrieveOpts);
if (rslts != null && rslts.getObjects() != null && !rslts.getObjects().isEmpty()) {
listobjcontent.addAll(rslts.getObjects());
}
String token = null;
if (rslts != null && rslts.getToken() != null) {
token = rslts.getToken();
}
while (token != null && !token.isEmpty()) {
rslts = vimPortType.continueRetrievePropertiesEx(serviceContent.getPropertyCollector(), token);
token = null;
if (rslts != null) {
token = rslts.getToken();
if (rslts.getObjects() != null && !rslts.getObjects().isEmpty()) {
listobjcontent.addAll(rslts.getObjects());
}
}
}
return listobjcontent;
} catch (Throwable e) {
e.printStackTrace();
}
}
大發彩票平臺出租搭建