Esempio n. 1
0
        public static void Main(string[] args)
        {
            StartGCTimer();

            var SINGLE_TENANT_ID   = CloudFoundryEnvironmentUtil.GetTenantIdFromEnv();
            var SINGLE_TENANT_TYPE = CloudFoundryEnvironmentUtil.GetTenantTypeFromEnv();

            Program.INSTANCE_GUID = CloudFoundryEnvironmentUtil.GetInstanceGuidFromEnv();
            Program.INSTANCE_IP   = CloudFoundryEnvironmentUtil.GetInstanceIpFromEnv();
            Program.INSTANCE_PORT = CloudFoundryEnvironmentUtil.GetInstancePortFromEnv();

            Program.cloudFoundryVcapApplication = CloudFoundryEnvironmentUtil.GetApplicationFromEnv();
            Program.cloudFoundryVcapServices    = CloudFoundryEnvironmentUtil.GetServicesFromEnv();

            Program.InstanceConfig = ConfigurationHelper.Load(cloudFoundryVcapApplication, Program.INSTANCE_GUID);

            if (Program.InstanceConfig != null && Program.cloudFoundryVcapApplication != null && Program.cloudFoundryVcapApplication.ApplicationUrls.Count > 0)
            {
                Program.InstanceConfig.Urls = Program.cloudFoundryVcapApplication.ApplicationUrls[0];
            }

            if (!string.IsNullOrEmpty(SINGLE_TENANT_ID) && !string.IsNullOrEmpty(SINGLE_TENANT_TYPE))
            {
                Tenant singleTenant = new Tenant()
                {
                    TenantId = SINGLE_TENANT_ID
                };

                Tenants.Add(singleTenant);
            }

            CreateWebHostBuilder(args).Build().Run();
        }
        public static ConfigurationData Load(CloudFoundryVcapApplication cfApp, string instanceGuid = "")
        {
            var conf = new ConfigurationData()
            {
                ServerInstanceID = Guid.NewGuid().ToString(),

                ClientDeactivateInSecs = DefaultConfigurationData.DefaultClientDeactivateInSecs,

                EvictionTimerIntervalInSecs       = DefaultConfigurationData.DefaultEvictionTimerIntervalInSecs,
                PeerEvictionInSecs                = DefaultConfigurationData.DefaultPeerEvictionInSecs,
                PeerMinHeartbeatInSecs            = DefaultConfigurationData.DefaultPeerMinHeartbeatInSecs,
                PeerHeartbeatBeforeEvictionInSecs = DefaultConfigurationData.DefaultPeerHeartbeatBeforeEvictionInSecs,

                EvictionInSecs        = DefaultConfigurationData.DefaultEvictionInSecs,
                RenewalIntervalInSecs = DefaultConfigurationData.DefaultRenewalIntervalInSecs,
                DurationInSecs        = DefaultConfigurationData.DefaultDurationInSecs,

                PersistencyType                 = DefaultConfigurationData.DefaultPersistencyType,
                PersistencyHostName             = DefaultConfigurationData.DefaultPersistencyHostName,
                PersistencyPort                 = DefaultConfigurationData.DefaultPersistencyPort,
                PersistencyUsername             = DefaultConfigurationData.DefaultPersistencyUsername,
                PersistencyPassword             = DefaultConfigurationData.DefaultPersistencyPassword,
                PersistencyDBName               = DefaultConfigurationData.DefaultPersistencyDBName,
                PersistencySyncWaitSeconds      = DefaultConfigurationData.DefaultPersistencySyncWaitSeconds,
                PersistencySyncMinRandomSeconds = DefaultConfigurationData.DefaultPersistencySyncMinRandomSeconds,
                PersistencySyncMaxRandomSeconds = DefaultConfigurationData.DefaultPersistencySyncMaxRandomSeconds
            };

            if (cfApp != null)
            {
                if (string.IsNullOrEmpty(instanceGuid))
                {
                    conf.ServerInstanceID = cfApp.ApplicationId + "-" + cfApp.InstanceIndex;
                }
                else
                {
                    conf.ServerInstanceID = instanceGuid;
                }
            }

            return(conf);
        }
Esempio n. 3
0
        public static CloudFoundryVcapApplication GetApplicationFromEnv()
        {
            CloudFoundryVcapApplication app = null;

            // get VCAP_APPLICATION
            try
            {
                var VCAP_APPLICATION = Environment.GetEnvironmentVariable("VCAP_APPLICATION");
                Console.WriteLine("VCAP_APPLICATION : " + VCAP_APPLICATION);

                if (VCAP_APPLICATION != null)
                {
                    var vcapApp = JsonConvert.DeserializeObject <CloudFoundryVcapApplication>(VCAP_APPLICATION, NServiceDiscoveryJsonSerializerSettings.IgnoreMissingPropetiesSettings);
                    app = vcapApp;
                }
            }
            catch (Exception err)
            {
                app = null;
                Console.WriteLine("VCAP_APPLICATION ERROR : " + err.Message);
            }

            return(app);
        }