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:
Prasanna Santhanam 2012-12-22 14:09:59 -08:00
parent ed25ec0500
commit f0c3b4c62a
4 changed files with 26 additions and 10 deletions

View File

@ -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

View File

@ -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;
}
}

View File

@ -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);
}

View File

@ -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`),