Exemple #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="activityData"></param>
 public SecurityTests(SecurityActivityData activityData)
     : base(activityData.ProductName)
 {
     _activityData = activityData;
     ProductFamily = activityData.ProductFamily;
     Sliver        = "Security";
 }
Exemple #2
0
        /// <summary>
        /// Initialize Plug-in Pre-requisites
        /// </summary>
        public SecurityConfigurationControl()
        {
            InitializeComponent();

            // Initialize
            _activityData = new SecurityActivityData();

            // bind the product name change event
            base.OnProductNameChanged += new ProductNameChangedEventHandler(SecurityEditControl_OnProductNameChanged);

            //sitemapVersionSelector.PrinterFamily = base.ProductCategory.ToString();
            // sitemapVersionSelector.PrinterName = base.ProductName;

            fieldValidator.RequireCustom(wired_IpAddressControl, wired_IpAddressControl.IsValidIPAddress, "Enter valid IP address.");
            fieldValidator.RequireCustom(primaryDhcp_IpAddressControl, primaryDhcp_IpAddressControl.IsValidIPAddress, "Enter valid IP address.");
            fieldValidator.RequireCustom(security_SwitchDetailsControl, security_SwitchDetailsControl.ValidateControls);
            fieldValidator.RequireCustom(sitemapVersionSelector, sitemapVersionSelector.ValidateControls);
            fieldValidator.RequireCustom(SecondaryDhcp_IpAddressControl, SecondaryDhcp_IpAddressControl.IsValidIPAddress, "Enter valid IP address.");
            fieldValidator.RequireCustom(europaWired_IpAddressControl, () => (_requireMultipleInterfaceInputs ? europaWired_IpAddressControl.IsValidIPAddress() : true), "Enter a valid IP Address.");
            fieldValidator.RequireCustom(europaWireless_IpAddressControl, () => (_requireMultipleInterfaceInputs ? europaWireless_IpAddressControl.IsValidIPAddress() : true), "Enter a valid IP Address.");

            base.PropertyChanged += (s, e) => ConfigurationChanged(s, e);
            sitemapVersionSelector.PropertyChanged        += (s, e) => ConfigurationChanged(s, e);
            security_SwitchDetailsControl.PropertyChanged += (s, e) => ConfigurationChanged(s, e);
        }
Exemple #3
0
 public void Initialize(PluginConfigurationData configuration, PluginEnvironment environment)
 {
     _activityData = configuration.GetMetadata <SecurityActivityData>(CtcMetadataConverter.Converters);
     CtcSettings.Initialize(environment);
     LoadUI();
 }
Exemple #4
0
 public void Initialize(PluginEnvironment environment)
 {
     _activityData = new SecurityActivityData();
     CtcSettings.Initialize(environment);
     LoadUI();
 }
Exemple #5
0
        public PluginExecutionResult Execute(PluginExecutionData executionData)
        {
            CtcSettings.Initialize(executionData);

            // create activity data
            SecurityActivityData activityData = executionData.GetMetadata <SecurityActivityData>(CtcMetadataConverter.Converters);

            Printer.Printer printer = PrinterFactory.Create(activityData.ProductFamily, activityData.WiredIPv4Address);
            activityData.WiredMacAddress = printer.MacAddress;

            TraceFactory.Logger.Info("Wired Mac Address: {0}".FormatWith(activityData.WiredMacAddress));

            if (activityData.ProductFamily.EqualsIgnoreCase(PrinterFamilies.VEP.ToString()))
            {
                IPAddress ipAddress;

                if (IPAddress.TryParse(activityData.SecondaryWiredIPv4Address, out ipAddress))
                {
                    printer = PrinterFactory.Create(activityData.ProductFamily, activityData.SecondaryWiredIPv4Address);
                    activityData.SecondaryWiredMacAddress = printer.MacAddress;
                    TraceFactory.Logger.Info("Secondary Wired Mac Address: {0}".FormatWith(activityData.SecondaryWiredMacAddress));
                }

                if (IPAddress.TryParse(activityData.WirelessIPv4Address, out ipAddress))
                {
                    printer = PrinterFactory.Create(activityData.ProductFamily, activityData.WirelessIPv4Address);
                    activityData.WirelessMacAddress = printer.MacAddress;

                    TraceFactory.Logger.Info("Wireless Mac Address: {0}".FormatWith(activityData.WirelessMacAddress));
                }
            }

            List <NetworkInterface> clientNetworks = NetworkInterface.GetAllNetworkInterfaces().Where(n => n.OperationalStatus == OperationalStatus.Up).ToList();
            List <IPAddress>        localAddresses = NetworkUtil.GetLocalAddresses().Where(x => x.AddressFamily == AddressFamily.InterNetwork).ToList();

            EwsWrapper.Instance().Create(Enum <PrinterFamilies> .Parse(activityData.ProductFamily), activityData.ProductName, activityData.WiredIPv4Address, Path.Combine(activityData.SitemapPath, activityData.SitemapsVersion), BrowserModel.Firefox);
            EwsWrapper.Instance().Start();
            EwsWrapper.Instance().EnableSnmpv1v2ReadWriteAccess();

            if (!SecurityScenarioPrerequisites(activityData, clientNetworks, localAddresses))
            {
                return(new PluginExecutionResult(PluginResult.Failed, "Failed in Scenario pre-requisites"));
            }
            //create instance of SNMP wrapper
            SnmpWrapper.Instance().Create(activityData.WiredIPv4Address);

            //create instance of Telnet wrapper
            TelnetWrapper.Instance().Create(activityData.WiredIPv4Address);

            if (null == _securitytests)
            {
                _securitytests = new SecurityTests(activityData);
            }

            // Execute the selected tests
            foreach (int testNumber in activityData.SelectedTests)
            {
                try
                {
                    ExecutionServices.SessionRuntime.AsInternal().WaitIfPaused();
                    _securitytests.RunTest(executionData, testNumber, IPAddress.Parse(activityData.WiredIPv4Address), (ProductFamilies)Enum.Parse(typeof(ProductFamilies), activityData.ProductFamily));
                }
                catch (Exception ex)
                {
                    TraceFactory.Logger.Fatal("Error while executing Test:{0} \n".FormatWith(testNumber, ex.Message));
                }
            }

            EwsWrapper.Instance().Stop();
            ManageClientReservation(clientNetworks, localAddresses, activityData, true);

            return(new PluginExecutionResult(PluginResult.Passed));
        }
Exemple #6
0
        private bool ManageClientReservation(List <NetworkInterface> clientNetworks, List <IPAddress> clientAddresses, SecurityActivityData activityData, bool deleteReservation = false)
        {
            try
            {
                IPAddress primaryAddress   = clientAddresses.FirstOrDefault(x => x.IsInSameSubnet(IPAddress.Parse(activityData.PrimaryDhcpServerIPAddress)));
                IPAddress secondaryAddress = clientAddresses.FirstOrDefault(x => x.IsInSameSubnet(IPAddress.Parse(activityData.SecondaryDhcpServerIPAddress)));

                clientNetworks.ForEach(x => TraceFactory.Logger.Info("network" + x.Name));
                clientAddresses.ForEach(x => TraceFactory.Logger.Info("Address" + x.ToString()));

                string primaryNetworkName   = CtcUtility.GetClientNetworkName(clientAddresses.FirstOrDefault(x => x.Equals(primaryAddress)).ToString());
                string secondaryNetworkName = CtcUtility.GetClientNetworkName(clientAddresses.FirstOrDefault(x => x.Equals(secondaryAddress)).ToString());

                if (deleteReservation)
                {
                    DeleteReservation(primaryAddress.ToString(), activityData.PrimaryDhcpServerIPAddress, clientNetworks.FirstOrDefault(x => x.Name.EqualsIgnoreCase(primaryNetworkName)).GetPhysicalAddress().ToString());
                    DeleteReservation(secondaryAddress.ToString(), activityData.SecondaryDhcpServerIPAddress, clientNetworks.FirstOrDefault(x => x.Name.EqualsIgnoreCase(secondaryNetworkName)).GetPhysicalAddress().ToString());
                }
                else
                {
                    DeleteReservation(primaryAddress.ToString(), activityData.PrimaryDhcpServerIPAddress, clientNetworks.FirstOrDefault(x => x.Name.EqualsIgnoreCase(primaryNetworkName)).GetPhysicalAddress().ToString());
                    DeleteReservation(secondaryAddress.ToString(), activityData.SecondaryDhcpServerIPAddress, clientNetworks.FirstOrDefault(x => x.Name.EqualsIgnoreCase(secondaryNetworkName)).GetPhysicalAddress().ToString());
                    CreateReservation(primaryAddress.ToString(), activityData.PrimaryDhcpServerIPAddress, clientNetworks.FirstOrDefault(x => x.Name.EqualsIgnoreCase(primaryNetworkName)).GetPhysicalAddress().ToString());
                    CreateReservation(secondaryAddress.ToString(), activityData.SecondaryDhcpServerIPAddress, clientNetworks.FirstOrDefault(x => x.Name.EqualsIgnoreCase(secondaryNetworkName)).GetPhysicalAddress().ToString());
                }

                return(true);
            }
            catch (Exception ex)
            {
                TraceFactory.Logger.Debug(ex.Message);
                return(false);
            }
        }
Exemple #7
0
        private bool SecurityScenarioPrerequisites(SecurityActivityData activityData, List <NetworkInterface> clientNetworks, List <IPAddress> localAddresses)
        {
            bool continueTest = true;

            while (continueTest && !NetworkUtil.PingUntilTimeout(IPAddress.Parse(activityData.WiredIPv4Address), TimeSpan.FromSeconds(30)))
            {
                continueTest = SecurityTemplates.ShowErrorPopUp("Printer: {0} is not available.\nPlease cold reset the printer.".FormatWith(activityData.WiredIPv4Address));
            }

            if (activityData.ProductFamily.EqualsIgnoreCase(PrinterFamilies.VEP.ToString()))
            {
                IPAddress ipAddress;

                if (IPAddress.TryParse(activityData.SecondaryWiredIPv4Address, out ipAddress))
                {
                    if (!NetworkUtil.PingUntilTimeout(IPAddress.Parse(activityData.SecondaryWiredIPv4Address), TimeSpan.FromSeconds(10)))
                    {
                        SecurityTemplates.ShowErrorPopUp("The IP address: {0} is not available.\nPlease cold reset the printer.".FormatWith(activityData.SecondaryWiredIPv4Address));
                    }

                    //Utility.StartService(activityData.SecondaryDhcpServerIPAddress, "WindowsServerService");

                    CreateReservation(activityData.SecondaryWiredIPv4Address, activityData.SecondaryDhcpServerIPAddress, activityData.SecondaryWiredMacAddress);

                    EwsWrapper.Instance().ChangeDeviceAddress(activityData.SecondaryWiredIPv4Address);
                    EwsWrapper.Instance().Start();
                    EwsWrapper.Instance().SetAdvancedOptions();
                }

                if (IPAddress.TryParse(activityData.WirelessIPv4Address, out ipAddress))
                {
                    if (!NetworkUtil.PingUntilTimeout(IPAddress.Parse(activityData.WirelessIPv4Address), TimeSpan.FromSeconds(10)))
                    {
                        SecurityTemplates.ShowErrorPopUp("The IP address: {0} is not available.\nPlease cold reset the printer.".FormatWith(activityData.WirelessIPv4Address));
                    }

                    //Utility.StartService(activityData.ThirdDhcpServerIPAddress, "WindowsServerService");

                    CreateReservation(activityData.WirelessIPv4Address, activityData.ThirdDhcpServerIPAddress, activityData.WirelessMacAddress);

                    EwsWrapper.Instance().ChangeDeviceAddress(activityData.WirelessIPv4Address);
                    EwsWrapper.Instance().SetAdvancedOptions();
                }

                EwsWrapper.Instance().ChangeDeviceAddress(activityData.WiredIPv4Address);
            }

            if (!CtcUtility.IsClientConfiguredWithServerIP(activityData.SecondaryDhcpServerIPAddress))
            {
                SecurityTemplates.ShowErrorPopUp("Check if Client has acquired IPv4 Address from Secondary DHCP Server.");
            }

            //Utility.StartService(activityData.PrimaryDhcpServerIPAddress, "WindowsServerService");

            ManageClientReservation(clientNetworks, localAddresses, activityData);

            EwsWrapper.Instance().ChangeDeviceAddress(activityData.WiredIPv4Address);
            EwsWrapper.Instance().SetAdvancedOptions();

            CreateReservation(activityData.WiredIPv4Address, activityData.PrimaryDhcpServerIPAddress, activityData.WiredMacAddress);

            return(true);
        }