在某些場景下,有時我們需要先獲取到所有的虛擬機列表。
然后根據(jù)特定條件找到我們需要的特定虛擬機,并對其進行操作。
所以這時便需要用到 FCSDKResponse<PageList<VmInfo>> queryVMs(QueryVmsReq queryVmsReq,java.lang.String siteUri)
所以在獲取虛擬機信息列表前,需要先獲取站點信息,得到siteuri參數(shù)值.
1 獲取站點信息
package site;
import com.huawei.esdk.fusioncompute.local.ServiceFactory;
import com.huawei.esdk.fusioncompute.local.model.ClientProviderBean;
import com.huawei.esdk.fusioncompute.local.model.FCSDKResponse;
import com.huawei.esdk.fusioncompute.local.model.SDKCommonResp;
import com.huawei.esdk.fusioncompute.local.model.common.LoginResp;
import com.huawei.esdk.fusioncompute.local.model.site.SiteBasicInfo;
import com.huawei.esdk.fusioncompute.local.resources.common.AuthenticateResource;
import com.huawei.esdk.fusioncompute.local.resources.site.SiteResource;
import org.junit.Test;
import java.util.List;
public class test_site {
@Test
public void querySites(){
//設(shè)定服務(wù)器配置
ClientProviderBean clientProvider = new ClientProviderBean();
//設(shè)定服務(wù)器配置_設(shè)定服務(wù)器IP
clientProvider.setServerIp("192.168.5.185");
//設(shè)定服務(wù)器配置_設(shè)定服務(wù)器端口號
clientProvider.setServerPort("7443");
//初始化用戶資源實例
AuthenticateResource auth = ServiceFactory.getService(AuthenticateResource.class, clientProvider);
//以用戶名,用戶密碼作為傳入?yún)?shù),調(diào)用AuthenticateResource提供的login方法,完成用戶的登錄
FCSDKResponse<LoginResp> resp = auth.login("jiekou", "Huawei@123!");
System.out.println(resp.getResult());
System.out.println("---------------------------------");
//獲取SiteResource接口的實現(xiàn)
SiteResource site = ServiceFactory.getService(SiteResource.class,clientProvider);
FCSDKResponse<List<SiteBasicInfo>> resps = site.querySites();
System.out.println(resps);
//登出FC系統(tǒng)
SDKCommonResp logout = auth.logout();
}
}
返回的結(jié)果:
/***
* {
* "sites": [{
* "name": "site",
* "status": "normal",
* "ip": "192.168.5.185",
* "uri": "/service/sites/4BAD086A",
* "urn": "urn:sites:4BAD086A",
* "isSelf": true,
* "isDC": false
* }]
* }
*/
2. 獲取虛擬機信息
package vm;
import com.huawei.esdk.fusioncompute.local.ServiceFactory;
import com.huawei.esdk.fusioncompute.local.model.ClientProviderBean;
import com.huawei.esdk.fusioncompute.local.model.FCSDKResponse;
import com.huawei.esdk.fusioncompute.local.model.PageList;
import com.huawei.esdk.fusioncompute.local.model.SDKCommonResp;
import com.huawei.esdk.fusioncompute.local.model.common.LoginResp;
import com.huawei.esdk.fusioncompute.local.model.vm.QueryVmsReq;
import com.huawei.esdk.fusioncompute.local.model.vm.VmInfo;
import com.huawei.esdk.fusioncompute.local.resources.common.AuthenticateResource;
import com.huawei.esdk.fusioncompute.local.resources.vm.VmResource;
import org.junit.Test;
public class queryVMs {
// 獲取虛擬機信息
@Test
public void queryVMs(){
//設(shè)定服務(wù)器配置
ClientProviderBean clientProvider = new ClientProviderBean();
//設(shè)定服務(wù)器配置_設(shè)定服務(wù)器IP
clientProvider.setServerIp("192.168.5.185");
//設(shè)定服務(wù)器配置_設(shè)定服務(wù)器端口號
clientProvider.setServerPort("7443");
//初始化用戶資源實例
AuthenticateResource auth = ServiceFactory.getService(AuthenticateResource.class, clientProvider);
//以用戶名,用戶密碼作為傳入?yún)?shù),調(diào)用AuthenticateResource提供的login方法,完成用戶的登錄
FCSDKResponse<LoginResp> resp = auth.login("jiekou", "Huawei@123!");
System.out.println(resp.getResult());
//之前獲取的站點信息
String siteUri = "/service/sites/4BAD086A";
VmResource instance = ServiceFactory.getService(VmResource.class,clientProvider);
QueryVmsReq req = new QueryVmsReq();
req.setLimit(5);
req.setOffset(0);
FCSDKResponse<PageList<VmInfo>> fcsdkResponse = instance.queryVMs(req, siteUri);
System.out.println(fcsdkResponse);
SDKCommonResp sdkCommonResp = auth.logout();
}
}
返回結(jié)果:
/**
* {
* "total": 2,
* "vms": [{
* "name": "test-linux01",
* "location": "urn:sites:4BAD086A:clusters:10",
* "hostName": "linux-IcjKyx",
* "description": null,
* "group": null,
* "status": "running",
* "clusterName": "ManagementCluster",
* "hostUrn": "urn:sites:4BAD086A:hosts:62",
* "isBindingHost": false,
* "isTemplate": false,
* "uri": "/service/sites/4BAD086A/vms/i-00000003",
* "urn": "urn:sites:4BAD086A:vms:i-00000003",
* "uuid": "e6479704-8f5a-40e7-a376-b320d022e706",
* "clusterUrn": "urn:sites:4BAD086A:clusters:10",
* "cdRomStatus": "empty",
* "createTime": "2018-10-18 07:16:44",
* "isLinkClone": false,
* "locationName": "ManagementCluster",
* "pvDriverStatus": "notRunning",
* "toolInstallStatus": "empty",
* "imcSetting": null,
* "idle": 0,
* "toolsVersion": ""
* }, {
* "name": "VRM01",
* "location": "urn:sites:4BAD086A:hosts:62",
* "hostName": "linux-IcjKyx",
* "description": "",
* "group": "VRMGroup",
* "status": "running",
* "clusterName": "ManagementCluster",
* "hostUrn": "urn:sites:4BAD086A:hosts:62",
* "isBindingHost": true,
* "isTemplate": false,
* "uri": "/service/sites/4BAD086A/vms/i-00000001",
* "urn": "urn:sites:4BAD086A:vms:i-00000001",
* "uuid": "57bf58b6-a716-4037-81ac-0d49d506460b",
* "clusterUrn": "urn:sites:4BAD086A:clusters:10",
* "cdRomStatus": "empty",
* "createTime": "2018-10-17 22:25:34",
* "isLinkClone": false,
* "locationName": "linux-IcjKyx",
* "pvDriverStatus": "running",
* "toolInstallStatus": "empty",
* "imcSetting": null,
* "idle": 0,
* "toolsVersion": "1.3.0.23"
* }]
* }
*/