Exemple #1
0
        protected void Checkin()
        {
            logger.LogInfo("Checking in with server");
            var agentInfo = AgentInfo.GetAgentInfo();

            cloudHealthAPI.Checkin(agentInfo, (response, agentStatus) =>
            {
                logger.LogInfo("Checkin response: {0}", response.StatusCode);
                if (response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Created)
                {
                    logger.LogInfo("Agent Status: {0}", agentStatus);
                    agentConfig.UpdateConfiguration(agentStatus);
                    var newVersion = agentStatus.WindowsVersion.GetValueOrDefault(agentInfo.Version);
                    logger.LogInfo("Local Version: {0}, Remote Version: {1}", agentInfo.Version, newVersion);
                    if (agentInfo.Version >= newVersion)
                    {
                        return;
                    }
                    if (agentConfig.AutoUpdate)
                    {
                        DownloadUpdate(newVersion);
                    }
                    else
                    {
                        logger.LogInfo("Skipping update because AutoUpdate is disabled");
                    }
                }
                else
                {
                    string message = response.Content.Length > 0 ? response.Content : response.ErrorMessage;
                    logger.LogError("Checkin failed with status code: {0} - {1}", response.StatusCode, message);
                }
            });
        }