Example #1
0
        internal JsonInstanceInfo ToJsonInstance()
        {
            JsonInstanceInfo jinfo = new JsonInstanceInfo();

            jinfo.InstanceId                    = this.InstanceId;
            jinfo.Sid                           = (this.Sid == null) ? "na" : this.Sid;
            jinfo.AppName                       = this.AppName;
            jinfo.AppGroupName                  = this.AppGroupName;
            jinfo.IpAddr                        = this.IpAddr;
            jinfo.Port                          = new JsonInstanceInfo.JsonPortWrapper(this.IsUnsecurePortEnabled, this.Port);
            jinfo.SecurePort                    = new JsonInstanceInfo.JsonPortWrapper(this.IsSecurePortEnabled, this.SecurePort);
            jinfo.HomePageUrl                   = this.HomePageUrl;
            jinfo.StatusPageUrl                 = this.StatusPageUrl;
            jinfo.HealthCheckUrl                = this.HealthCheckUrl;
            jinfo.SecureHealthCheckUrl          = this.SecureHealthCheckUrl;
            jinfo.VipAddress                    = this.VipAddress;
            jinfo.SecureVipAddress              = this.SecureVipAddress;
            jinfo.CountryId                     = this.CountryId;
            jinfo.DataCenterInfo                = (this.DataCenterInfo == null) ? null : ((AppInfo.DataCenterInfo)DataCenterInfo).ToJson();
            jinfo.HostName                      = this.HostName;
            jinfo.Status                        = this.Status;
            jinfo.OverriddenStatus              = this.OverriddenStatus;
            jinfo.LeaseInfo                     = (this.LeaseInfo == null) ? null : this.LeaseInfo.ToJson();
            jinfo.IsCoordinatingDiscoveryServer = this.IsCoordinatingDiscoveryServer;
            jinfo.LastUpdatedTimestamp          = DateTimeConversions.ToJavaMillis(new DateTime(this.LastUpdatedTimestamp, DateTimeKind.Utc));
            jinfo.LastDirtyTimestamp            = DateTimeConversions.ToJavaMillis(new DateTime(this.LastDirtyTimestamp, DateTimeKind.Utc));
            jinfo.Actiontype                    = this.Actiontype;
            jinfo.AsgName                       = this.AsgName;
            jinfo.Metadata                      = (this.Metadata.Count == 0) ? new Dictionary <string, string>()
            {
                { "@class", "java.util.Collections$EmptyMap" }
            } : this.Metadata;

            return(jinfo);
        }
Example #2
0
        public void ToJsonInstance_DefaultInstanceConfig_Correct()
        {
            EurekaInstanceConfig config = new EurekaInstanceConfig();
            InstanceInfo         info   = InstanceInfo.FromInstanceConfig(config);

            Assert.NotNull(info);

            JsonInstanceInfo jinfo = info.ToJsonInstance();

            // Verify
            Assert.Equal(config.GetHostName(false), jinfo.InstanceId);
            Assert.Equal(EurekaInstanceConfig.Default_Appname.ToUpperInvariant(), jinfo.AppName);
            Assert.Null(jinfo.AppGroupName);
            Assert.Equal(config.IpAddress, jinfo.IpAddr);
            Assert.Equal("na", jinfo.Sid);
            Assert.NotNull(jinfo.Port);
            Assert.Equal(80, jinfo.Port.Port);
            Assert.True(Boolean.Parse(jinfo.Port.Enabled));
            Assert.NotNull(jinfo.SecurePort);
            Assert.Equal(443, jinfo.SecurePort.Port);
            Assert.False(Boolean.Parse(jinfo.SecurePort.Enabled));
            Assert.Equal("http://" + config.GetHostName(false) + ":" + 80 + "/", jinfo.HomePageUrl);
            Assert.Equal("http://" + config.GetHostName(false) + ":" + 80 + "/Status", jinfo.StatusPageUrl);
            Assert.Equal("http://" + config.GetHostName(false) + ":" + 80 + "/healthcheck", jinfo.HealthCheckUrl);
            Assert.Null(jinfo.SecureHealthCheckUrl);
            Assert.Equal(config.GetHostName(false) + ":" + 80, jinfo.VipAddress);
            Assert.Equal(config.GetHostName(false) + ":" + 443, jinfo.SecureVipAddress);
            Assert.Equal(1, jinfo.CountryId);
            Assert.NotNull(jinfo.DataCenterInfo);
            Assert.Equal("MyOwn", jinfo.DataCenterInfo.Name);
            Assert.Equal("com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo", jinfo.DataCenterInfo.ClassName);
            Assert.Equal(config.GetHostName(false), jinfo.HostName);
            Assert.Equal(InstanceStatus.STARTING, jinfo.Status);
            Assert.Equal(InstanceStatus.UNKNOWN, jinfo.OverriddenStatus);
            Assert.NotNull(jinfo.LeaseInfo);
            Assert.Equal(30, jinfo.LeaseInfo.RenewalIntervalInSecs);
            Assert.Equal(90, jinfo.LeaseInfo.DurationInSecs);
            Assert.Equal(0, jinfo.LeaseInfo.RegistrationTimestamp);
            Assert.Equal(0, jinfo.LeaseInfo.LastRenewalTimestamp);
            Assert.Equal(0, jinfo.LeaseInfo.LastRenewalTimestampLegacy);
            Assert.Equal(0, jinfo.LeaseInfo.EvictionTimestamp);
            Assert.Equal(0, jinfo.LeaseInfo.ServiceUpTimestamp);
            Assert.False(jinfo.IsCoordinatingDiscoveryServer);
            Assert.NotNull(jinfo.Metadata);
            Assert.Equal(1, jinfo.Metadata.Count);
            Assert.True(jinfo.Metadata.ContainsKey("@class"));
            Assert.True(jinfo.Metadata.ContainsValue("java.util.Collections$EmptyMap"));
            Assert.Equal(jinfo.LastDirtyTimestamp, jinfo.LastUpdatedTimestamp);
            Assert.Equal(ActionType.ADDED, jinfo.Actiontype);
            Assert.Null(jinfo.AsgName);
        }
        public async void RegisterAsync_SendsValidPOSTData()
        {
            IHostingEnvironment envir = new HostingEnvironment();

            TestConfigServerStartup.Response     = "";
            TestConfigServerStartup.ReturnStatus = 204;
            var builder = new WebHostBuilder().UseStartup <TestConfigServerStartup>().UseEnvironment(envir.EnvironmentName);
            var server  = new TestServer(builder);


            var uri = "http://localhost:8888/";

            server.BaseAddress = new Uri(uri);
            EurekaInstanceConfig config = new EurekaInstanceConfig()
            {
                AppName = "foobar"
            };

            InstanceInfo info = InstanceInfo.FromInstanceConfig(config);

            var cconfig = new EurekaClientConfig()
            {
                EurekaServerServiceUrls = uri
            };
            var client = new EurekaHttpClient(cconfig, server.CreateClient());
            EurekaHttpResponse resp = await client.RegisterAsync(info);

            Assert.NotNull(TestConfigServerStartup.LastRequest);
            Assert.Equal("POST", TestConfigServerStartup.LastRequest.Method);
            Assert.Equal("localhost:8888", TestConfigServerStartup.LastRequest.Host.Value);
            Assert.Equal("/apps/FOOBAR", TestConfigServerStartup.LastRequest.Path.Value);

            // Check JSON payload
            JsonInstanceInfoRoot recvJson = JsonInstanceInfoRoot.Deserialize(TestConfigServerStartup.RequestBody);

            Assert.NotNull(recvJson);
            Assert.NotNull(recvJson.Instance);

            // Compare a few random values
            JsonInstanceInfo sentJsonObj = info.ToJsonInstance();

            Assert.Equal(sentJsonObj.Actiontype, recvJson.Instance.Actiontype);
            Assert.Equal(sentJsonObj.AppName, recvJson.Instance.AppName);
            Assert.Equal(sentJsonObj.HostName, recvJson.Instance.HostName);
        }
Example #4
0
 private static string GetInstanceIdFromJson(JsonInstanceInfo jinfo, Dictionary <string, string> metaData)
 {
     if (string.IsNullOrEmpty(jinfo.InstanceId))
     {
         if (metaData == null)
         {
             return(null);
         }
         string mid = null;
         if (metaData.TryGetValue("instanceId", out mid))
         {
             return(jinfo.HostName + ":" + mid);
         }
         return(null);
     }
     else
     {
         return(jinfo.InstanceId);
     }
 }
Example #5
0
        internal static InstanceInfo FromJsonInstance(JsonInstanceInfo json)
        {
            var info = new InstanceInfo();

            if (json != null)
            {
                info._sid                          = json.Sid ?? "na";
                info.AppName                       = json.AppName;
                info.AppGroupName                  = json.AppGroupName;
                info.IpAddr                        = json.IpAddr;
                info.Port                          = (json.Port == null) ? 0 : json.Port.Port;
                info.IsUnsecurePortEnabled         = json.Port != null && json.Port.Enabled;
                info.SecurePort                    = (json.SecurePort == null) ? 0 : json.SecurePort.Port;
                info.IsSecurePortEnabled           = json.SecurePort != null && json.SecurePort.Enabled;
                info.HomePageUrl                   = json.HomePageUrl;
                info.StatusPageUrl                 = json.StatusPageUrl;
                info.HealthCheckUrl                = json.HealthCheckUrl;
                info.SecureHealthCheckUrl          = json.SecureHealthCheckUrl;
                info.VipAddress                    = json.VipAddress;
                info.SecureVipAddress              = json.SecureVipAddress;
                info.CountryId                     = json.CountryId;
                info.DataCenterInfo                = (json.DataCenterInfo == null) ? null : AppInfo.DataCenterInfo.FromJson(json.DataCenterInfo);
                info.HostName                      = json.HostName;
                info.Status                        = json.Status;
                info.OverriddenStatus              = json.OverriddenStatus;
                info.LeaseInfo                     = LeaseInfo.FromJson(json.LeaseInfo);
                info.IsCoordinatingDiscoveryServer = json.IsCoordinatingDiscoveryServer;
                info.LastUpdatedTimestamp          = DateTimeConversions.FromJavaMillis(json.LastUpdatedTimestamp).Ticks;
                info.LastDirtyTimestamp            = DateTimeConversions.FromJavaMillis(json.LastDirtyTimestamp).Ticks;
                info.Actiontype                    = json.Actiontype;
                info.AsgName                       = json.AsgName;
                info._metaData                     = GetMetaDataFromJson(json.Metadata);
                info.InstanceId                    = GetInstanceIdFromJson(json, info._metaData);
            }

            return(info);
        }
Example #6
0
        internal JsonInstanceInfo ToJsonInstance()
        {
            var jinfo = new JsonInstanceInfo
            {
                InstanceId                    = InstanceId,
                Sid                           = Sid ?? "na",
                AppName                       = AppName,
                AppGroupName                  = AppGroupName,
                IpAddr                        = IpAddr,
                Port                          = new JsonInstanceInfo.JsonPortWrapper(IsUnsecurePortEnabled, Port),
                SecurePort                    = new JsonInstanceInfo.JsonPortWrapper(IsSecurePortEnabled, SecurePort),
                HomePageUrl                   = HomePageUrl,
                StatusPageUrl                 = StatusPageUrl,
                HealthCheckUrl                = HealthCheckUrl,
                SecureHealthCheckUrl          = SecureHealthCheckUrl,
                VipAddress                    = VipAddress,
                SecureVipAddress              = SecureVipAddress,
                CountryId                     = CountryId,
                DataCenterInfo                = (DataCenterInfo == null) ? null : ((DataCenterInfo)DataCenterInfo).ToJson(),
                HostName                      = HostName,
                Status                        = Status,
                OverriddenStatus              = OverriddenStatus,
                LeaseInfo                     = LeaseInfo?.ToJson(),
                IsCoordinatingDiscoveryServer = IsCoordinatingDiscoveryServer,
                LastUpdatedTimestamp          = DateTimeConversions.ToJavaMillis(new DateTime(LastUpdatedTimestamp, DateTimeKind.Utc)),
                LastDirtyTimestamp            = DateTimeConversions.ToJavaMillis(new DateTime(LastDirtyTimestamp, DateTimeKind.Utc)),
                Actiontype                    = Actiontype,
                AsgName                       = AsgName,
                Metadata                      = (Metadata.Count == 0) ? new Dictionary <string, string>()
                {
                    { "@class", "java.util.Collections$EmptyMap" }
                } : Metadata
            };

            return(jinfo);
        }
Example #7
0
        internal static InstanceInfo FromJsonInstance(JsonInstanceInfo json)
        {
            InstanceInfo info = new InstanceInfo();

            if (json != null)
            {
                info._sid                           = (json.Sid == null) ? "na" : json.Sid;
                info._appName                       = json.AppName;
                info._appGroupName                  = json.AppGroupName;
                info._ipAddr                        = json.IpAddr;
                info._port                          = (json.Port == null) ? 0 : json.Port.Port;
                info._isUnsecurePortEnabled         = (json.Port == null) ? false : Boolean.Parse(json.Port.Enabled);
                info._securePort                    = (json.SecurePort == null) ? 0 : json.SecurePort.Port;
                info._isSecurePortEnabled           = (json.Port == null) ? false : Boolean.Parse(json.SecurePort.Enabled);
                info._homePageUrl                   = json.HomePageUrl;
                info._statusPageUrl                 = json.StatusPageUrl;
                info._healthCheckUrl                = json.HealthCheckUrl;
                info._secureHealthCheckUrl          = json.SecureHealthCheckUrl;
                info._vipAddress                    = json.VipAddress;
                info._secureVipAddress              = json.SecureVipAddress;
                info._countryId                     = json.CountryId;
                info._dataCenterInfo                = (json.DataCenterInfo == null) ? null : AppInfo.DataCenterInfo.FromJson(json.DataCenterInfo);
                info._hostName                      = json.HostName;
                info._status                        = json.Status;
                info._overRiddenStatus              = json.OverriddenStatus;
                info._leaseInfo                     = LeaseInfo.FromJson(json.LeaseInfo);
                info._isCoordinatingDiscoveryServer = json.IsCoordinatingDiscoveryServer;
                info._lastUpdatedTimestamp          = DateTimeConversions.FromJavaMillis(json.LastUpdatedTimestamp).Ticks;
                info._lastDirtyTimestamp            = DateTimeConversions.FromJavaMillis(json.LastDirtyTimestamp).Ticks;
                info._actionType                    = json.Actiontype;
                info._asgName                       = json.AsgName;
                info._metaData                      = GetMetaDataFromJson(json.Metadata);
                info._instanceId                    = GetInstanceIdFromJson(json, info._metaData);
            }
            return(info);
        }
Example #8
0
        public void FromJsonInstance_Correct()
        {
            JsonInstanceInfo jinfo = new JsonInstanceInfo()
            {
                InstanceId           = "InstanceId",
                AppName              = "AppName",
                AppGroupName         = "AppGroupName",
                IpAddr               = "IpAddr",
                Sid                  = "Sid",
                Port                 = new JsonInstanceInfo.JsonPortWrapper(true, 100),
                SecurePort           = new JsonInstanceInfo.JsonPortWrapper(false, 100),
                HomePageUrl          = "HomePageUrl",
                StatusPageUrl        = "StatusPageUrl",
                HealthCheckUrl       = "HealthCheckUrl",
                SecureHealthCheckUrl = "SecureHealthCheckUrl",
                VipAddress           = "VipAddress",
                SecureVipAddress     = "SecureVipAddress",
                CountryId            = 1,
                DataCenterInfo       = new JsonInstanceInfo.JsonDataCenterInfo("", "MyOwn"),
                HostName             = "HostName",
                Status               = InstanceStatus.DOWN,
                OverriddenStatus     = InstanceStatus.OUT_OF_SERVICE,
                LeaseInfo            = new JsonLeaseInfo()
                {
                    RenewalIntervalInSecs      = 1,
                    DurationInSecs             = 2,
                    RegistrationTimestamp      = 1457973741708,
                    LastRenewalTimestamp       = 1457973741708,
                    LastRenewalTimestampLegacy = 1457973741708,
                    EvictionTimestamp          = 1457973741708,
                    ServiceUpTimestamp         = 1457973741708
                },
                IsCoordinatingDiscoveryServer = false,
                Metadata = new Dictionary <string, string>()
                {
                    { "@class", "java.util.Collections$EmptyMap" }
                },
                LastUpdatedTimestamp = 1457973741708,
                LastDirtyTimestamp   = 1457973741708,
                Actiontype           = ActionType.ADDED,
                AsgName = "AsgName"
            };

            InstanceInfo info = InstanceInfo.FromJsonInstance(jinfo);

            Assert.NotNull(info);

            // Verify
            Assert.Equal("InstanceId", info.InstanceId);
            Assert.Equal("AppName", info.AppName);
            Assert.Equal("AppGroupName", info.AppGroupName);
            Assert.Equal("IpAddr", info.IpAddr);
            Assert.Equal("Sid", info.Sid);
            Assert.Equal(100, info.Port);
            Assert.True(info.IsUnsecurePortEnabled);
            Assert.Equal(100, info.SecurePort);
            Assert.False(info.IsSecurePortEnabled);
            Assert.Equal("HomePageUrl", info.HomePageUrl);
            Assert.Equal("StatusPageUrl", info.StatusPageUrl);
            Assert.Equal("HealthCheckUrl", info.HealthCheckUrl);
            Assert.Equal("SecureHealthCheckUrl", info.SecureHealthCheckUrl);
            Assert.Equal("VipAddress", info.VipAddress);
            Assert.Equal("SecureVipAddress", info.SecureVipAddress);
            Assert.Equal(1, info.CountryId);
            Assert.Equal("MyOwn", info.DataCenterInfo.Name.ToString());
            Assert.Equal("HostName", info.HostName);
            Assert.Equal(InstanceStatus.DOWN, info.Status);
            Assert.Equal(InstanceStatus.OUT_OF_SERVICE, info.OverriddenStatus);
            Assert.NotNull(info.LeaseInfo);
            Assert.Equal(1, info.LeaseInfo.RenewalIntervalInSecs);
            Assert.Equal(2, info.LeaseInfo.DurationInSecs);
            Assert.Equal(635935705417080000L, info.LeaseInfo.RegistrationTimestamp);
            Assert.Equal(635935705417080000L, info.LeaseInfo.LastRenewalTimestamp);
            Assert.Equal(635935705417080000L, info.LeaseInfo.LastRenewalTimestampLegacy);
            Assert.Equal(635935705417080000L, info.LeaseInfo.EvictionTimestamp);
            Assert.Equal(635935705417080000L, info.LeaseInfo.ServiceUpTimestamp);
            Assert.False(info.IsCoordinatingDiscoveryServer);
            Assert.NotNull(info.Metadata);
            Assert.Equal(0, info.Metadata.Count);
            Assert.Equal(635935705417080000L, info.LastUpdatedTimestamp);
            Assert.Equal(635935705417080000L, info.LastDirtyTimestamp);
            Assert.Equal(ActionType.ADDED, info.Actiontype);
            Assert.Equal("AsgName", info.AsgName);
        }
        public void Deserialize_GoodJson()
        {
            var json = @"
{ 
    ""instanceId"":""localhost:foo"",
    ""hostName"":""localhost"",
    ""app"":""FOO"",
    ""ipAddr"":""192.168.56.1"",
    ""status"":""UP"",
    ""overriddenstatus"":""UNKNOWN"",
    ""port"":{""$"":8080,""@enabled"":""true""},
    ""securePort"":{""$"":443,""@enabled"":""false""},
    ""countryId"":1,
    ""dataCenterInfo"":{""@class"":""com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"",""name"":""MyOwn""},
    ""leaseInfo"":{""renewalIntervalInSecs"":30,""durationInSecs"":90,""registrationTimestamp"":1457714988223,""lastRenewalTimestamp"":1457716158319,""evictionTimestamp"":0,""serviceUpTimestamp"":1457714988223},
    ""metadata"":{""@class"":""java.util.Collections$EmptyMap""},
    ""homePageUrl"":""http://*****:*****@class"));
            Assert.True(metadata.ContainsValue("java.util.Collections$EmptyMap"));
            Assert.Equal("http://localhost:8080/", result.HomePageUrl);
            Assert.Equal("http://localhost:8080/info", result.StatusPageUrl);
            Assert.Equal("http://localhost:8080/health", result.HealthCheckUrl);
            Assert.Equal("foo", result.VipAddress);
            Assert.False(result.IsCoordinatingDiscoveryServer);
            Assert.Equal(1457714988223, result.LastUpdatedTimestamp);
            Assert.Equal(1457714988172, result.LastDirtyTimestamp);
            Assert.Equal(ActionType.ADDED, result.Actiontype);
        }
Example #10
0
        public void FromJsonApplications_WithMissingInstanceId()
        {
            JsonInstanceInfo jinfo = new JsonInstanceInfo()
            {
                // InstanceId = "InstanceId",
                AppName              = "myApp",
                AppGroupName         = "AppGroupName",
                IpAddr               = "IpAddr",
                Sid                  = "Sid",
                Port                 = new JsonInstanceInfo.JsonPortWrapper(true, 100),
                SecurePort           = new JsonInstanceInfo.JsonPortWrapper(false, 100),
                HomePageUrl          = "HomePageUrl",
                StatusPageUrl        = "StatusPageUrl",
                HealthCheckUrl       = "HealthCheckUrl",
                SecureHealthCheckUrl = "SecureHealthCheckUrl",
                VipAddress           = "VipAddress",
                SecureVipAddress     = "SecureVipAddress",
                CountryId            = 1,
                DataCenterInfo       = new JsonInstanceInfo.JsonDataCenterInfo(string.Empty, "MyOwn"),
                HostName             = "HostName",
                Status               = InstanceStatus.DOWN,
                OverriddenStatus     = InstanceStatus.OUT_OF_SERVICE,
                LeaseInfo            = new JsonLeaseInfo()
                {
                    RenewalIntervalInSecs      = 1,
                    DurationInSecs             = 2,
                    RegistrationTimestamp      = 1457973741708,
                    LastRenewalTimestamp       = 1457973741708,
                    LastRenewalTimestampLegacy = 1457973741708,
                    EvictionTimestamp          = 1457973741708,
                    ServiceUpTimestamp         = 1457973741708
                },
                IsCoordinatingDiscoveryServer = false,
                Metadata = new Dictionary <string, string>()
                {
                    { "@class", "java.util.Collections$EmptyMap" }
                },
                LastUpdatedTimestamp = 1457973741708,
                LastDirtyTimestamp   = 1457973741708,
                Actiontype           = ActionType.ADDED,
                AsgName = "AsgName"
            };
            JsonApplication japp = new JsonApplication()
            {
                Name      = "myApp",
                Instances = new List <JsonInstanceInfo> {
                    jinfo
                }
            };

            JsonApplications japps = new JsonApplications()
            {
                AppsHashCode = "AppsHashCode",
                VersionDelta = 1L,
                Applications = new List <JsonApplication>()
                {
                    japp
                }
            };

            Applications apps = Applications.FromJsonApplications(japps);

            Assert.Equal("AppsHashCode", apps.AppsHashCode);
            Assert.Equal(1, apps.Version);
            Assert.NotNull(apps.ApplicationMap);
            Assert.Single(apps.ApplicationMap);

            Application app = apps.GetRegisteredApplication("myApp");

            // Verify
            Assert.NotNull(app);
            Assert.Equal("myApp", app.Name);
            Assert.NotNull(app.Instances);
            Assert.Equal(1, app.Count);
            Assert.Equal(1, app.Instances.Count);
            Assert.Null(app.GetInstance("InstanceId"));
        }
        public void Deserialize_GoodJson()
        {
            var json = @"
{ 
    'instanceId':'localhost:foo',
    'hostName':'localhost',
    'app':'FOO',
    'ipAddr':'192.168.56.1',
    'status':'UP',
    'overriddenstatus':'UNKNOWN',
    'port':{'$':8080,'@enabled':'true'},
    'securePort':{'$':443,'@enabled':'false'},
    'countryId':1,
    'dataCenterInfo':{'@class':'com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo','name':'MyOwn'},
    'leaseInfo':{'renewalIntervalInSecs':30,'durationInSecs':90,'registrationTimestamp':1457714988223,'lastRenewalTimestamp':1457716158319,'evictionTimestamp':0,'serviceUpTimestamp':1457714988223},
    'metadata':{'@class':'java.util.Collections$EmptyMap'},
    'homePageUrl':'http://*****:*****@class"));
            Assert.True(metadata.ContainsValue("java.util.Collections$EmptyMap"));
            Assert.Equal("http://localhost:8080/", result.HomePageUrl);
            Assert.Equal("http://localhost:8080/info", result.StatusPageUrl);
            Assert.Equal("http://localhost:8080/health", result.HealthCheckUrl);
            Assert.Equal("foo", result.VipAddress);
            Assert.False(result.IsCoordinatingDiscoveryServer);
            Assert.Equal(1457714988223, result.LastUpdatedTimestamp);
            Assert.Equal(1457714988172, result.LastDirtyTimestamp);
            Assert.Equal(ActionType.ADDED, result.Actiontype);
        }
Example #12
0
        public void FromJsonApplications_Correct()
        {
            var jinfo = new JsonInstanceInfo()
            {
                InstanceId           = "InstanceId",
                AppName              = "myApp",
                AppGroupName         = "AppGroupName",
                IpAddr               = "IpAddr",
                Sid                  = "Sid",
                Port                 = new JsonInstanceInfo.JsonPortWrapper(true, 100),
                SecurePort           = new JsonInstanceInfo.JsonPortWrapper(false, 100),
                HomePageUrl          = "HomePageUrl",
                StatusPageUrl        = "StatusPageUrl",
                HealthCheckUrl       = "HealthCheckUrl",
                SecureHealthCheckUrl = "SecureHealthCheckUrl",
                VipAddress           = "VipAddress",
                SecureVipAddress     = "SecureVipAddress",
                CountryId            = 1,
                DataCenterInfo       = new JsonInstanceInfo.JsonDataCenterInfo(string.Empty, "MyOwn"),
                HostName             = "HostName",
                Status               = InstanceStatus.DOWN,
                OverriddenStatus     = InstanceStatus.OUT_OF_SERVICE,
                LeaseInfo            = new JsonLeaseInfo()
                {
                    RenewalIntervalInSecs      = 1,
                    DurationInSecs             = 2,
                    RegistrationTimestamp      = 1457973741708,
                    LastRenewalTimestamp       = 1457973741708,
                    LastRenewalTimestampLegacy = 1457973741708,
                    EvictionTimestamp          = 1457973741708,
                    ServiceUpTimestamp         = 1457973741708
                },
                IsCoordinatingDiscoveryServer = false,
                Metadata = new Dictionary <string, string>()
                {
                    { "@class", "java.util.Collections$EmptyMap" }
                },
                LastUpdatedTimestamp = 1457973741708,
                LastDirtyTimestamp   = 1457973741708,
                Actiontype           = ActionType.ADDED,
                AsgName = "AsgName"
            };
            var japp = new JsonApplication()
            {
                Name      = "myApp",
                Instances = new List <JsonInstanceInfo> {
                    jinfo
                }
            };

            var japps = new JsonApplications()
            {
                AppsHashCode = "AppsHashCode",
                VersionDelta = 1L,
                Applications = new List <JsonApplication>()
                {
                    japp
                }
            };

            var apps = Applications.FromJsonApplications(japps);

            Assert.Equal("AppsHashCode", apps.AppsHashCode);
            Assert.Equal(1, apps.Version);
            Assert.NotNull(apps.ApplicationMap);
            Assert.Single(apps.ApplicationMap);

            var app = apps.GetRegisteredApplication("myApp");

            // Verify
            Assert.NotNull(app);
            Assert.Equal("myApp", app.Name);
            Assert.NotNull(app.Instances);
            Assert.Equal(1, app.Count);
            Assert.Equal(1, app.Instances.Count);
            Assert.NotNull(app.GetInstance("InstanceId"));
            var info = app.GetInstance("InstanceId");

            Assert.Equal("InstanceId", info.InstanceId);
            Assert.Equal("myApp", info.AppName);
            Assert.Equal("AppGroupName", info.AppGroupName);
            Assert.Equal("IpAddr", info.IpAddr);
            Assert.Equal("Sid", info.Sid);
            Assert.Equal(100, info.Port);
            Assert.True(info.IsUnsecurePortEnabled);
            Assert.Equal(100, info.SecurePort);
            Assert.False(info.IsSecurePortEnabled);
            Assert.Equal("HomePageUrl", info.HomePageUrl);
            Assert.Equal("StatusPageUrl", info.StatusPageUrl);
            Assert.Equal("HealthCheckUrl", info.HealthCheckUrl);
            Assert.Equal("SecureHealthCheckUrl", info.SecureHealthCheckUrl);
            Assert.Equal("VipAddress", info.VipAddress);
            Assert.Equal("SecureVipAddress", info.SecureVipAddress);
            Assert.Equal(1, info.CountryId);
            Assert.Equal("MyOwn", info.DataCenterInfo.Name.ToString());
            Assert.Equal("HostName", info.HostName);
            Assert.Equal(InstanceStatus.DOWN, info.Status);
            Assert.Equal(InstanceStatus.OUT_OF_SERVICE, info.OverriddenStatus);
            Assert.NotNull(info.LeaseInfo);
            Assert.Equal(1, info.LeaseInfo.RenewalIntervalInSecs);
            Assert.Equal(2, info.LeaseInfo.DurationInSecs);
            Assert.Equal(635935705417080000L, info.LeaseInfo.RegistrationTimestamp);
            Assert.Equal(635935705417080000L, info.LeaseInfo.LastRenewalTimestamp);
            Assert.Equal(635935705417080000L, info.LeaseInfo.LastRenewalTimestampLegacy);
            Assert.Equal(635935705417080000L, info.LeaseInfo.EvictionTimestamp);
            Assert.Equal(635935705417080000L, info.LeaseInfo.ServiceUpTimestamp);
            Assert.False(info.IsCoordinatingDiscoveryServer);
            Assert.NotNull(info.Metadata);
            Assert.Empty(info.Metadata);
            Assert.Equal(635935705417080000L, info.LastUpdatedTimestamp);
            Assert.Equal(635935705417080000L, info.LastDirtyTimestamp);
            Assert.Equal(ActionType.ADDED, info.Actiontype);
            Assert.Equal("AsgName", info.AsgName);
        }