コード例 #1
0
        private void SetupNetworking()
        {
            var netConfig = new NetworkConfigurator(log);

            VMSetupState vmSetupState = settings["vm-setup-state"].ToObject <VMSetupState>();

            if (netConfig.NetworkConfigured && vmSetupState.IsNetworkSetup)
            {
                return;
            }

            var network = settings["networks"].First;

            if (network.HasValues)
            {
                var    net       = network.First;
                string ip        = (string)net["ip"];
                string netmask   = (string)net["netmask"];
                string gateway   = (string)net["gateway"];
                var    dnsStrAry = net["dns"].Select(d => (string)d);

                bool netConfigSuccess = netConfig.ConfigureNetwork(ip, netmask, gateway, dnsStrAry);
                if (netConfigSuccess)
                {
                    vmSetupState.IsNetworkSetup = true;
                    settings["vm-setup-state"]  = JObject.FromObject(vmSetupState);
                    SaveSettings();
                }
            }
        }
コード例 #2
0
        public void IsLastHostGeneratedProperly()
        {
            // Assert
            var mock = new Mock <INetworkConfigurationReader>();

            mock.Setup(r => r.GetMaskFromConfiguration()).Returns(26);
            mock.Setup(r => r.GetNetworkAddressFromConfiguration()).Returns("192.168.33.72");

            INetworkConfigurator configurator = new NetworkConfigurator(mock.Object);

            // Act
            var result1 = configurator.LastHost;

            configurator.Mask           = 30;
            configurator.NetworkAddress = "192.168.54.1";

            var result2 = configurator.LastHost;

            configurator.Mask           = 16;
            configurator.NetworkAddress = "192.168.54.1";

            var result3 = configurator.LastHost;

            configurator.Mask           = 8;
            configurator.NetworkAddress = "192.168.54.1";

            var result4 = configurator.LastHost;

            Assert.Equal("192.168.33.126", result1.Address);
            Assert.Equal("192.168.54.2", result2.Address);
            Assert.Equal("192.168.255.254", result3.Address);
            Assert.Equal("192.255.255.254", result4.Address);
        }
コード例 #3
0
        public void IsIPRangeGeneratedProperly()
        {
            // Arrange
            var mock = new Mock <INetworkConfigurationReader>();

            mock.Setup(r => r.GetMaskFromConfiguration()).Returns(30);
            mock.Setup(r => r.GetNetworkAddressFromConfiguration()).Returns("192.168.54.1");

            INetworkConfigurator configurator = new NetworkConfigurator(mock.Object);

            var expectedRange1 = new string[]
            {
                "192.168.54.1",
                "192.168.54.2"
            };

            var expectedRange2 = new string[]
            {
                "192.168.54.1",
                "192.168.54.2",
                "192.168.54.3",
                "192.168.54.4",
                "192.168.54.5",
                "192.168.54.6",
                "192.168.54.7",
                "192.168.54.8",
                "192.168.54.9",
                "192.168.54.10",
                "192.168.54.11",
                "192.168.54.12",
                "192.168.54.13",
                "192.168.54.14"
            };

            // Act
            var result1 = configurator.IPAddresses.ToList();

            configurator.Mask = 28;
            var result2 = configurator.IPAddresses.ToList();

            // Assert
            Assert.Equal(2, result1.Count);
            for (int i = 0; i < result1.Count; i++)
            {
                Assert.Equal(expectedRange1[i], result1[i].Address);
            }

            Assert.Equal(14, result2.Count);
            for (int i = 0; i < result2.Count; i++)
            {
                Assert.Equal(expectedRange2[i], result2[i].Address);
            }
        }
コード例 #4
0
        public ConfigureIPSettingsViewModel(IIPAddressRepository repo)
        {
            NetworkConfigurator = new NetworkConfigurator(new XMLNetworkConfigurationReader());
            Repository          = repo;
            InputtedNetworkMask = NetworkConfigurator.Mask.ToString();

            ApplyNetworkSettingsChangesCommand = RegisterCommandAction(
                (obj) =>
            {
                try
                {
                    NetworkConfigurator.Mask = byte.Parse(InputtedNetworkMask);
                    Repository.SetNewRangeOfIPAddresses(NetworkConfigurator.IPAddresses);
                    Repository.SaveChanges();
                    NetworkConfigurator.WriteMask(new XMLNetworkConfigurationWriter());

                    MessageToUser = "******";

                    DeviceEvents.RaiseOnNetworkConfigurationChanged(
                        InputtedNetworkAddress,
                        byte.Parse(InputtedNetworkMask)
                        );
                }
                catch (Exception e)
                {
                    MessageToUser = e.Message;
                }
            },
                (obj) =>
            {
                // Move to special validator class soon
                try
                {
                    var mask = byte.Parse(InputtedNetworkMask);
                    if (mask <= 32 && mask >= 0)
                    {
                        return(true);
                    }
                    return(false);
                }
                catch { return(false); }
            }
                );
        }
コード例 #5
0
        private void btnAddIP_Click(object sender, EventArgs e)
        {
            SelNic = getSelectedNic();
              if (SelNic == null)
            return;

              frmAddOneIP frm = new frmAddOneIP();
              frm.ShowDialog();
              if (frm.SelectedIP != null)
              {
            DialogResult reslt = MessageBox.Show(string.Format("Realmente desea agregar la IP {0} a la interface seleccionada {1}?", frm.SelectedIP, SelNic.Name), "Agregar una IP", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (reslt == DialogResult.Yes)
            {
              NetworkConfigurator net = new NetworkConfigurator();
              string strVal;
              net.SetIP(SelNic, frm.SelectedIP.Address.ToString(), frm.SelectedIP.NetMask.ToString(), out strVal);
            }
              }
        }
コード例 #6
0
ファイル: BoshAgent.cs プロジェクト: kirannadell/ironfoundry
        private void SetupNetworking()
        {
            var netConfig = new NetworkConfigurator(log);

            VMSetupState vmSetupState = settings["vm-setup-state"].ToObject<VMSetupState>();
            if (netConfig.NetworkConfigured && vmSetupState.IsNetworkSetup)
            {
                return;
            }

            var network = settings["networks"].First;
            if (network.HasValues)
            {
                var net = network.First;
                string ip = (string)net["ip"];
                string netmask = (string)net["netmask"];
                string gateway = (string)net["gateway"];
                var dnsStrAry = net["dns"].Select(d => (string)d);

                bool netConfigSuccess = netConfig.ConfigureNetwork(ip, netmask, gateway, dnsStrAry);
                if (netConfigSuccess)
                {
                    vmSetupState.IsNetworkSetup = true;
                    settings["vm-setup-state"] = JObject.FromObject(vmSetupState);
                    SaveSettings();
                }
            }
        }