mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
simulator:Using the priority to decide b/w MASTER/BACKUP
BootArgs carry router priority for master and backup and simulator will reuse the priority to decide RvR status. Deprecating the odd/even logic. Signed-off-by: Prasanna Santhanam <tsp@apache.org>
This commit is contained in:
parent
ed25ec0500
commit
f0c3b4c62a
@ -107,6 +107,7 @@ public class MockVmManagerImpl implements MockVmManager {
|
||||
vm.setName(vmName);
|
||||
vm.setVncPort(vncPort);
|
||||
vm.setHostId(host.getId());
|
||||
vm.setBootargs(bootArgs);
|
||||
if(vmName.startsWith("s-")) {
|
||||
vm.setType("SecondaryStorageVm");
|
||||
} else if (vmName.startsWith("v-")) {
|
||||
@ -238,15 +239,16 @@ public class MockVmManagerImpl implements MockVmManager {
|
||||
@Override
|
||||
public CheckRouterAnswer checkRouter(CheckRouterCommand cmd) {
|
||||
String router_name = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
|
||||
int router_id = Integer.parseInt(router_name.split("-")[1]);
|
||||
if (router_id % 2 == 0) {
|
||||
s_logger.debug("Found even routerId, making it MASTER in RvR");
|
||||
MockVm vm = _mockVmDao.findByVmName(router_name);
|
||||
String args = vm.getBootargs();
|
||||
if (args.indexOf("router_pr=100") > 0) {
|
||||
s_logger.debug("Router priority is for MASTER");
|
||||
CheckRouterAnswer ans = new CheckRouterAnswer(cmd, "Status: MASTER & Bumped: NO", true);
|
||||
ans.setState(VirtualRouter.RedundantState.MASTER);
|
||||
return ans;
|
||||
} else {
|
||||
s_logger.debug("Found odd routerId, making it BACKUP in RvR");
|
||||
CheckRouterAnswer ans = new CheckRouterAnswer(cmd, "Status: MASTER & Bumped: NO", true);
|
||||
s_logger.debug("Router priority is for BACKUP");
|
||||
CheckRouterAnswer ans = new CheckRouterAnswer(cmd, "Status: BACKUP & Bumped: NO", true);
|
||||
ans.setState(VirtualRouter.RedundantState.BACKUP);
|
||||
return ans;
|
||||
}
|
||||
@ -255,13 +257,13 @@ public class MockVmManagerImpl implements MockVmManager {
|
||||
@Override
|
||||
public Answer bumpPriority(BumpUpPriorityCommand cmd) {
|
||||
String router_name = cmd.getAccessDetail(NetworkElementCommand.ROUTER_NAME);
|
||||
int router_id = Integer.parseInt(router_name.split("-")[1]);
|
||||
if (router_id % 2 == 0) {
|
||||
return new Answer(cmd, true, "Status: MASTER & Bumped: YES");
|
||||
} else {
|
||||
MockVm vm = _mockVmDao.findByVmName(router_name);
|
||||
String args = vm.getBootargs();
|
||||
if (args.indexOf("router_pr=100") > 0) {
|
||||
return new Answer(cmd, true, "Status: BACKUP & Bumped: YES");
|
||||
} else {
|
||||
return new Answer(cmd, true, "Status: MASTER & Bumped: YES");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -55,6 +55,9 @@ public class MockVMVO implements MockVm{
|
||||
@Column(name="cpu")
|
||||
private int cpu;
|
||||
|
||||
@Column(name="bootargs")
|
||||
private String bootargs;
|
||||
|
||||
public MockVMVO() {
|
||||
|
||||
}
|
||||
@ -127,4 +130,11 @@ public class MockVMVO implements MockVm{
|
||||
this.vmType = type;
|
||||
}
|
||||
|
||||
public String getBootargs() {
|
||||
return bootargs;
|
||||
}
|
||||
|
||||
public void setBootargs(String bootargs) {
|
||||
this.bootargs = bootargs;
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,4 +41,7 @@ public interface MockVm {
|
||||
public void setType(String type);
|
||||
public void setVncPort(int vncPort);
|
||||
public long getId();
|
||||
|
||||
public String getBootargs();
|
||||
public void setBootargs(String bootargs);
|
||||
}
|
||||
|
||||
@ -76,6 +76,7 @@ CREATE TABLE `simulator`.`mockvm` (
|
||||
`vnc_port` bigint unsigned,
|
||||
`memory` bigint unsigned,
|
||||
`cpu` bigint unsigned,
|
||||
`bootargs` varchar(255),
|
||||
PRIMARY KEY (`id`),
|
||||
INDEX `i_mockvm__host_id`(`host_id`),
|
||||
INDEX `i_mockvm__state`(`state`),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user