/// <summary> /// Initialize Plug-in Pre-requisites /// </summary> public NetworkNamingServiceConfigurationControl() { InitializeComponent(); // Initialize _activityData = new NetworkNamingServiceActivityData(); // Subscribe for Product change event base.OnProductNameChanged += NetworkNamingServiceEditControl_OnProductNameChanged; // Set current Product Family and Name //sitemapVersionSelector.PrinterFamily = base.ProductCategory.ToString(); //sitemapVersionSelector.PrinterName = base.ProductName.ToString(); fieldValidator.RequireCustom(wiredIpv4_IPAddressControl, wiredIpv4_IPAddressControl.IsValidIPAddress, "Enter valid IP address."); fieldValidator.RequireCustom(wirelessIpv4_IPAddressControl, wirelessIpv4_IPAddressControl.IsValidIPAddress, "Enter valid IP address."); fieldValidator.RequireCustom(secondPrinter_IPAddressControl, secondPrinter_IPAddressControl.IsValidIPAddress, "Enter valid IP address."); fieldValidator.RequireCustom(primaryDhcpAddress_IpAddressControl, primaryDhcpAddress_IpAddressControl.IsValidIPAddress, "Enter valid IP address."); fieldValidator.RequireCustom(secondDHCPServer_IpAddressControl, secondDHCPServer_IpAddressControl.IsValidIPAddress, "Enter valid IP address."); fieldValidator.RequireCustom(linuxServer_IpAddressControl, linuxServer_IpAddressControl.IsValidIPAddress, "Enter valid IP address."); fieldValidator.RequireCustom(sitemapVersionSelector, sitemapVersionSelector.ValidateControls); fieldValidator.RequireCustom(switchDetailsControl, switchDetailsControl.ValidateControls); base.PropertyChanged += (s, e) => ConfigurationChanged(s, e); sitemapVersionSelector.PropertyChanged += (s, e) => ConfigurationChanged(s, e); switchDetailsControl.PropertyChanged += (s, e) => ConfigurationChanged(s, e); }
/// <summary> /// NetworkDiscoveryTests Constructor /// </summary> /// <param name="activityData">ActivityData</param> public NetworkNamingServiceTests(NetworkNamingServiceActivityData activityData) : base(activityData.ProductName) { _activityData = activityData; ProductFamily = activityData.ProductFamily; Sliver = "NNS"; }
/// <summary> /// Gets the vlan details from the switch ignoring the VLANs with no IP Addresses. /// </summary> /// <param name="activityData">a<see cref="IPConfigurationActivityData"/></param> private static void GetVlanDetails(ref NetworkNamingServiceActivityData activityData) { activityData.VirtualLanDetails.Clear(); try { NetworkNamingServiceActivityData activity = activityData; INetworkSwitch networkSwitch = SwitchFactory.Create(IPAddress.Parse(activityData.SwitchIpAddress)); // Fetch the vlan details for primary DHCP Server, second DHCP Server and Linux Server List <VirtualLAN> vlans = networkSwitch.GetAvailableVirtualLans().Where (item => (null != item.IPAddress) && (!string.IsNullOrEmpty(activity.LinuxServerIPAddress) && item.IPAddress.IsInSameSubnet(IPAddress.Parse(activity.LinuxServerIPAddress)) || !string.IsNullOrEmpty(activity.SecondDhcpServerIPAddress) && item.IPAddress.IsInSameSubnet(IPAddress.Parse(activity.SecondDhcpServerIPAddress)) || !string.IsNullOrEmpty(activity.PrimaryDhcpServerIPAddress) && item.IPAddress.IsInSameSubnet(IPAddress.Parse(activity.PrimaryDhcpServerIPAddress)))).ToList(); foreach (VirtualLAN vlan in vlans) { activityData.VirtualLanDetails.Add(vlan.Identifier, vlan.IPAddress.ToString()); } } catch (FormatException) { // Do nothing } catch (Exception) { // Do Nothing } }
public void Initialize(PluginConfigurationData configuration, PluginEnvironment environment) { _activityData = configuration.GetMetadata <NetworkNamingServiceActivityData>(CtcMetadataConverter.Converters); CtcSettings.Initialize(environment); LoadUI(); }
public void Initialize(PluginEnvironment environment) { _activityData = new NetworkNamingServiceActivityData(); CtcSettings.Initialize(environment); LoadUI(); }
public PluginExecutionResult Execute(PluginExecutionData executionData) { CtcSettings.Initialize(executionData); NetworkNamingServiceActivityData activityData = executionData.GetMetadata <NetworkNamingServiceActivityData>(CtcMetadataConverter.Converters); #region Scenario Prerequisites //Check the Windows Server Service,Packet Capture service and Kiwi Syslog server is up and running CtcUtility.StartService("WindowsServerService", activityData.PrimaryDhcpServerIPAddress); CtcUtility.StartService("PacketCaptureService", activityData.PrimaryDhcpServerIPAddress); CtcUtility.StartService("Kiwi Syslog Server", activityData.PrimaryDhcpServerIPAddress); //Check dns and wins server is up and running on both primary and secondary dhcp server CtcUtility.StartService(@"dns", activityData.PrimaryDhcpServerIPAddress); CtcUtility.StartService("WINS", activityData.PrimaryDhcpServerIPAddress); CtcUtility.StartService(@"dns", activityData.SecondDhcpServerIPAddress); CtcUtility.StartService("WINS", activityData.SecondDhcpServerIPAddress); //Check the Wireless printer ip is accessible if (activityData.SelectedTests.Contains(678968)) { if (!(NetworkUtil.PingUntilTimeout(IPAddress.Parse(activityData.WirelessIPv4Address), TimeSpan.FromSeconds(20)))) { MessageBox.Show(string.Concat("Wireless Printer IP Address is not accessible\n\n"), "Wireless IP Address Not Accessible", MessageBoxButtons.OK, MessageBoxIcon.Error); return(new PluginExecutionResult(PluginResult.Failed, "Wireless Printer IP Address is not accessible")); } } //Check whether all devices are accesible and the server IP CtcUtility.CheckPrinterConnectivity(activityData.WiredIPv4Address, activityData.PrimaryDhcpServerIPAddress, activityData.SecondPrinterIPAddress, activityData.SecondDhcpServerIPAddress, activityData.LinuxServerIPAddress, activityData.SwitchIpAddress); // Fetch the VLAN details. GetVlanDetails(ref activityData); // Check if Switch VLAN details are fetched if (3 != activityData.VirtualLanDetails.Count) { MessageBox.Show(string.Concat("Unable to fetch Switch VLAN details\n\n", "Check whether Printer is connected to Network Switch.\n", "Switch should be configured with 3 network virtual LAN."), "Network switch not found", MessageBoxButtons.OK, MessageBoxIcon.Error); return(new PluginExecutionResult(PluginResult.Failed, "Unable to fetch Switch VLAN details")); } //Reservation for Primary Printer using (DhcpApplicationServiceClient client = DhcpApplicationServiceClient.Create(activityData.PrimaryDhcpServerIPAddress)) { Printer.Printer printer = PrinterFactory.Create(activityData.ProductFamily, activityData.WiredIPv4Address); activityData.PrinterMacAddress = printer.MacAddress.Replace(":", string.Empty); client.Channel.DeleteReservation(activityData.PrimaryDhcpServerIPAddress, client.Channel.GetDhcpScopeIP(activityData.PrimaryDhcpServerIPAddress), activityData.WiredIPv4Address, activityData.PrinterMacAddress); if (client.Channel.CreateReservation(activityData.PrimaryDhcpServerIPAddress, client.Channel.GetDhcpScopeIP(activityData.PrimaryDhcpServerIPAddress), activityData.WiredIPv4Address, activityData.PrinterMacAddress, ReservationType.Both)) { TraceFactory.Logger.Info("Primary Printer IP Address Reservation in DHCP Server for both DHCP and BOOTP : Succeeded"); } else { TraceFactory.Logger.Info("Primary Printer IP Address Reservation in DHCP Server for both DHCP and BOOTP: Failed"); return(new PluginExecutionResult(PluginResult.Failed, "Primary Printer IP Address Reservation in DHCP Server for both DHCP and BOOTP: Failed")); } activityData.PrimaryDhcpIPv6Address = client.Channel.GetIPv6Address(); } //Reservation for Secondary Printer[user may give input as primary server ip/secondary server ip ,so getting server ip based on the printer ipaddress] string secondDhcpServerIPAddress = Printer.Printer.GetDHCPServerIP(IPAddress.Parse(activityData.SecondPrinterIPAddress)).ToString(); using (DhcpApplicationServiceClient client = DhcpApplicationServiceClient.Create(secondDhcpServerIPAddress)) { Printer.Printer printer = PrinterFactory.Create(activityData.ProductFamily, activityData.SecondPrinterIPAddress); string secondPrinterMacAddress = printer.MacAddress.Replace(":", string.Empty); client.Channel.DeleteReservation(secondDhcpServerIPAddress, client.Channel.GetDhcpScopeIP(secondDhcpServerIPAddress), activityData.SecondPrinterIPAddress, secondPrinterMacAddress); if (client.Channel.CreateReservation(secondDhcpServerIPAddress, client.Channel.GetDhcpScopeIP(secondDhcpServerIPAddress), activityData.SecondPrinterIPAddress, secondPrinterMacAddress, ReservationType.Both)) { TraceFactory.Logger.Info("Secondary Printer IP Address Reservation in DHCP Server for both DHCP and BOOTP : Succeeded"); } else { TraceFactory.Logger.Info("Secondary Printer IP Address Reservation in DHCP Server for both DHCP and BOOTP: Failed"); return(new PluginExecutionResult(PluginResult.Failed, "Secondary Printer IP Address Reservation in DHCP Server for both DHCP and BOOTP: Failed")); } } using (DhcpApplicationServiceClient client = DhcpApplicationServiceClient.Create(activityData.SecondDhcpServerIPAddress)) { activityData.SecondaryDhcpIPv6Address = client.Channel.GetIPv6Address(); } #endregion // create instance of ews adapter EwsWrapper.Instance().Create(Enum <PrinterFamilies> .Parse(activityData.ProductFamily), activityData.ProductName, activityData.WiredIPv4Address, Path.Combine(activityData.SitemapPath, activityData.SiteMapVersion), BrowserModel.Firefox); EwsWrapper.Instance().Start(); EwsWrapper.Instance().WakeUpPrinter(); EwsWrapper.Instance().SetAdvancedOptions(); //create instance of SNMP wrapper SnmpWrapper.Instance().Create(activityData.WiredIPv4Address); //create instance of Telnet wrapper TelnetWrapper.Instance().Create(activityData.WiredIPv4Address); //Enabling IPV6 startup EwsWrapper.Instance().SetDHCPv6OnStartup(true); EwsWrapper.Instance().SetIPv6(false); EwsWrapper.Instance().SetIPv6(true); EwsWrapper.Instance().EnableSnmpv1v2ReadWriteAccess(); if (null == _networkNamingTests) { _networkNamingTests = new NetworkNamingServiceTests(activityData); } // assign the session id to activity data activityData.SessionId = executionData.SessionId; foreach (int testNumber in activityData.SelectedTests) { try { ExecutionServices.SessionRuntime.AsInternal().WaitIfPaused(); _networkNamingTests.RunTest(executionData, testNumber, IPAddress.Parse(activityData.WiredIPv4Address), (ProductFamilies)Enum.Parse(typeof(ProductFamilies), activityData.ProductFamily)); } catch (Exception generalException) { TraceFactory.Logger.Info("Test {0} failed with error: {1}".FormatWith(testNumber, generalException.Message)); } } EwsWrapper.Instance().Stop(); return(new PluginExecutionResult(PluginResult.Passed)); }