public virtual void AgentConnect(Dom.Agent agent) { if (!_agents.Keys.Contains(agent.name)) { AddAgent(agent); } AgentConnect(agent.name); }
private void AddAgent(Dom.Agent agentDef) { Uri uri = new Uri(agentDef.location); var type = ClassLoader.FindTypeByAttribute <AgentAttribute>((x, y) => y.protocol == uri.Scheme); if (type == null) { throw new PeachException("Error, unable to locate agent that supports the '" + uri.Scheme + "' protocol."); } var agent = Activator.CreateInstance(type, agentDef.name, agentDef.location, agentDef.password) as AgentClient; _agents[agentDef.name] = agent; _agentDefinitions[agentDef.name] = agentDef; }
private void AgentConnect(string name) { logger.Trace("AgentConnect: {0}", name); Dom.Agent def = _agentDefinitions[name]; AgentClient agent = _agents[name]; try { agent.AgentConnect(def.name, def.location, def.password); } catch { _agents.Remove(name); _agentDefinitions.Remove(name); throw; } foreach (Dom.Monitor mon in def.monitors) { string monitorName = mon.name != null ? mon.name : "Monitor_" + UniqueNames++; agent.StartMonitor(monitorName, mon.cls, mon.parameters); } }