public void Execute(AgentUpdateInfo agentUpdateInfo) { var fileName = Constants.AgentServiceReleasePackage; if (!File.Exists(fileName)) { throw new ArgumentException(string.Format("Filename '{0}' does not exist.", fileName)); } _logger.Log("Verifying checksum of downloaded agent version..."); using (var fstream = new FileStream(fileName, FileMode.Open)) { var hash = new MD5CryptoServiceProvider().ComputeHash(fstream); var result = new StringBuilder(); foreach (var b in hash) { result.AppendFormat("{0:x2}", b); } var checksum = result.ToString().ToUpper(); if (checksum != agentUpdateInfo.signature.ToUpper()) { throw new BadChecksumException(String.Format("Checksum verification failed. Incorrect checksum: {0}", checksum)); } } _logger.Log("Checksum Validated."); }
public void DoUpdate(AgentUpdateInfo agentUpdateInfo) { _agentUpdateInfo = agentUpdateInfo; _logger.Log(String.Format("Received from Agent the following data:\r\nURL:{0}\r\nCHECKSUM:{1}, will resume in a minute", _agentUpdateInfo.url, _agentUpdateInfo.signature)); new Timer(TimerElapsed, null, 60000, 0); }
public override void ScheduleUpdate(AgentUpdateInfo info, UUID fromSceneID) { AgentCircuit circuit; if (Circuits.TryGetValue(fromSceneID, out circuit)) { circuit.ScheduleUpdate(info); } }
public void SendAgentObjectToAgent(IAgent agent, IAgent targetAgent) { AgentUpdateInfo aui = agent.GetUpdateInfo(ID); if (aui != null) { targetAgent.ScheduleUpdate(aui, ID); targetAgent.SendMessageAlways(agent.GetAvatarAppearanceMsg(), ID); } }
public void Execute(AgentUpdateInfo agentUpdateInfo) { _logger.Log("Installing a new version of Agent ..."); _logger.Log("Unzipping agent zip..."); UnzipNewAgentVersion(); _logger.Log("Copying new agent files"); Utility.CopyFiles(Constants.AgentServiceUnzipPath, SvcConfiguration.AgentPath, _logger); _logger.Log("Done copying agent files."); }
public void SendAgentObjectToAllAgents(IAgent agent) { AgentUpdateInfo aui = agent.GetUpdateInfo(ID); if (aui != null) { foreach (IAgent a in Agents) { a.ScheduleUpdate(aui, ID); } } }
public void Execute(AgentUpdateInfo agentUpdateInfo) { _logger.Log("Downloading Agent ..."); if (!Directory.Exists(SvcConfiguration.AgentVersionUpdatesPath)) { Directory.CreateDirectory(SvcConfiguration.AgentVersionUpdatesPath); } var webClient = new WebClient(); webClient.DownloadFile(agentUpdateInfo.url, Constants.AgentServiceReleasePackage); _logger.Log("Agent downloaded."); }
public void ScheduleUpdate(AgentUpdateInfo agentinfo, bool isPhysicsOrigin = false) { foreach (IAgent a in Agents) { a.ScheduleUpdate(agentinfo, ID); } foreach (IAgentListener l in AgentListeners) { if (isPhysicsOrigin && l.IgnorePhysicsLocationUpdates) { continue; } l.ScheduleUpdate(agentinfo, ID); } }
public NpcAgent( UGUIWithName npcID, AgentServiceList serviceList, UUID sceneID) : base(npcID.ID, npcID.HomeURI) { FirstName = npcID.FirstName; LastName = npcID.LastName; m_InventoryService = serviceList.Get <InventoryServiceInterface>(); m_ProfileService = serviceList.Get <ProfileServiceInterface>(); m_PresenceService = serviceList.Get <IPresenceServiceInterface>(); NpcPresenceService = serviceList.Get <NpcPresenceServiceInterface>(); m_UpdateInfo = new AgentUpdateInfo(this, sceneID); OnAppearanceUpdate += HandleAppearanceUpdate; }
public void Send(AgentUpdateInfo agentUpdateInfo) { IAgentUpdater agentUpdater; try { ConnectToRemotingHost(out agentUpdater); agentUpdater.DoUpdate(agentUpdateInfo); } catch (Exception ex) { throw new UnsuccessfulCommandExecutionException( String.Format("UPDATE FAILED: {0}", ex.Message), new ExecutableResult { ExitCode = "1" }); } }
public void Execute(AgentUpdateInfo agentUpdateInfo) { _logger.Log("Starting Agent Service ..."); var serviceController = new ServiceController(Constants.AgentServiceName); if (serviceController.Status == ServiceControllerStatus.Running) { _logger.Log("Agent service already started."); return; } serviceController.Start(); serviceController.WaitForStatus(ServiceControllerStatus.Running); serviceController.Close(); _logger.Log("Agent Service started and now running ..."); }
public void Execute(AgentUpdateInfo agentUpdateInfo) { _logger.Log("Cleaning temp files/folders ... "); if (Directory.Exists(Constants.AgentServiceBackupPath)) { Directory.Delete(Constants.AgentServiceBackupPath, true); } if (File.Exists(Constants.AgentServiceReleasePackage)) { File.Delete(Constants.AgentServiceReleasePackage); } if (Directory.Exists(Constants.AgentServiceUnzipPath)) { Directory.Delete(Constants.AgentServiceUnzipPath, true); } _logger.Log("Cleaning Complete ..."); }
public void Execute(AgentUpdateInfo agentUpdateInfo) { _logger.Log("Stopping Agent Service ..."); var serviceController = new ServiceController(Constants.AgentServiceName); if (serviceController.Status == ServiceControllerStatus.Stopped) { _logger.Log("Agent Service already stopped."); return; } if (!serviceController.CanStop) { throw new ApplicationException("Service {0} can't be stop at this time, please try again later"); } serviceController.Stop(); serviceController.WaitForStatus(ServiceControllerStatus.Stopped); serviceController.Close(); _logger.Log("Agent Service successfully stopped."); }
public void Execute(AgentUpdateInfo agentUpdateInfo) { Setup(Constants.AgentServiceBackupPath); Utility.CopyFiles(SvcConfiguration.AgentPath, Constants.AgentServiceBackupPath, _logger); }
public abstract void ScheduleUpdate(AgentUpdateInfo info, UUID fromSceneID);
public override void ScheduleUpdate(AgentUpdateInfo info, UUID fromSceneID) { /* ignored */ }
public Do(AgentUpdateInfo agentUpdateInfo) { _agentUpdateInfo = agentUpdateInfo; _listOfCommands = new List <ICommand>(); }
void IAgentListener.ScheduleUpdate(AgentUpdateInfo info, UUID fromSceneID) { /* intentionally left empty */ }