return response;
}
public static DescribeInstancesResponse toDescribeInstancesResponse(EC2DescribeInstancesResponse engineResponse, EC2Engine engine) {
DescribeInstancesResponse response = new DescribeInstancesResponse();
DescribeInstancesResponseType param1 = new DescribeInstancesResponseType();
ReservationSetType param2 = new ReservationSetType();
EC2Instance[] instances = engineResponse.getInstanceSet();
for (EC2Instance inst : instances) {
String accountName = inst.getAccountName();
String domainId = inst.getDomainId();
String ownerId = domainId + ":" + accountName;
ReservationInfoType param3 = new ReservationInfoType();
param3.setReservationId(inst.getId()); // -> an id we could track down if needed
param3.setOwnerId(ownerId);
param3.setRequesterId("");
GroupSetType param4 = new GroupSetType();
EC2SecurityGroup[] groups = inst.getGroupSet();
if (null == groups || 0 == groups.length) {
GroupItemType param5 = new GroupItemType();
param5.setGroupId("");
param5.setGroupName("");
param4.addItem(param5);
} else {
for (EC2SecurityGroup group : groups) {
GroupItemType param5 = new GroupItemType();
param5.setGroupId(group.getId());
param5.setGroupName("");
param4.addItem(param5);
}
}
param3.setGroupSet(param4);
RunningInstancesSetType param6 = new RunningInstancesSetType();
RunningInstancesItemType param7 = new RunningInstancesItemType();
param7.setInstanceId(inst.getId());
param7.setImageId(inst.getTemplateId());
InstanceStateType param8 = new InstanceStateType();
param8.setCode(toAmazonCode(inst.getState()));
param8.setName(toAmazonStateName(inst.getState()));
param7.setInstanceState(param8);
param7.setPrivateDnsName("");
param7.setDnsName("");
param7.setReason("");
param7.setKeyName(inst.getKeyPairName());
param7.setAmiLaunchIndex(null);
param7.setInstanceType(inst.getServiceOffering());
ProductCodesSetType param9 = new ProductCodesSetType();
ProductCodesSetItemType param10 = new ProductCodesSetItemType();
param10.setProductCode("");
param10.setType("");
param9.addItem(param10);
param7.setProductCodes(param9);
Calendar cal = inst.getCreated();
if (null == cal) {
cal = Calendar.getInstance();
// cal.set( 1970, 1, 1 );
}
param7.setLaunchTime(cal);
PlacementResponseType param11 = new PlacementResponseType();
param11.setAvailabilityZone(inst.getZoneName());
param11.setGroupName("");
param7.setPlacement(param11);
param7.setKernelId("");
param7.setRamdiskId("");
param7.setPlatform("");
InstanceMonitoringStateType param12 = new InstanceMonitoringStateType();
param12.setState("");
param7.setMonitoring(param12);
param7.setSubnetId("");
param7.setVpcId("");
// String ipAddr = inst.getPrivateIpAddress();
// param7.setPrivateIpAddress((null != ipAddr ? ipAddr : ""));
param7.setPrivateIpAddress(inst.getPrivateIpAddress());
param7.setIpAddress(inst.getIpAddress());
StateReasonType param13 = new StateReasonType();
param13.setCode("");
param13.setMessage("");
param7.setStateReason(param13);
param7.setArchitecture("");
param7.setRootDeviceType("");
String devicePath = engine.cloudDeviceIdToDevicePath(inst.getHypervisor(), inst.getRootDeviceId());
param7.setRootDeviceName(devicePath);
GroupSetType param14 = new GroupSetType();
GroupItemType param15 = new GroupItemType(); // VPC security group
param15.setGroupName("");
param15.setGroupName("");
param14.addItem(param15);
param7.setGroupSet(param14);
param7.setInstanceLifecycle("");
param7.setSpotInstanceRequestId("");
param7.setHypervisor(inst.getHypervisor());
EC2TagKeyValue[] tags = inst.getResourceTags();
param7.setTagSet(setResourceTags(tags));
param6.addItem(param7);
param3.setInstancesSet(param6);
param2.addItem(param3);
}
param1.setReservationSet(param2);
param1.setRequestId(UUID.randomUUID().toString());
response.setDescribeInstancesResponse(param1);
return response;
}