mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Rudimentary RvR functionality for the simulator
- Will decide based on even - MASTER or odd - BACKUP router id - BumpUpPriority never fails and always returns true - SwitchOver is untested and most likely won't work
This commit is contained in:
		
							parent
							
								
									d947b3d62b
								
							
						
					
					
						commit
						fb813c84e1
					
				| @ -19,21 +19,7 @@ package com.cloud.agent.manager; | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| 
 | ||||
| import com.cloud.agent.api.Answer; | ||||
| import com.cloud.agent.api.CheckVirtualMachineCommand; | ||||
| import com.cloud.agent.api.CleanupNetworkRulesCmd; | ||||
| import com.cloud.agent.api.GetDomRVersionAnswer; | ||||
| import com.cloud.agent.api.GetDomRVersionCmd; | ||||
| import com.cloud.agent.api.GetVmStatsCommand; | ||||
| import com.cloud.agent.api.GetVncPortCommand; | ||||
| import com.cloud.agent.api.MigrateAnswer; | ||||
| import com.cloud.agent.api.MigrateCommand; | ||||
| import com.cloud.agent.api.NetworkUsageCommand; | ||||
| import com.cloud.agent.api.RebootCommand; | ||||
| import com.cloud.agent.api.SecurityGroupRuleAnswer; | ||||
| import com.cloud.agent.api.SecurityGroupRulesCmd; | ||||
| import com.cloud.agent.api.StartCommand; | ||||
| import com.cloud.agent.api.StopCommand; | ||||
| import com.cloud.agent.api.*; | ||||
| import com.cloud.agent.api.check.CheckSshAnswer; | ||||
| import com.cloud.agent.api.check.CheckSshCommand; | ||||
| import com.cloud.agent.api.proxy.CheckConsoleProxyLoadCommand; | ||||
| @ -91,4 +77,7 @@ public interface MockVmManager extends Manager { | ||||
| 	GetDomRVersionAnswer getDomRVersion(GetDomRVersionCmd cmd); | ||||
| 	Map<String, MockVMVO> getVms(String hostGuid); | ||||
| 
 | ||||
|     CheckRouterAnswer checkRouter(CheckRouterCommand cmd); | ||||
| 
 | ||||
|     Answer bumpPriority(BumpUpPriorityCommand cmd); | ||||
| } | ||||
|  | ||||
| @ -25,43 +25,15 @@ import java.util.concurrent.ConcurrentHashMap; | ||||
| import javax.ejb.Local; | ||||
| import javax.naming.ConfigurationException; | ||||
| 
 | ||||
| import com.cloud.agent.api.*; | ||||
| import com.cloud.agent.api.routing.*; | ||||
| import com.cloud.network.router.VirtualRouter; | ||||
| import org.apache.log4j.Logger; | ||||
| 
 | ||||
| import com.cloud.agent.api.Answer; | ||||
| import com.cloud.agent.api.CheckVirtualMachineAnswer; | ||||
| import com.cloud.agent.api.CheckVirtualMachineCommand; | ||||
| import com.cloud.agent.api.CleanupNetworkRulesCmd; | ||||
| import com.cloud.agent.api.GetDomRVersionAnswer; | ||||
| import com.cloud.agent.api.GetDomRVersionCmd; | ||||
| import com.cloud.agent.api.GetVmStatsAnswer; | ||||
| import com.cloud.agent.api.GetVmStatsCommand; | ||||
| import com.cloud.agent.api.GetVncPortAnswer; | ||||
| import com.cloud.agent.api.GetVncPortCommand; | ||||
| import com.cloud.agent.api.MigrateAnswer; | ||||
| import com.cloud.agent.api.MigrateCommand; | ||||
| import com.cloud.agent.api.NetworkUsageAnswer; | ||||
| import com.cloud.agent.api.NetworkUsageCommand; | ||||
| import com.cloud.agent.api.RebootAnswer; | ||||
| import com.cloud.agent.api.RebootCommand; | ||||
| import com.cloud.agent.api.SecurityGroupRuleAnswer; | ||||
| import com.cloud.agent.api.SecurityGroupRulesCmd; | ||||
| import com.cloud.agent.api.StartAnswer; | ||||
| import com.cloud.agent.api.StartCommand; | ||||
| import com.cloud.agent.api.StopAnswer; | ||||
| import com.cloud.agent.api.StopCommand; | ||||
| import com.cloud.agent.api.VmStatsEntry; | ||||
| import com.cloud.agent.api.check.CheckSshAnswer; | ||||
| import com.cloud.agent.api.check.CheckSshCommand; | ||||
| import com.cloud.agent.api.proxy.CheckConsoleProxyLoadCommand; | ||||
| import com.cloud.agent.api.proxy.WatchConsoleProxyLoadCommand; | ||||
| import com.cloud.agent.api.routing.DhcpEntryCommand; | ||||
| import com.cloud.agent.api.routing.IpAssocCommand; | ||||
| import com.cloud.agent.api.routing.LoadBalancerConfigCommand; | ||||
| import com.cloud.agent.api.routing.SavePasswordCommand; | ||||
| import com.cloud.agent.api.routing.SetFirewallRulesCommand; | ||||
| import com.cloud.agent.api.routing.SetPortForwardingRulesCommand; | ||||
| import com.cloud.agent.api.routing.SetStaticNatRulesCommand; | ||||
| import com.cloud.agent.api.routing.VmDataCommand; | ||||
| import com.cloud.agent.api.to.NicTO; | ||||
| import com.cloud.agent.api.to.VirtualMachineTO; | ||||
| import com.cloud.network.Networks.TrafficType; | ||||
| @ -263,6 +235,35 @@ 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"); | ||||
|             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); | ||||
|             ans.setState(VirtualRouter.RedundantState.BACKUP); | ||||
|             return ans; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     @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 { | ||||
|             return new Answer(cmd, true, "Status: BACKUP & Bumped: YES"); | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
| 	public Map<String, State> getVmStates(String hostGuid) { | ||||
| 		Transaction txn = Transaction.open(Transaction.SIMULATOR_DB); | ||||
|  | ||||
| @ -24,45 +24,9 @@ import java.util.Map; | ||||
| import javax.ejb.Local; | ||||
| import javax.naming.ConfigurationException; | ||||
| 
 | ||||
| import com.cloud.agent.api.*; | ||||
| import org.apache.log4j.Logger; | ||||
| 
 | ||||
| import com.cloud.agent.api.Answer; | ||||
| import com.cloud.agent.api.AttachIsoCommand; | ||||
| import com.cloud.agent.api.AttachVolumeCommand; | ||||
| import com.cloud.agent.api.BackupSnapshotCommand; | ||||
| import com.cloud.agent.api.CheckHealthCommand; | ||||
| import com.cloud.agent.api.CheckNetworkCommand; | ||||
| import com.cloud.agent.api.CheckVirtualMachineCommand; | ||||
| import com.cloud.agent.api.CleanupNetworkRulesCmd; | ||||
| import com.cloud.agent.api.ClusterSyncAnswer; | ||||
| import com.cloud.agent.api.ClusterSyncCommand; | ||||
| import com.cloud.agent.api.Command; | ||||
| import com.cloud.agent.api.ComputeChecksumCommand; | ||||
| import com.cloud.agent.api.CreatePrivateTemplateFromSnapshotCommand; | ||||
| import com.cloud.agent.api.CreatePrivateTemplateFromVolumeCommand; | ||||
| import com.cloud.agent.api.CreateStoragePoolCommand; | ||||
| import com.cloud.agent.api.CreateVolumeFromSnapshotCommand; | ||||
| import com.cloud.agent.api.DeleteSnapshotBackupCommand; | ||||
| import com.cloud.agent.api.DeleteStoragePoolCommand; | ||||
| import com.cloud.agent.api.GetDomRVersionCmd; | ||||
| import com.cloud.agent.api.GetHostStatsCommand; | ||||
| import com.cloud.agent.api.GetStorageStatsCommand; | ||||
| import com.cloud.agent.api.GetVmStatsCommand; | ||||
| import com.cloud.agent.api.GetVncPortCommand; | ||||
| import com.cloud.agent.api.MaintainCommand; | ||||
| import com.cloud.agent.api.ManageSnapshotCommand; | ||||
| import com.cloud.agent.api.MigrateCommand; | ||||
| import com.cloud.agent.api.ModifyStoragePoolCommand; | ||||
| import com.cloud.agent.api.NetworkUsageCommand; | ||||
| import com.cloud.agent.api.PingTestCommand; | ||||
| import com.cloud.agent.api.PrepareForMigrationCommand; | ||||
| import com.cloud.agent.api.RebootCommand; | ||||
| import com.cloud.agent.api.SecStorageSetupCommand; | ||||
| import com.cloud.agent.api.SecStorageVMSetupCommand; | ||||
| import com.cloud.agent.api.SecurityGroupRulesCmd; | ||||
| import com.cloud.agent.api.StartCommand; | ||||
| import com.cloud.agent.api.StopCommand; | ||||
| import com.cloud.agent.api.StoragePoolInfo; | ||||
| import com.cloud.agent.api.check.CheckSshCommand; | ||||
| import com.cloud.agent.api.proxy.CheckConsoleProxyLoadCommand; | ||||
| import com.cloud.agent.api.proxy.WatchConsoleProxyLoadCommand; | ||||
| @ -292,6 +256,10 @@ public class SimulatorManagerImpl implements SimulatorManager { | ||||
|                 return _mockAgentMgr.maintain((MaintainCommand)cmd); | ||||
|             } else if (cmd instanceof GetVmStatsCommand) { | ||||
|                 return _mockVmMgr.getVmStats((GetVmStatsCommand)cmd); | ||||
|             } else if (cmd instanceof CheckRouterCommand) { | ||||
|                 return _mockVmMgr.checkRouter((CheckRouterCommand) cmd); | ||||
|             } else if (cmd instanceof BumpUpPriorityCommand) { | ||||
|                 return _mockVmMgr.bumpPriority((BumpUpPriorityCommand) cmd); | ||||
|             } else if (cmd instanceof GetDomRVersionCmd) { | ||||
|             	return _mockVmMgr.getDomRVersion((GetDomRVersionCmd) cmd); | ||||
|             } else if (cmd instanceof ClusterSyncCommand) { | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user