internal static bool EndpointRangeEquals(FabricEndpointsTypeApplicationEndpoints endpointRangeA, FabricEndpointsTypeApplicationEndpoints endpointRangeB)
        {
            if (endpointRangeA == null && endpointRangeB == null)
            {
                return(true);
            }

            if (endpointRangeA == null || endpointRangeB == null)
            {
                return(false);
            }

            return(endpointRangeA.StartPort == endpointRangeB.StartPort && endpointRangeA.EndPort == endpointRangeB.EndPort);
        }
Example #2
0
        internal static NonWindowsFabricEndpointSet GetNonWindowsFabricEndpointSet(IDictionary <string, RoleInstanceEndpoint> roleInstanceEndpointMap)
        {
            Dictionary <string, InputEndpointType> nonWindowsFabricPorts = new Dictionary <string, InputEndpointType>(StringComparer.OrdinalIgnoreCase);
            Dictionary <string, FabricEndpointsTypeApplicationEndpoints> nonWindowsFabricPortRanges = new Dictionary <string, FabricEndpointsTypeApplicationEndpoints>(StringComparer.OrdinalIgnoreCase);

            foreach (KeyValuePair <string, RoleInstanceEndpoint> roleInstanceEndpoint in roleInstanceEndpointMap)
            {
                string roleInstanceEndpointName = roleInstanceEndpoint.Key;

                if (WindowsFabricAzureWrapperServiceCommon.FabricEndpointNames.FirstOrDefault(name => string.Compare(name, roleInstanceEndpointName, StringComparison.OrdinalIgnoreCase) == 0) == null)
                {
                    string portRangeConfigurationSettingName = string.Format(CultureInfo.InvariantCulture, WindowsFabricAzureWrapperServiceCommon.NonWindowsFabricPortRangeConfigurationSettingNameTemplate, roleInstanceEndpointName);

                    int portCount;
                    if (TryGetConfigurationSettingValueAsInt(portRangeConfigurationSettingName, out portCount))
                    {
                        int startPort = roleInstanceEndpoint.Value.IPEndpoint.Port;
                        int endPort   = startPort + portCount - 1;
                        nonWindowsFabricPortRanges[roleInstanceEndpointName] = new FabricEndpointsTypeApplicationEndpoints {
                            StartPort = startPort, EndPort = endPort
                        };
                    }
                    else
                    {
                        int port = roleInstanceEndpoint.Value.IPEndpoint.Port;
                        nonWindowsFabricPorts[roleInstanceEndpointName] = new InputEndpointType {
                            Port = port.ToString(CultureInfo.InvariantCulture), Protocol = InputEndpointTypeProtocol.tcp
                        };
                    }
                }
            }

            return(new NonWindowsFabricEndpointSet {
                NonWindowsFabricPorts = nonWindowsFabricPorts, NonWindowsFabricPortRanges = nonWindowsFabricPortRanges
            });
        }
 private static string EndpointRangeToString(FabricEndpointsTypeApplicationEndpoints endpointRange)
 {
     return(endpointRange == null ? string.Empty : string.Format(CultureInfo.InvariantCulture, "< {0} - {1} >", endpointRange.StartPort, endpointRange.EndPort));
 }