Exemple #1
0
 public void SetGroupMemberConfig(string groupName, InstanceGroupMemberConfig cfg)
 {
     lock (this.locker)
     {
         using (RegistryKey registryKey = this.OpenGroupMemberConfigKey(groupName, cfg.Name, true))
         {
             RegUtils.SetProperty <bool>(registryKey, "IsWitness", cfg.IsWitness);
             if (!string.IsNullOrEmpty(cfg.NetworkAddress))
             {
                 RegUtils.SetProperty <string>(registryKey, "NetworkAddress", cfg.NetworkAddress);
             }
         }
     }
 }
        public static InstanceGroupMemberConfig GetMemberConfig(this InstanceGroupConfig cfg, string memberName)
        {
            InstanceGroupMemberConfig result = null;

            if (memberName == null)
            {
                memberName = cfg.Self;
            }
            if (cfg.Members != null)
            {
                result = cfg.Members.FirstOrDefault((InstanceGroupMemberConfig mc) => Utils.IsEqual(mc.Name, memberName, StringComparison.OrdinalIgnoreCase));
            }
            return(result);
        }
Exemple #3
0
        public InstanceGroupMemberConfig[] GetGroupMemberConfigs(string groupName)
        {
            List <InstanceGroupMemberConfig> list = new List <InstanceGroupMemberConfig>();

            string[] groupMemberNames = this.GetGroupMemberNames(groupName);
            foreach (string text in groupMemberNames)
            {
                InstanceGroupMemberConfig instanceGroupMemberConfig = new InstanceGroupMemberConfig
                {
                    Name = text
                };
                using (RegistryKey registryKey = this.OpenGroupMemberConfigKey(groupName, text, false))
                {
                    instanceGroupMemberConfig.NetworkAddress      = RegUtils.GetProperty <string>(registryKey, "NetworkAddress", string.Empty);
                    instanceGroupMemberConfig.IsWitness           = RegUtils.GetBoolProperty(registryKey, "IsWitness", false);
                    instanceGroupMemberConfig.IsManagedExternally = RegUtils.GetBoolProperty(registryKey, "IsManagedExternally", false);
                    list.Add(instanceGroupMemberConfig);
                }
            }
            return(list.ToArray());
        }
        public static string GetMemberNetworkAddress(this InstanceGroupConfig cfg, string target)
        {
            InstanceGroupMemberConfig memberConfig = cfg.GetMemberConfig(target);

            return(EndpointBuilder.GetNetworkAddress(cfg.Self, target, (memberConfig != null) ? memberConfig.NetworkAddress : null, cfg.NameResolver, false));
        }