FusionCompute eSDK 獲取站點信息和虛擬機信息

在某些場景下,有時我們需要先獲取到所有的虛擬機列表。
然后根據(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"
     *    }]
     * }
     */
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容