本文整理汇总了Python中nailgun.extensions.network_manager.checker.NetworkCheck类的典型用法代码示例。如果您正苦于以下问题:Python NetworkCheck类的具体用法?Python NetworkCheck怎么用?Python NetworkCheck使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了NetworkCheck类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_check_bond_slaves_speeds
def test_check_bond_slaves_speeds(self):
cluster = self.env.create(
nodes_kwargs=[
{'roles': ['controller'], 'pending_addition': True}
]
)
cluster_db = self.db.query(Cluster).get(cluster['id'])
checker = NetworkCheck(FakeTask(cluster_db), {})
checker.check_bond_slaves_speeds()
self.assertEqual(checker.err_msgs, [])
bond_if1 = network_db.NodeBondInterface()
bond_if2 = network_db.NodeBondInterface()
nic1 = network_db.NodeNICInterface()
nic2 = network_db.NodeNICInterface()
nic3 = network_db.NodeNICInterface()
nic1.current_speed = 100
nic2.current_speed = 10
nic3.current_speed = None
bond_if1.slaves = [nic1, nic2, nic3]
bond_if2.slaves = [nic3]
checker.cluster.nodes[0].bond_interfaces = [bond_if1, bond_if2]
checker.check_bond_slaves_speeds()
self.assertEqual(len(checker.err_msgs), 2)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:27,代码来源:test_network_check.py
示例2: test_check_untagged_intersection_failed
def test_check_untagged_intersection_failed(self, mocked_db):
cluster = self.env.create(
nodes_kwargs=[
{'roles': ['controller'], 'pending_addition': True}
]
)
cluster_db = self.db.query(Cluster).get(cluster['id'])
ng1 = NetworkGroup()
ng1.name = consts.NETWORKS.storage
ng2 = NetworkGroup()
ng2.name = consts.NETWORKS.management
self.env.db().add_all([ng1, ng2])
self.env.db().flush()
checker = NetworkCheck(FakeTask(cluster_db), {})
checker.networks = [{'id': ng1.id,
'cidr': '192.168.0.0/24',
'name': ng1.name,
'vlan_start': None,
'meta': {'notation': consts.NETWORK_NOTATION.cidr}
},
{'id': ng2.id,
'cidr': '192.168.0.0/26',
'name': ng2.name,
'vlan_start': None,
'meta': {'notation': consts.NETWORK_NOTATION.cidr}
}]
checker.cluster.nodes[0].interfaces[0].assigned_networks_list = \
[ng1, ng2]
checker.cluster.nodes[0].interfaces[1].assigned_networks_list = \
[ng1, ng2]
self.env.db.flush()
self.assertRaises(errors.NetworkCheckError,
checker.check_untagged_intersection)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:35,代码来源:test_network_check.py
示例3: test_check_network_classes_exclude_loopback_fail
def test_check_network_classes_exclude_loopback_fail(self, mocked_db):
checker = NetworkCheck(self.task, {})
networks = ['224.0.0.0/3', '127.0.0.0/8']
for network in networks:
checker.networks = [{'id': 1, 'cidr': network, 'name': 'fake'}]
self.assertRaises(errors.NetworkCheckError,
checker.check_network_classes_exclude_loopback)
self.assertEqual(mocked_db.call_count, 4)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:8,代码来源:test_network_check.py
示例4: test_check_calculated_network_cidr
def test_check_calculated_network_cidr(self, mocked_db):
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.99.0/16',
'name': 'storage',
'gateway': '192.168.0.1',
'vlan_start': 1}]
self.assertRaises(errors.NetworkCheckError,
checker.check_calculated_network_cidr)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:10,代码来源:test_network_check.py
示例5: test_check_vlan_ids_range_and_intersection
def test_check_vlan_ids_range_and_intersection(self, mocked_db):
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'fixed',
'gateway': '192.168.0.1',
'vlan_start': 200}]
checker.network_config['fixed_networks_vlan_start'] = 2
checker.network_config['fixed_networks_amount'] = 10
self.assertNotRaises(errors.NetworkCheckError,
checker.check_vlan_ids_range_and_intersection)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:12,代码来源:test_network_check.py
示例6: test_neutron_check_gateways_gw_outside
def test_neutron_check_gateways_gw_outside(self, get_by_cluster_id_mock,
mocked_db):
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'gateway': '192.168.1.1',
'meta': {'notation': consts.NETWORK_NOTATION.cidr}
}]
nodegroup_mock = MagicMock(**{'count.return_value': 2})
get_by_cluster_id_mock.return_value = nodegroup_mock
self.assertRaises(errors.NetworkCheckError,
checker.neutron_check_gateways)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:12,代码来源:test_network_check.py
示例7: test_check_ironic_intersect_with_baremetal
def test_check_ironic_intersect_with_baremetal(self, mocked_db):
cluster = self.env.create(
nodes_kwargs=[
{'roles': ['controller'], 'pending_addition': True},
{'roles': ['compute'], 'pending_addition': True},
],
cluster_kwargs={'editable_attributes': {
'additional_components': {'ironic': {'value': True}}}}
)
cluster_db = self.db.query(Cluster).get(cluster['id'])
checker = NetworkCheck(FakeTask(cluster_db), {})
checker.network_config['baremetal_range'] = ['192.168.3.52',
'192.168.3.254']
checker.network_config['baremetal_gateway'] = '192.168.3.51'
checker.networks = [
{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'public',
'gateway': '192.168.0.1',
'ip_ranges': ['192.168.0.1', '192.168.0.100'],
'meta': {'notation': 'cidr'}},
{'cidr': '192.168.3.0/24',
'gateway': None,
'group_id': 2,
'id': 11,
'ip_ranges': [['192.168.3.1', '192.168.3.254']],
'meta': {
'cidr': '192.168.3.0/24',
'configurable': True,
'ip_range': ['192.168.3.2', '192.168.3.50'],
'map_priority': 2,
'name': 'baremetal',
'notation': 'ip_ranges',
'render_type': None,
'restrictions': [
{'condition':
'settings:additional_components.ironic.value == false'}],
'use_gateway': False,
'vlan_start': 104},
'name': 'baremetal',
'vlan_start': 105}]
self.assertRaises(
errors.NetworkCheckError,
checker.neutron_check_l3_addresses_not_match_subnet_and_broadcast)
开发者ID:ekorekin,项目名称:fuel-web,代码行数:45,代码来源:test_network_check.py
示例8: test_check_dns_equality
def test_check_dns_equality(self, mocked_db):
dns_lists = [
(['2.3.4.5'], True),
(['2.3.4.5', '2.3.4.5'], False),
(['2.3.4.5', '2.3.4.99'], True),
(['2.3.4.5', '2.3.4.99', '2.3.4.99'], False),
(['2.3.4.5', '2.3.4.99', '2.3.4.199'], True),
]
checker = NetworkCheck(self.task, {})
for dns_setup, must_pass in dns_lists:
checker.network_config['dns_nameservers'] = dns_setup
if must_pass:
self.assertNotRaises(errors.NetworkCheckError,
checker.check_dns_servers_ips)
else:
self.assertRaises(errors.NetworkCheckError,
checker.check_dns_servers_ips)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:18,代码来源:test_network_check.py
示例9: test_check_network_address_spaces_intersection
def test_check_network_address_spaces_intersection(self, _):
cluster = self.env.create(
cluster_kwargs={
'net_provider': consts.CLUSTER_NET_PROVIDERS.nova_network},
nodes_kwargs=[
{"api": True,
"pending_addition": True},
]
)
self.task = FakeTask(self.db.query(Cluster).get(cluster['id']))
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'fake1',
'meta': {'notation': 'cidr'}},
{'id': 2,
'cidr': '192.168.0.0/26',
'name': 'fake2',
'meta': {'notation': 'cidr'}}]
self.assertRaises(errors.NetworkCheckError,
checker.check_network_address_spaces_intersection)
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'fake1',
'meta': {'notation': 'cidr'}},
{'id': 2,
'cidr': '192.168.1.0/26',
'name': 'fake2',
'meta': {'notation': 'cidr'}}]
checker.network_config['fixed_networks_cidr'] = '10.20.0.0/24'
self.assertNotRaises(errors.NetworkCheckError,
checker.check_network_address_spaces_intersection)
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'fake1',
'meta': {'notation': 'cidr'}},
{'id': 2,
'cidr': '10.20.0.0/26',
'name': 'fake2',
'meta': {'notation': 'cidr'}}]
checker.network_config['fixed_networks_cidr'] = '10.20.0.0/24'
self.assertRaises(errors.NetworkCheckError,
checker.check_network_address_spaces_intersection)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:51,代码来源:test_network_check.py
示例10: test_check_untagged_intersection
def test_check_untagged_intersection(self):
cluster = self.env.create(
nodes_kwargs=[
{'roles': ['controller'], 'pending_addition': True}
]
)
cluster_db = self.db.query(Cluster).get(cluster['id'])
checker = NetworkCheck(FakeTask(cluster_db), {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'fake1',
'vlan_start': None,
'meta': {'notation': 'cidr'}}]
ng1 = NetworkGroup()
ng1.name = 'fake3'
ng1.id = 3
ng2 = NetworkGroup()
ng2.name = 'fake4'
ng2.id = 4
checker.cluster.nodes[0].interfaces[0].assigned_networks_list = \
[ng1, ng2]
self.assertNotRaises(errors.NetworkCheckError,
checker.check_untagged_intersection)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:24,代码来源:test_network_check.py
示例11: test_check_network_addresses_not_match_subnet_and_broadcast
def test_check_network_addresses_not_match_subnet_and_broadcast(self,
mocked_db):
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'gateway': '192.168.0.1',
'name': 'fake1',
'meta': {'notation': 'ip_ranges'}}]
self.assertNotRaises(
errors.NetworkCheckError,
checker.check_network_addresses_not_match_subnet_and_broadcast)
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'gateway': '192.168.0.0',
'name': 'fake1',
'meta': {'notation': 'ip_ranges'}}]
self.assertRaises(
errors.NetworkCheckError,
checker.check_network_addresses_not_match_subnet_and_broadcast)
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'ip_ranges': ['192.168.0.1', '192.168.0.100'],
'gateway': '192.168.0.0',
'name': 'fake1',
'meta': {'notation': 'ip_ranges'}}]
self.assertRaises(
errors.NetworkCheckError,
checker.check_network_addresses_not_match_subnet_and_broadcast)
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'ip_ranges': ['192.168.1.1', '192.168.1.100'],
'gateway': '192.168.0.1',
'name': 'fake1',
'meta': {'notation': 'ip_ranges'}}]
self.assertNotRaises(
errors.NetworkCheckError,
checker.check_network_addresses_not_match_subnet_and_broadcast)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:43,代码来源:test_network_check.py
示例12: test_neutron_check_l3_addresses_not_match_subnet_and_broadcast
def test_neutron_check_l3_addresses_not_match_subnet_and_broadcast(
self, mocked_db, is_component_enabled):
checker = NetworkCheck(self.task, {})
checker.network_config['floating_ranges'] = [('192.168.0.1',
'192.168.0.255')]
checker.network_config['internal_cidr'] = '192.168.0.0/24'
checker.network_config['internal_gateway'] = '192.168.0.0'
checker.network_config['baremetal_range'] = ['192.168.3.52',
'192.168.3.254']
checker.network_config['baremetal_gateway'] = '192.168.3.53'
checker.networks = [
{'id': 1,
'cidr': '192.168.0.0/24',
'gateway': '192.168.0.1',
'name': 'public'},
{'cidr': '192.168.3.0/24',
'gateway': None,
'group_id': 2,
'id': 11,
'ip_ranges': [['192.168.3.1', '192.168.3.50']],
'meta': {
'cidr': '192.168.3.0/24',
'configurable': True,
'ip_range': ['192.168.3.2', '192.168.3.50'],
'map_priority': 2,
'name': 'baremetal',
'notation': 'ip_ranges',
'render_type': None,
'restrictions': [
{'condition':
'settings:additional_components.ironic.value == false'}],
'use_gateway': False,
'vlan_start': 104},
'name': 'baremetal',
'vlan_start': 105}]
is_component_enabled.return_value = True
self.assertRaises(
errors.NetworkCheckError,
checker.neutron_check_l3_addresses_not_match_subnet_and_broadcast)
self.assertEqual(len(checker.err_msgs), 3)
开发者ID:ekorekin,项目名称:fuel-web,代码行数:42,代码来源:test_network_check.py
示例13: test_neutron_check_l3_addresses_not_match_subnet_and_broadcast
def test_neutron_check_l3_addresses_not_match_subnet_and_broadcast(
self, mocked_db, is_component_enabled):
checker = NetworkCheck(self.task, {})
checker.network_config['floating_ranges'] = [('192.168.0.1',
'192.168.0.255')]
checker.network_config['internal_cidr'] = '192.168.0.0/24'
checker.network_config['internal_gateway'] = '192.168.0.0'
checker.network_config['baremetal_range'] = ['192.168.3.52',
'192.168.3.254']
checker.network_config['baremetal_gateway'] = '192.168.3.53'
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'gateway': '192.168.0.1',
'name': 'public'}]
is_component_enabled.return_value = True
self.assertRaises(
errors.NetworkCheckError,
checker.neutron_check_l3_addresses_not_match_subnet_and_broadcast)
self.assertEqual(len(checker.err_msgs), 3)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:20,代码来源:test_network_check.py
示例14: test_check_public_floating_ranges_intersection
def test_check_public_floating_ranges_intersection(self, _):
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'public',
'gateway': '192.168.0.1',
'ip_ranges': ['192.168.0.1', '192.168.0.100'],
'meta': {'notation': 'cidr'}}]
checker.network_config['floating_ranges'] = ['192.168.0.100',
'192.168.0.199']
self.assertRaises(errors.NetworkCheckError,
checker.check_public_floating_ranges_intersection)
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'public',
'gateway': '192.168.0.1',
'ip_ranges': [('192.168.0.1', '192.168.0.254')],
'meta': {'notation': 'cidr'}}]
checker.network_config['floating_ranges'] = ['192.168.2.0/24']
self.assertRaises(errors.NetworkCheckError,
checker.check_public_floating_ranges_intersection)
checker = NetworkCheck(self.task, {})
checker.networks = [{'id': 1,
'cidr': '192.168.0.0/24',
'name': 'public',
'gateway': '192.168.0.1',
'ip_ranges': [('192.168.0.2', '192.168.0.254')],
'meta': {'notation': 'cidr'}}]
checker.network_config['floating_ranges'] = ['192.168.2.0/24']
self.assertNotRaises(errors.NetworkCheckError,
checker.check_public_floating_ranges_intersection)
checker = NetworkCheck(self.task, {})
# 'floating_ranges' and 'ip_ranges' have to be in the same 'cidr'
# but don't intersect.
checker.networks = [
{'id': 1,
'cidr': '192.168.0.0/25',
'name': 'public',
'gateway': '192.168.0.1',
'ip_ranges': [['192.168.0.10', '192.168.0.40']],
'meta': {'notation': 'cidr'},
'group_id': 1,
},
{'id': 2,
'cidr': '192.168.0.128/25',
'name': 'public',
'gateway': '192.168.0.129',
'ip_ranges': [['192.168.0.130', '192.168.0.150']],
'meta': {'notation': 'cidr'},
'group_id': 2,
}
]
checker.network_config['floating_ranges'] = [
['192.168.0.50', '192.168.0.100'],
['192.168.0.160', '192.168.0.200']
]
self.assertRaisesWithMessage(
errors.NetworkCheckError,
"Floating address ranges 192.168.0.50-192.168.0.100, "
"192.168.0.160-192.168.0.200 are not in the same public CIDR.",
checker.neutron_check_network_address_spaces_intersection)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:68,代码来源:test_network_check.py
示例15: test_check_interface_mapping
def test_check_interface_mapping(self, mock_untagged, mock_bond):
checker = NetworkCheck(self.task, {})
checker.check_interface_mapping()
mock_untagged.assert_called_with()
mock_bond.assert_called_with()
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:5,代码来源:test_network_check.py
示例16: test_check_configuration_nova_network
def test_check_configuration_nova_network(self):
checker = NetworkCheck(self.task, {})
checker.net_provider = 'nova-network'
checker.neutron_check_network_address_spaces_intersection = MagicMock()
checker.neutron_check_segmentation_ids = MagicMock()
checker.neutron_check_l3_addresses_not_match_subnet_and_broadcast = \
MagicMock()
checker.check_public_floating_ranges_intersection = MagicMock()
checker.check_network_address_spaces_intersection = MagicMock()
checker.check_networks_amount = MagicMock()
checker.check_vlan_ids_range_and_intersection = MagicMock()
checker.check_network_classes_exclude_loopback = MagicMock()
checker.check_network_addresses_not_match_subnet_and_broadcast = \
MagicMock()
checker.check_configuration()
not_called = [
'neutron_check_network_address_spaces_intersection',
'neutron_check_segmentation_ids',
'neutron_check_l3_addresses_not_match_subnet_and_broadcast'
]
for method in not_called:
mocked = getattr(checker, method)
self.assertFalse(mocked.called)
called = [
'check_public_floating_ranges_intersection',
'check_network_address_spaces_intersection',
'check_networks_amount',
'check_vlan_ids_range_and_intersection',
'check_network_classes_exclude_loopback',
'check_network_addresses_not_match_subnet_and_broadcast'
]
for method in called:
mocked = getattr(checker, method)
mocked.assert_any_call()
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:39,代码来源:test_network_check.py
示例17: test_check_non_shared_networks_intersection
def test_check_non_shared_networks_intersection(self, _):
checker = NetworkCheck(self.task, {})
networks = [
{'id': 1,
'cidr': '192.168.0.0/25',
'name': consts.NETWORKS.public,
'gateway': '192.168.0.1',
'ip_ranges': [['192.168.0.10', '192.168.0.40']],
'meta': {'notation': consts.NETWORK_NOTATION.ip_ranges},
'vlan_start': 111,
'group_id': 1,
},
{'id': 2,
'cidr': '192.168.0.0/25',
'name': consts.NETWORKS.management,
'gateway': '192.168.0.2',
'ip_ranges': [['192.168.0.50', '192.168.0.110']],
'meta': {'notation': consts.NETWORK_NOTATION.ip_ranges},
'vlan_start': 222,
'group_id': 1,
}
]
# different networks from one node group, different gateways
checker.networks = networks
self.assertRaisesWithMessage(
errors.NetworkCheckError,
"Address space intersection between networks:\n"
"public, management (Network IDs: 1, 2)",
checker.neutron_check_network_address_spaces_intersection)
checker = NetworkCheck(self.task, {})
# different networks from different node groups, different gateways
networks[1]['group_id'] = 2
checker.networks = networks
self.assertRaisesWithMessage(
errors.NetworkCheckError,
"Address space intersection between networks:\n"
"public, management (Network IDs: 1, 2)",
checker.neutron_check_network_address_spaces_intersection)
checker = NetworkCheck(self.task, {})
# same networks from different node groups, different gateways
networks[1]['name'] = consts.NETWORKS.public
checker.networks = networks
self.assertRaisesWithMessage(
errors.NetworkCheckError,
"Address space intersection between networks:\n"
"public, public (Network IDs: 1, 2)",
checker.neutron_check_network_address_spaces_intersection)
checker = NetworkCheck(self.task, {})
# same networks from different node groups, same gateway
networks[1]['gateway'] = '192.168.0.1'
checker.networks = networks
checker.network_config['floating_ranges'] = [
['192.168.0.111', '192.168.0.126']
]
self.assertNotRaises(
errors.NetworkCheckError,
checker.check_configuration)
checker = NetworkCheck(self.task, {})
# same networks from different node groups, same gateway,
# intersection in ip_ranges
networks[1]['ip_ranges'] = [['192.168.0.30', '192.168.0.60']]
checker.networks = networks
checker.network_config['floating_ranges'] = [
['192.168.0.111', '192.168.0.126']
]
self.assertNotRaises(
errors.NetworkCheckError,
checker.check_configuration)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:72,代码来源:test_network_check.py
示例18: test_check_networks_amount
def test_check_networks_amount(self, mocked_db):
cluster = self.env.create(
cluster_kwargs={
'net_provider': consts.CLUSTER_NET_PROVIDERS.nova_network},
nodes_kwargs=[
{"api": True,
"pending_addition": True},
])
self.task = FakeTask(self.db.query(Cluster).get(cluster['id']))
checker = NetworkCheck(self.task, {})
checker.network_config['net_manager'] = 'FlatDHCPManager'
checker.network_config['fixed_networks_amount'] = 2
self.assertNotRaises(errors.NetworkCheckError,
checker.check_networks_amount)
checker = NetworkCheck(self.task, {})
checker.network_config['net_manager'] = 'FlatDHCPManager'
checker.network_config['fixed_networks_amount'] = 1
self.assertNotRaises(errors.NetworkCheckError,
checker.check_networks_amount)
checker = NetworkCheck(self.task, {})
checker.network_config['fixed_network_size'] = 100
checker.network_config['fixed_networks_amount'] = 3
checker.network_config['fixed_networks_cidr'] = '192.168.10.1/24'
self.assertNotRaises(errors.NetworkCheckError,
checker.check_networks_amount)
checker = NetworkCheck(self.task, {})
checker.network_config['fixed_network_size'] = 10
checker.network_config['fixed_networks_amount'] = 1
checker.network_config['fixed_networks_cidr'] = '192.168.10.1/24'
self.assertNotRaises(errors.NetworkCheckError,
checker.check_networks_amount)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:39,代码来源:test_network_check.py
示例19: test_check_network_classes_exclude_loopback
def test_check_network_classes_exclude_loopback(self):
checker = NetworkCheck(self.task, {})
checker.networks = [{'cidr': '192.168.0.0/24'}]
self.assertNotRaises(errors.NetworkCheckError,
checker.check_network_classes_exclude_loopback)
开发者ID:ogelbukh,项目名称:fuel-web,代码行数:5,代码来源:test_network_check.py
注:本文中的nailgun.extensions.network_manager.checker.NetworkCheck类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论