InstanceGroup
Query Instance Group Lists
The following code is used to obtain instance group information based on cluster ID:
public void listInstanceGroups(BmrClient client, String clusterId) {
try {
// method 1. list of instance groups about the specified cluster ID
ListInstanceGroupsResponse response1 = client.listInstanceGroups(clusterId);
// method 2. query request with customization of ListInstanceGroupsRequest object
ListInstanceGroupsResponse response2 = client.listInstanceGroups(new ListInstanceGroupsRequest().withClusterId(clusterId));
for (InstanceGroup instanceGroup: response2.getInstanceGroups()) {
System.out.println(instanceGroup.getId() + "," + instanceGroup.getType()
+ "," + instanceGroup.getInstanceType() + "," + instanceGroup.getRequestedInstanceCount()
+ "," + instanceGroup.getRootDiskSizeInGB() + "," + instanceGroup.getRootDiskMediumType());
for (CdsItem cdsItem: instanceGroup.getCds()){
System.out.println("cdsItem " + cdsItem.getSizeInGB() + “,” + cdsItem.getMediumType());
}
}
} catch (BceServiceException e){
System.out.println("List instance group failed: " + e.getErrorMessage());
}
}
The ListInstanceGroupsResponse object returned under request contains the instance group object array List
public class InstanceGroup {
private String id; //instance group ID
private String instanceType; //instance group package type
private String name; //instance group name
private String type; //instance group type
private int requestedInstanceCount; //number of requested instances
private int rootDiskSizeInGB; //system disk capacity
private String rootDiskMediumType; //system disk storage medium type
private List<CdsItem> cds; //list of cloud disk information
}
The properties of the cloud disk object (i.e., CdsItem) include cloud disk capacity and cloud disk storage media, and every property has its getter accessor method. The cloud storage media have two types: premium_ssd (SSD cloud disk), and ssd (high-performance cloud disk).
public class CdsItem {
private int sizeInGB; //cloud disk capacity
private String mediumType; //cloud disk storage media
}
Modify Instance Group Configurations
BMR can modify the configuration of CORE and TASK nodes, and the example code is as follows:
public void modifyInstanceGroups(BmrClient bmrClient, String clusterId, String coreGroupId, String taskGroupId) {
// instance groups needing no modification are omitted
List<ModifyInstanceGroupConfig> instanceGroups = new ArrayList<ModifyInstanceGroupConfig>();
// core group
ModifyInstanceGroupConfig coreGroup = new ModifyInstanceGroupConfig();
coreGroup.setId(coreGroupId);
coreGroup.setInstanceCount(4);
instanceGroups.add(coreGroup);
// task group
ModifyInstanceGroupConfig taskGroup = new ModifyInstanceGroupConfig();
taskGroup.setId(taskGroupId);
taskGroup.setInstanceCount(2);
instanceGroups.add(taskGroup);
String clientToken = UUID.randomUUID().toString();
try {
bmrClient.modifyInstanceGroups(
new ModifyInstanceGroupRequest()
.withClusterId(clusterId)
.withInstanceGroups(instanceGroups)
.withClientToken(clientToken)
);
} catch (BceServiceException e) {
System.out.println("Modify instance groups failed: " + e.getErrorMessage());
}
}