有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在尝试获取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 ); 
}

我无法获取具有以下代码的数据中心名称列表和其他配置(例如cpu计数):

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

应该有点不对劲,但我不知道为什么

如果有这方面的Java示例代码就好了

谢谢


共 (1) 个答案

  1. # 1 楼答案

    我建议您调试代码,以便了解如何正确访问属性,我为您提供了一些值:

    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() );
            }
    
        }