From d461cfbf1bf44649ff3b04c4a608f83f4dd72642 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Mon, 12 Sep 2011 19:09:11 -0700 Subject: [PATCH] fix security group rule which not get updated into db, and simulator agents reports the wrong security group to mgt server --- .../com/cloud/agent/manager/MockVmManager.java | 3 ++- .../cloud/agent/manager/MockVmManagerImpl.java | 8 ++++---- .../agent/manager/SimulatorManagerImpl.java | 4 ++-- .../cloud/simulator/MockSecurityRulesVO.java | 18 +++++++++--------- setup/db/create-schema-simulator.sql | 4 ++-- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/agent-simulator/src/com/cloud/agent/manager/MockVmManager.java b/agent-simulator/src/com/cloud/agent/manager/MockVmManager.java index a3c6a3a8667..65a54a20b9c 100644 --- a/agent-simulator/src/com/cloud/agent/manager/MockVmManager.java +++ b/agent-simulator/src/com/cloud/agent/manager/MockVmManager.java @@ -20,6 +20,7 @@ import com.cloud.agent.api.MigrateCommand; import com.cloud.agent.api.NetworkUsageAnswer; import com.cloud.agent.api.NetworkUsageCommand; import com.cloud.agent.api.RebootCommand; +import com.cloud.agent.api.SecurityIngressRuleAnswer; import com.cloud.agent.api.SecurityIngressRulesCmd; import com.cloud.agent.api.StartCommand; import com.cloud.agent.api.StopCommand; @@ -79,8 +80,8 @@ public interface MockVmManager extends Manager { Answer CheckConsoleProxyLoad(CheckConsoleProxyLoadCommand cmd); Answer WatchConsoleProxyLoad(WatchConsoleProxyLoadCommand cmd); - Answer AddSecurityIngressRules(SecurityIngressRulesCmd cmd); Answer SavePassword(SavePasswordCommand cmd); HashMap> syncNetworkGroups(String hostGuid); + SecurityIngressRuleAnswer AddSecurityIngressRules(SecurityIngressRulesCmd cmd, String hostGuid); } diff --git a/agent-simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java b/agent-simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java index a127bbf12d8..573dff8e9e5 100644 --- a/agent-simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java +++ b/agent-simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java @@ -352,7 +352,7 @@ public class MockVmManagerImpl implements MockVmManager { } @Override - public SecurityIngressRuleAnswer AddSecurityIngressRules(SecurityIngressRulesCmd cmd) { + public SecurityIngressRuleAnswer AddSecurityIngressRules(SecurityIngressRulesCmd cmd, String hostGuid) { MockVMVO vm = _mockVmDao.findByVmName(cmd.getVmName()); if (vm == null) { return new SecurityIngressRuleAnswer(cmd, false, "cant' find the vm: " + cmd.getVmName()); @@ -364,8 +364,8 @@ public class MockVmManagerImpl implements MockVmManager { rules.setRuleSet(cmd.stringifyRules()); rules.setSeqNum(cmd.getSeqNum()); rules.setSignature(cmd.getSignature()); - rules.setVmId(vm.getId()); - rules.setHostId(vm.getHostId()); + rules.setVmId(cmd.getVmId()); + rules.setHostId(hostGuid); _mockSecurityDao.persist(rules); } else if (update){ @@ -373,7 +373,7 @@ public class MockVmManagerImpl implements MockVmManager { rules.setSignature(cmd.getSignature()); rules.setRuleSet(cmd.stringifyRules()); rules.setVmId(cmd.getVmId()); - rules.setHostId(vm.getHostId()); + rules.setHostId(hostGuid); _mockSecurityDao.update(rules.getId(), rules); } diff --git a/agent-simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java b/agent-simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java index 43bcefe2696..b13d9871740 100644 --- a/agent-simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java +++ b/agent-simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java @@ -90,7 +90,7 @@ public class SimulatorManagerImpl implements SimulatorManager { try { Connection conn = Transaction.getStandaloneConnectionWithException(); conn.setAutoCommit(true); - _concierge = new ConnectionConcierge("AgentMonitor", conn, false); + _concierge = new ConnectionConcierge("SimulatorConnection", conn, true); } catch (SQLException e) { throw new CloudRuntimeException("Unable to get a db connection", e); } @@ -186,7 +186,7 @@ public class SimulatorManagerImpl implements SimulatorManager { } else if (cmd instanceof WatchConsoleProxyLoadCommand) { return _mockVmMgr.WatchConsoleProxyLoad((WatchConsoleProxyLoadCommand)cmd); } else if (cmd instanceof SecurityIngressRulesCmd) { - return _mockVmMgr.AddSecurityIngressRules((SecurityIngressRulesCmd)cmd); + return _mockVmMgr.AddSecurityIngressRules((SecurityIngressRulesCmd)cmd, hostGuid); } else if (cmd instanceof SavePasswordCommand) { return _mockVmMgr.SavePassword((SavePasswordCommand)cmd); } else if (cmd instanceof PrimaryStorageDownloadCommand) { diff --git a/agent-simulator/src/com/cloud/simulator/MockSecurityRulesVO.java b/agent-simulator/src/com/cloud/simulator/MockSecurityRulesVO.java index e4c8857d7b9..369295e48b3 100644 --- a/agent-simulator/src/com/cloud/simulator/MockSecurityRulesVO.java +++ b/agent-simulator/src/com/cloud/simulator/MockSecurityRulesVO.java @@ -23,13 +23,13 @@ public class MockSecurityRulesVO { private String signature; @Column(name="seqnum") - private Long seqnum; + private Long seqNum; @Column(name="ruleset") - private String ruleset; + private String ruleSet; @Column(name="hostid") - private Long hostId; + private String hostId; @Column(name="vmname") public String vmName; @@ -42,11 +42,11 @@ public class MockSecurityRulesVO { this.vmName = vmName; } - public Long getHostId() { + public String getHostId() { return this.hostId; } - public void setHostId(Long hostId) { + public void setHostId(String hostId) { this.hostId = hostId; } @@ -71,18 +71,18 @@ public class MockSecurityRulesVO { } public Long getSeqNum() { - return this.seqnum; + return this.seqNum; } public void setSeqNum(Long seqNum) { - this.seqnum = seqNum; + this.seqNum = seqNum; } public String getRuleSet() { - return this.ruleset; + return this.ruleSet; } public void setRuleSet(String ruleset) { - this.ruleset = ruleset; + this.ruleSet = ruleset; } } diff --git a/setup/db/create-schema-simulator.sql b/setup/db/create-schema-simulator.sql index 6f09e28d47b..ac8f319c36d 100644 --- a/setup/db/create-schema-simulator.sql +++ b/setup/db/create-schema-simulator.sql @@ -96,10 +96,10 @@ CREATE TABLE `cloud`.`mocksecurityrules` ( `vmid` bigint unsigned, `signature` varchar(255), `ruleset` varchar(4095), - `hostid` bigint unsigned, + `hostid` varchar(255), `seqnum` bigint unsigned, `vmname` varchar(255), PRIMARY KEY (`id`), INDEX `i_mocksecurityrules__vmid`(`vmid`), INDEX `i_mocksecurityrules__hostid`(`hostid`) -) ENGINE=Memory DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8;