Ejemplo n.º 1
0
        public void AddPool(DhcpConfigurationPoolModel model)
        {
            var pool = _serviceModel.Pools;

            if (pool.Any(_ => _.Guid == model.Guid))
            {
                return;
            }
            pool.Add(model);
            _serviceModel.Pools = pool;
            Save(_serviceModel);
        }
Ejemplo n.º 2
0
        public AntdDhcpdModule()
        {
            Get["/dhcpd"] = x => {
                var dhcpdConfiguration = new DhcpdConfiguration();
                var dhcpdIsActive      = dhcpdConfiguration.IsActive();
                var model = new PageDhcpdModel {
                    DhcpdIsActive    = dhcpdIsActive,
                    DhcpdOptions     = dhcpdConfiguration.Get() ?? new DhcpdConfigurationModel(),
                    DhcpdClass       = dhcpdConfiguration.Get()?.Classes,
                    DhcpdPools       = dhcpdConfiguration.Get()?.Pools,
                    DhcpdReservation = dhcpdConfiguration.Get()?.Reservations
                };
                return(JsonConvert.SerializeObject(model));
            };

            Post["/dhcpd/set"] = x => {
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.Set();
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/restart"] = x => {
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.Start();
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/stop"] = x => {
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.Stop();
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/enable"] = x => {
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.Enable();
                dhcpdConfiguration.Start();
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/disable"] = x => {
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.Disable();
                dhcpdConfiguration.Stop();
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/options"] = x => {
                string allow = Request.Form.Allow;
                string updateStaticLeases      = Request.Form.UpdateStaticLeases;
                string updateConflictDetection = Request.Form.UpdateConflictDetection;
                string useHostDeclNames        = Request.Form.UseHostDeclNames;
                string doForwardUpdates        = Request.Form.DoForwardUpdates;
                string doReverseUpdates        = Request.Form.DoReverseUpdates;
                string logFacility             = Request.Form.LogFacility;
                string option             = Request.Form.Option;
                string zoneName           = Request.Form.ZoneName;
                string zonePrimaryAddress = Request.Form.ZonePrimaryAddress;
                string ddnsUpdateStyle    = Request.Form.DdnsUpdateStyle;
                string ddnsUpdates        = Request.Form.DdnsUpdates;
                string ddnsDomainName     = Request.Form.DdnsDomainName;
                string ddnsRevDomainName  = Request.Form.DdnsRevDomainName;
                string defaultLeaseTime   = Request.Form.DefaultLeaseTime;
                string maxLeaseTime       = Request.Form.MaxLeaseTime;
                string keyName            = Request.Form.KeyName;
                string keySecret          = Request.Form.KeySecret;
                string ipFamily           = Request.Form.IpFamily;
                string ipMask             = Request.Form.IpMask;
                string optionRouters      = Request.Form.OptionRouters;
                string ntpServers         = Request.Form.NtpServers;
                string timeServers        = Request.Form.DoForTimeServerswardUpdates;
                string domainNameServers  = Request.Form.DomainNameServers;
                string broadcastAddress   = Request.Form.BroadcastAddress;
                string subnetMask         = Request.Form.SubnetMask;

                var model = new DhcpdConfigurationModel {
                    Allow = allow.SplitToList().Select(_ => _.Trim()).ToList(),
                    UpdateStaticLeases      = updateStaticLeases,
                    UpdateConflictDetection = updateConflictDetection,
                    UseHostDeclNames        = useHostDeclNames,
                    DoForwardUpdates        = doForwardUpdates,
                    DoReverseUpdates        = doReverseUpdates,
                    LogFacility             = logFacility,
                    Option                  = option.SplitToList().Select(_ => _.Trim()).ToList(),
                    ZoneName                = zoneName,
                    ZonePrimaryAddress      = zonePrimaryAddress,
                    DdnsUpdateStyle         = ddnsUpdateStyle,
                    DdnsUpdates             = ddnsUpdates,
                    DdnsDomainName          = ddnsDomainName,
                    DdnsRevDomainName       = ddnsRevDomainName,
                    DefaultLeaseTime        = defaultLeaseTime,
                    MaxLeaseTime            = maxLeaseTime,
                    KeyName                 = keyName,
                    KeySecret               = keySecret,
                    SubnetIpFamily          = ipFamily,
                    SubnetIpMask            = ipMask,
                    SubnetOptionRouters     = optionRouters,
                    SubnetNtpServers        = ntpServers,
                    SubnetTimeServers       = timeServers,
                    SubnetDomainNameServers = domainNameServers,
                    SubnetBroadcastAddress  = broadcastAddress,
                    SubnetMask              = subnetMask,
                };
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.Save(model);
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/class"] = x => {
                string name      = Request.Form.Name;
                string macVendor = Request.Form.MacVendor;
                var    model     = new DhcpConfigurationClassModel {
                    Name      = name,
                    MacVendor = macVendor
                };
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.AddClass(model);
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/class/del"] = x => {
                string guid = Request.Form.Guid;
                var    dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.RemoveClass(guid);
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/pool"] = x => {
                string option = Request.Form.Option;
                var    model  = new DhcpConfigurationPoolModel {
                    Options = option.SplitToList().Select(_ => _.Trim()).ToList()
                };
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.AddPool(model);
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/pool/del"] = x => {
                string guid = Request.Form.Guid;
                var    dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.RemovePool(guid);
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/reservation"] = x => {
                string hostName   = Request.Form.HostName;
                string macAddress = Request.Form.MacAddress;
                string ipAddress  = Request.Form.IpAddress;
                var    model      = new DhcpConfigurationReservationModel {
                    HostName   = hostName,
                    MacAddress = macAddress,
                    IpAddress  = ipAddress
                };
                var dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.AddReservation(model);
                return(HttpStatusCode.OK);
            };

            Post["/dhcpd/reservation/del"] = x => {
                string guid = Request.Form.Guid;
                var    dhcpdConfiguration = new DhcpdConfiguration();
                dhcpdConfiguration.RemoveReservation(guid);
                return(HttpStatusCode.OK);
            };
        }