mirror of https://github.com/apache/cloudstack.git
CS-15627
Metadata - "instance-id","vm-id" information of the existing VMs should not change after Burbank Upgrade Description: For pre 3.0 releases, we need to keep their roiginal vm-id and instance-id. Only for 3.0 and later, vm-id and instance-id are shown UUID. reviewed-by: vijay
This commit is contained in:
parent
38eee41c7c
commit
7e99fca844
|
|
@ -165,6 +165,23 @@ public class CloudZonesNetworkElement extends AdapterBase implements NetworkElem
|
|||
return cmd;
|
||||
}
|
||||
|
||||
private VmDataCommand generateVmDataCommand(String vmPrivateIpAddress,
|
||||
String userData, String serviceOffering, String zoneName, String guestIpAddress, String vmName, String vmInstanceName, long vmId, String publicKey) {
|
||||
VmDataCommand cmd = new VmDataCommand(vmPrivateIpAddress, vmName);
|
||||
|
||||
cmd.addVmData("userdata", "user-data", userData);
|
||||
cmd.addVmData("metadata", "service-offering", serviceOffering);
|
||||
cmd.addVmData("metadata", "availability-zone", zoneName);
|
||||
cmd.addVmData("metadata", "local-ipv4", guestIpAddress);
|
||||
cmd.addVmData("metadata", "local-hostname", vmName);
|
||||
cmd.addVmData("metadata", "public-ipv4", guestIpAddress);
|
||||
cmd.addVmData("metadata", "public-hostname", guestIpAddress);
|
||||
cmd.addVmData("metadata", "instance-id", vmInstanceName);
|
||||
cmd.addVmData("metadata", "vm-id", String.valueOf(vmId));
|
||||
cmd.addVmData("metadata", "public-keys", publicKey);
|
||||
|
||||
return cmd;
|
||||
}
|
||||
@Override
|
||||
public boolean isReady(PhysicalNetworkServiceProvider provider) {
|
||||
// TODO Auto-generated method stub
|
||||
|
|
@ -205,11 +222,17 @@ public class CloudZonesNetworkElement extends AdapterBase implements NetworkElem
|
|||
}
|
||||
String serviceOffering = _serviceOfferingDao.findByIdIncludingRemoved(uservm.getServiceOfferingId()).getDisplayText();
|
||||
String zoneName = _dcDao.findById(network.getDataCenterId()).getName();
|
||||
|
||||
cmds.addCommand(
|
||||
if (uservm.getUuid() == null) {
|
||||
cmds.addCommand(
|
||||
"vmdata",
|
||||
generateVmDataCommand(nic.getIp4Address(), userData, serviceOffering, zoneName, nic.getIp4Address(), uservm.getVirtualMachine().getHostName(),
|
||||
uservm.getInstanceName(), uservm.getId(), sshPublicKey));
|
||||
} else {
|
||||
cmds.addCommand(
|
||||
"vmdata",
|
||||
generateVmDataCommand(nic.getIp4Address(), userData, serviceOffering, zoneName, nic.getIp4Address(), uservm.getVirtualMachine().getHostName(),
|
||||
uservm.getUuid(), sshPublicKey));
|
||||
}
|
||||
try {
|
||||
_agentManager.send(dest.getHost().getId(), cmds);
|
||||
} catch (OperationTimedoutException e) {
|
||||
|
|
|
|||
|
|
@ -753,6 +753,49 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
|||
return cmd;
|
||||
}
|
||||
|
||||
private VmDataCommand generateVmDataCommand(VirtualRouter router, String vmPrivateIpAddress, String userData,
|
||||
String serviceOffering, String zoneName, String guestIpAddress, String vmName,
|
||||
String vmInstanceName, long vmId, String publicKey, long guestNetworkId) {
|
||||
VmDataCommand cmd = new VmDataCommand(vmPrivateIpAddress, vmName);
|
||||
|
||||
cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP, getRouterControlIp(router.getId()));
|
||||
cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP, getRouterIpInNetwork(guestNetworkId, router.getId()));
|
||||
cmd.setAccessDetail(NetworkElementCommand.ROUTER_NAME, router.getInstanceName());
|
||||
|
||||
DataCenterVO dcVo = _dcDao.findById(router.getDataCenterIdToDeployIn());
|
||||
cmd.setAccessDetail(NetworkElementCommand.ZONE_NETWORK_TYPE, dcVo.getNetworkType().toString());
|
||||
|
||||
cmd.addVmData("userdata", "user-data", userData);
|
||||
cmd.addVmData("metadata", "service-offering", StringUtils.unicodeEscape(serviceOffering));
|
||||
cmd.addVmData("metadata", "availability-zone", StringUtils.unicodeEscape(zoneName));
|
||||
cmd.addVmData("metadata", "local-ipv4", guestIpAddress);
|
||||
cmd.addVmData("metadata", "local-hostname", StringUtils.unicodeEscape(vmName));
|
||||
if (dcVo.getNetworkType() == NetworkType.Basic) {
|
||||
cmd.addVmData("metadata", "public-ipv4", guestIpAddress);
|
||||
cmd.addVmData("metadata", "public-hostname", StringUtils.unicodeEscape(vmName));
|
||||
} else
|
||||
{
|
||||
if (router.getPublicIpAddress() == null) {
|
||||
cmd.addVmData("metadata", "public-ipv4", guestIpAddress);
|
||||
} else {
|
||||
cmd.addVmData("metadata", "public-ipv4", router.getPublicIpAddress());
|
||||
}
|
||||
cmd.addVmData("metadata", "public-hostname", router.getPublicIpAddress());
|
||||
}
|
||||
cmd.addVmData("metadata", "instance-id", vmInstanceName);
|
||||
cmd.addVmData("metadata", "vm-id", String.valueOf(vmId));
|
||||
cmd.addVmData("metadata", "public-keys", publicKey);
|
||||
|
||||
String cloudIdentifier = _configDao.getValue("cloud.identifier");
|
||||
if (cloudIdentifier == null) {
|
||||
cloudIdentifier = "";
|
||||
} else {
|
||||
cloudIdentifier = "CloudStack-{" + cloudIdentifier + "}";
|
||||
}
|
||||
cmd.addVmData("metadata", "cloud-identifier", cloudIdentifier);
|
||||
|
||||
return cmd;
|
||||
}
|
||||
protected class NetworkUsageTask implements Runnable {
|
||||
|
||||
public NetworkUsageTask() {
|
||||
|
|
@ -2915,9 +2958,16 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
|||
private void createVmDataCommand(VirtualRouter router, UserVm vm, NicVO nic, String publicKey, Commands cmds) {
|
||||
String serviceOffering = _serviceOfferingDao.findByIdIncludingRemoved(vm.getServiceOfferingId()).getDisplayText();
|
||||
String zoneName = _dcDao.findById(router.getDataCenterIdToDeployIn()).getName();
|
||||
cmds.addCommand("vmdata",
|
||||
if (vm.getUuid() == null) {
|
||||
cmds.addCommand("vmdata",
|
||||
generateVmDataCommand(router, nic.getIp4Address(), vm.getUserData(), serviceOffering, zoneName, nic.getIp4Address(),
|
||||
vm.getHostName(), vm.getInstanceName(),
|
||||
vm.getId(), publicKey, nic.getNetworkId()));
|
||||
} else {
|
||||
cmds.addCommand("vmdata",
|
||||
generateVmDataCommand(router, nic.getIp4Address(), vm.getUserData(), serviceOffering, zoneName, nic.getIp4Address(),
|
||||
vm.getHostName(), vm.getUuid(), publicKey, nic.getNetworkId()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue