public static void ApplyVirtualServer(VirtualServer virtualServer) { if (virtualServer.SnatType != SnatType.None && virtualServer.SnatType != SnatType.Automap) { throw new F5Exception(string.Format("Unsupported SnatType: {0}", virtualServer.SnatType)); } if (FindVirtualServer(virtualServer.Name) != null) { DeleteVirtualServer(virtualServer.Name); } F5Interfaces.LocalLBVirtualServer.create( new[] { new CommonVirtualServerDefinition { address = virtualServer.Address, name = virtualServer.Name, port = virtualServer.Port, protocol = (CommonProtocolType)virtualServer.VirtualServerProtocol, } }, new[] { "255.255.255.255" }, new[] { new LocalLBVirtualServerVirtualServerResource { default_pool_name = virtualServer.DefaultPoolName, type = LocalLBVirtualServerVirtualServerType.RESOURCE_TYPE_POOL } }, new[] { virtualServer.Profiles.Select( x => new LocalLBVirtualServerVirtualServerProfile { profile_context = (LocalLBProfileContextType)x.VirtualServerProfileContext, profile_name = x.Name }).ToArray() } ); F5Interfaces.LocalLBVirtualServer.set_vlan( new[] { virtualServer.Name }, new[] { new CommonVLANFilterList { state = CommonEnabledState.STATE_ENABLED, vlans = virtualServer.Vlans.ToArray() } }); if (virtualServer.SnatType == SnatType.Automap) { F5Interfaces.LocalLBVirtualServer.set_snat_automap(new[] { virtualServer.Name }); } }
public static VirtualServer FindVirtualServer(string name) { var virtualServerName = F5Interfaces.LocalLBVirtualServer.get_list().FirstOrDefault(x => x == name); if (virtualServerName == null) { return(null); } var destination = F5Interfaces.LocalLBVirtualServer.get_destination(new[] { name }).First(); var protocol = F5Interfaces.LocalLBVirtualServer.get_protocol(new[] { name }).First(); var defaultPoolName = F5Interfaces.LocalLBVirtualServer.get_default_pool_name(new[] { name }).First(); var profile = F5Interfaces.LocalLBVirtualServer.get_profile(new[] { name }).First(); var vlans = F5Interfaces.LocalLBVirtualServer.get_vlan(new[] { name }).First(); var snatType = F5Interfaces.LocalLBVirtualServer.get_snat_type(new[] { name }).First(); var virtualServer = new VirtualServer { Name = virtualServerName, Address = destination.address, Port = destination.port, VirtualServerProtocol = (VirtualServerProtocol)protocol, DefaultPoolName = defaultPoolName, Profiles = profile == null ? new List <VirtualServerProfile>() : profile.Select( x => new VirtualServerProfile { Name = x.profile_name, VirtualServerProfileContext = (VirtualServerProfileContext)x.profile_context }), Vlans = vlans.vlans, SnatType = (SnatType)snatType, }; return(virtualServer); }
public static void ApplyVirtualServer(VirtualServer virtualServer) { if (virtualServer.SnatType != SnatType.None && virtualServer.SnatType != SnatType.Automap) { throw new F5Exception(string.Format("Unsupported SnatType: {0}", virtualServer.SnatType)); } if (FindVirtualServer(virtualServer.Name) != null) DeleteVirtualServer(virtualServer.Name); F5Interfaces.LocalLBVirtualServer.create( new[] { new CommonVirtualServerDefinition { address = virtualServer.Address, name = virtualServer.Name, port = virtualServer.Port, protocol = (CommonProtocolType)virtualServer.VirtualServerProtocol, } }, new[] { "255.255.255.255" }, new[] { new LocalLBVirtualServerVirtualServerResource { default_pool_name = virtualServer.DefaultPoolName, type = LocalLBVirtualServerVirtualServerType.RESOURCE_TYPE_POOL } }, new[] { virtualServer.Profiles.Select( x => new LocalLBVirtualServerVirtualServerProfile { profile_context = (LocalLBProfileContextType)x.VirtualServerProfileContext, profile_name = x.Name }).ToArray()} ); F5Interfaces.LocalLBVirtualServer.set_vlan( new[] { virtualServer.Name }, new[] { new CommonVLANFilterList { state = CommonEnabledState.STATE_ENABLED, vlans = virtualServer.Vlans.ToArray() }}); if (virtualServer.SnatType == SnatType.Automap) { F5Interfaces.LocalLBVirtualServer.set_snat_automap(new[] { virtualServer.Name }); } }
public static VirtualServer FindVirtualServer(string name) { var virtualServerName = F5Interfaces.LocalLBVirtualServer.get_list().FirstOrDefault(x => x == name); if (virtualServerName == null) return null; var destination = F5Interfaces.LocalLBVirtualServer.get_destination(new[] { name }).First(); var protocol = F5Interfaces.LocalLBVirtualServer.get_protocol(new[] { name }).First(); var defaultPoolName = F5Interfaces.LocalLBVirtualServer.get_default_pool_name(new[] { name }).First(); var profile = F5Interfaces.LocalLBVirtualServer.get_profile(new[] { name }).First(); var vlans = F5Interfaces.LocalLBVirtualServer.get_vlan(new[] { name }).First(); var snatType = F5Interfaces.LocalLBVirtualServer.get_snat_type(new[] { name }).First(); var virtualServer = new VirtualServer { Name = virtualServerName, Address = destination.address, Port = destination.port, VirtualServerProtocol = (VirtualServerProtocol)protocol, DefaultPoolName = defaultPoolName, Profiles = profile == null ? new List<VirtualServerProfile>() : profile.Select( x => new VirtualServerProfile { Name = x.profile_name, VirtualServerProfileContext = (VirtualServerProfileContext)x.profile_context }), Vlans = vlans.vlans, SnatType = (SnatType)snatType, }; return virtualServer; }