スケールグループ編集機能を開発中です。 ロードバランサは2つあります。 1つは存在するLBであり、もう1つは編集中に追加されたLBです。サンプルコードを実行すると、ヘルスチェックの種類が既に設定されているにもかかわらず、 "ヘルスチェックの種類が必要"というエラーが返されます。下記の私のサンプルコードをチェックして、疑問があれば教えてください。スケールグループにロードバランサを追加するSL
public void editObject(){
Long groupId = 1213185L;
Group.Service groupService = Group.service(client, groupId);
/**
* Group Configuration Group Details
*/
String groupName = "EditTest";
Long regionId= 1025L ; //"as-kor-west-1"
String datacenter = "seo01";
Long terminationPolicyId = 1L;
/**
* Define SoftLayer_Scale_Group object that you wish to create
*/
Group templateObject = new Group();
templateObject.setName(groupName);
templateObject.setRegionalGroupId(regionId);
templateObject.setTerminationPolicyId(terminationPolicyId);
templateObject.setCooldown(1800L);
templateObject.setMaximumMemberCount(5L);
templateObject.setMinimumMemberCount(0L);
templateObject.setSuspendedFlag(false);
/**
* Member Configuration Member Details
*/
String hostname = "edittest";
String domain = "test.com";
// Define SoftLayer_Virtual_Guest
Guest virtualGuestMemberTemplate = new Guest();
virtualGuestMemberTemplate.setHostname(hostname);
virtualGuestMemberTemplate.setDomain(domain);
virtualGuestMemberTemplate.setMaxMemory(1024L);
virtualGuestMemberTemplate.setStartCpus(1L);
//Define Storage
Device block = new Device();
block.setDevice("0");
Image image = new Image();
image.setCapacity(25L);
block.setDiskImage(image);
virtualGuestMemberTemplate.getBlockDevices().add(block);
// Define Location
Location location = new Location();
location.setName(datacenter);
virtualGuestMemberTemplate.setDatacenter(location);
// Define Hourly billing and local disk
virtualGuestMemberTemplate.setHourlyBillingFlag(true);
virtualGuestMemberTemplate.setLocalDiskFlag(false);
// Network Components
Component networkComponent = new Component();
networkComponent.setMaxSpeed(10L);
virtualGuestMemberTemplate.getNetworkComponents().add(networkComponent);
virtualGuestMemberTemplate.setOperatingSystemReferenceCode("CENTOS_LATEST");
// Private Network Only
virtualGuestMemberTemplate.setPrivateNetworkOnlyFlag(false);
// Set Balance Across Multiple Vlans
templateObject.setBalancedTerminationFlag(false);
// Adding Virtual Guest member template to the template
templateObject.setVirtualGuestMemberTemplate(virtualGuestMemberTemplate);
//***************************************************************
// Define Load Balancer1 to Edit a load balancer already created
//***************************************************************
LoadBalancer lBalancer = new LoadBalancer();
lBalancer.setDeleteFlag(false);
lBalancer.setId(112103L);
// Set Server Id
lBalancer.setVirtualServerId(292559L);
lBalancer.setVirtualIpAddressId(57137607L); // Virtual IP ID
lBalancer.setPort(20L);
// Define Type
Type type = new Type();
type.setKeyname("TCP");
Check healthCheck = new Check();
healthCheck.setType(type);
lBalancer.setHealthCheck(healthCheck);
// Adding Load Balancer to the template
templateObject.getLoadBalancers().add(lBalancer);
//**************************************************************
// Define Load Balancer2 to add a load balancer while editing.
//**************************************************************
LoadBalancer lBalancer2 = new LoadBalancer();
lBalancer2.setDeleteFlag(false);
// Set Server Id
lBalancer2.setVirtualServerId(292673L);
lBalancer2.setVirtualIpAddressId(57137609L); // Virtual IP ID
lBalancer2.setPort(23L);
// Define Type
Type type2 = new Type();
type2.setKeyname("Default");
Check healthCheck2 = new Check();
healthCheck2.setType(type2);
lBalancer2.setHealthCheck(healthCheck2);
// Adding Load Balancer to the template
templateObject.getLoadBalancers().add(lBalancer2);
// Edit Object
Boolean result = groupService.editObject(templateObject);
System.out.println("result :: " + result);
}
としてdeleteFlagを設定する必要がありますか? 「deleteflag = true」だけを追加する必要がありますか? –