Softlayer JAVA API示例获取“每小时/预设配置裸机服务器”的所有配置

时间:2017-08-31 12:29:25

标签: java configuration ibm-cloud-infrastructure cloud-bare-metal

我正在尝试在SoftLayer上获取每小时裸机服务器的所有配置,但是失败了。是否有Java样本?

我想得到的是以下链接中的项目(数据中心名称,操作系统列表,CPU / GPU列表等): https://gist.github.com/bmpotter/a0d9a386d8681bdab456/revisions

我可以使用以下代码获取操作系统参考代码列表,但这是我现在唯一可以获得的代码:)

Hardware.Service hardwareService = Hardware.service(client);
Configuration configuration = hardwareService.getCreateObjectOptions();

List<Option> options = configuration.getOperatingSystems();
for (Option option : options) {
    Hardware hardware = option.getTemplate();
    String osRefCode = hardware.getOperatingSystemReferenceCode();
    System.out.println("osRefCode : " + osRefCode ); 
}

我无法使用以下代码获取DataCenter名称列表和其他配置(例如cpu count):

List<Option> options = configuration.getDatacenters();
for (Option option : options) {   
    Hardware hardware = option.getTemplate();
    String dcName = hardware.getDatacenterName();
    System.out.println("dcName : " + dcName );
}

应该有问题,但我不知道为什么。

如果有这样的Java示例代码,那就太棒了。

感谢。

1 个答案:

答案 0 :(得分:0)

我建议你调试你的代码,以便知道你需要如何正确访问这些属性,我为你得到了一些值:

List<Option> options2 = configuration.getDatacenters();
        for (Option option : options2) {   

            Hardware hardware = option.getTemplate();
            String dcName = hardware.getDatacenter().getName();

            System.out.println("dcName : " + dcName );
        }


        List<Option> options3 = configuration.getProcessors();
        for (Option option : options3) {  
            System.out.println("processors");
            System.out.println("item prices");
            System.out.println("hourly recurring fee" + option.getItemPrice().getHourlyRecurringFee());
            System.out.println("item");
            System.out.println("desciption" + option.getItemPrice().getItem().getDescription());
            Hardware hardware = option.getTemplate();
            System.out.println("Template");
            System.out.println("processorCoreAmount : " + hardware.getProcessorCoreAmount() );
            System.out.println("memoryCapacity : " + hardware.getMemoryCapacity() );
        }

    }