def find_servers_on_network(self): params = ua.FindServersOnNetworkParameters() return self.bclient.find_servers_on_network(params)
def find_servers_on_network_test(client, logger): defaultAddress = "opc.tcp://localhost:4841" # No filters in FindServersOnNetworkRequest by default params = ua.FindServersOnNetworkParameters() # Register 1 server and retrieve it local_register_server2(client, logger, "TestServer1", defaultAddress, allServerCapabilities, True) results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - expect 1 registered server "{}"'.format( "TestServer1"), (1 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and defaultAddress == results.Servers[0].DiscoveryUrl and allServerCapabilities == results.Servers[0].ServerCapabilities)) # UnRegister 1 server and check not present anymore local_register_server2(client, logger, "TestServer1", defaultAddress, allServerCapabilities, False) results = client.uaclient.find_servers_on_network(params) logger.add_test('FindServersOnNetwork test - expect 0 registered server', 0 == len(results.Servers)) # Register 2 times same server name: expect only last record to be returned local_register_server2(client, logger, "TestServer1", defaultAddress, allServerCapabilities, True) local_register_server2(client, logger, "TestServer1", "opc.tcp://test:1000", allServerCapabilities, True) results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - expect only 1 registered server "{}" with last record content' .format("TestServer1"), (1 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and "opc.tcp://test:1000" == results.Servers[0].DiscoveryUrl and allServerCapabilities == results.Servers[0].ServerCapabilities)) # Register a second server with unknown capabilities local_register_server2(client, logger, "TestServer2", defaultAddress, ["NA"], True) results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - expect 2 registered server 1 with all and 1 without capabilities', (2 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and allServerCapabilities == results.Servers[0].ServerCapabilities and "TestServer2" == results.Servers[1].ServerName and ["NA"] == results.Servers[1].ServerCapabilities)) # Register a third server with only 'LDS' capability local_register_server2(client, logger, "TestServer3", defaultAddress, ["LDS"], True) results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - expect 3 registered server 1 with all, 1 without capabilities and 1 with "LDS" only', (3 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and allServerCapabilities == results.Servers[0].ServerCapabilities and "TestServer2" == results.Servers[1].ServerName and ["NA"] == results.Servers[1].ServerCapabilities and "TestServer3" == results.Servers[2].ServerName and ["LDS"] == results.Servers[2].ServerCapabilities)) # Filter using the capabilities: request all params.ServerCapabilityFilter = allServerCapabilities results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - filter with all capabilities: expect only 1 registered server', (1 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and allServerCapabilities == results.Servers[0].ServerCapabilities)) # Filter using the capabilities: request 'LDS' capability only params.ServerCapabilityFilter = ["LDS"] results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - filter with "LDS" capability: expect 2 registered server', (2 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and allServerCapabilities == results.Servers[0].ServerCapabilities and "TestServer3" == results.Servers[1].ServerName and ["LDS"] == results.Servers[1].ServerCapabilities)) # Retrieve the recordIds of the servers params.ServerCapabilityFilter = [] results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - retrieve recordId of 3 servers in numerical order', (3 == len(results.Servers) and results.Servers[0].RecordId < results.Servers[1].RecordId and results.Servers[1].RecordId < results.Servers[2].RecordId)) recordIdServer1 = results.Servers[0].RecordId recordIdServer2 = results.Servers[1].RecordId recordIdServer3 = results.Servers[2].RecordId # Request from recordId of 1st server params.StartingRecordId = recordIdServer1 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - start with recordId of 1st server: expect 3 servers', (3 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and "TestServer2" == results.Servers[1].ServerName and "TestServer3" == results.Servers[2].ServerName)) # Request from recordId of 2nd server params.StartingRecordId = recordIdServer2 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - start with recordId of 2nd server: expect 2 servers', (2 == len(results.Servers) and "TestServer2" == results.Servers[0].ServerName and "TestServer3" == results.Servers[1].ServerName)) # Request from recordId of 3rd server params.StartingRecordId = recordIdServer3 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - start with recordId of 3rd server: expect 1 server', (1 == len(results.Servers) and "TestServer3" == results.Servers[0].ServerName)) # Request from recordId of 3rd server + 1 params.StartingRecordId = recordIdServer3 + 1 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - start with recordId of 3rd server + 1: expect 0 servers', 0 == len(results.Servers)) # Limit the number of results to 1 starting with 3rd recordId params.StartingRecordId = recordIdServer3 params.MaxRecordsToReturn = 1 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - limit to 1 record starting with server3 recordId: expect server 3 only', (1 == len(results.Servers) and "TestServer3" == results.Servers[0].ServerName)) # Limit the number of results to 1 starting with 2nd recordId params.StartingRecordId = recordIdServer2 params.MaxRecordsToReturn = 1 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - limit to 1 record starting with server2 recordId: expect server 2 only', (1 == len(results.Servers) and "TestServer2" == results.Servers[0].ServerName)) # Limit the number of results to 2 starting with 2nd recordId params.StartingRecordId = recordIdServer2 params.MaxRecordsToReturn = 2 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - limit to 2 record starting with server2 recordId: expect server 2 and server 3 only', (2 == len(results.Servers) and "TestServer2" == results.Servers[0].ServerName and "TestServer3" == results.Servers[1].ServerName)) # Limit the number of results to 1 with recordId 0 params.StartingRecordId = 0 params.MaxRecordsToReturn = 1 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - limit to 1 record: expect server 1 only', (1 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName)) # Limit the number of results to 2 params.MaxRecordsToReturn = 2 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - limit to 2 records: expect server 1 and server 2 only', (2 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and "TestServer2" == results.Servers[1].ServerName)) # Limit the number of results to 3 params.MaxRecordsToReturn = 3 results = client.uaclient.find_servers_on_network(params) logger.add_test( 'FindServersOnNetwork test - limit to 3 records: expect 3 servers', (3 == len(results.Servers) and "TestServer1" == results.Servers[0].ServerName and "TestServer2" == results.Servers[1].ServerName and "TestServer3" == results.Servers[2].ServerName)) # UnRegister all servers local_register_server2(client, logger, "TestServer1", defaultAddress, [], False) local_register_server2(client, logger, "TestServer2", defaultAddress, [], False) local_register_server2(client, logger, "TestServer3", defaultAddress, [], False)