def protocols(site_client, protocol_type, protocol_attribute2): """ A group of Protocol objects for testing limit/offest/etc. """ protocols = [] site = site_client.sites(site_client.default_site) for i in range(1, 6): device_name = 'device{:02d}'.format(i) interface_name = 'Ethernet1/{}'.format(i) device = site.devices.post({'hostname': device_name}) interface = site.interfaces.post({ 'device': device['id'], 'name': interface_name, }) protocol = site.protocols.post({ 'type': protocol_type['name'], 'device': device['id'], 'interface': interface['id'], 'attributes': { 'foo': 'bar' }, }) protocols.append(protocol) return protocols
def protocol_attribute2(site_client): return site_client.sites(site_client.default_site).attributes.post( { 'name':'foo', 'value': 'test_attribute', 'resource_name': 'Protocol', } )
def interface_z(site_client, device_z, network): """ Interface for the Z side of the circuit """ return site_client.sites(site_client.default_site).interfaces.post({ 'device': device_z['id'], 'name': 'eth0', 'addresses': ['10.20.30.3/32'], })
def attributeless_circuit(site_client, interface): """ Circuit with no attributes set """ return site_client.sites(site_client.default_site).circuits.post({ 'name': 'attributeless_circuit', 'endpoint_a': interface['id'], 'attributes': {}, })
def protocol_type(site_client, protocol_attribute, protocol_attribute2): """ Return a Protocol Type Object. """ return site_client.sites(site_client.default_site).protocol_types.post( { 'name': 'bgp', 'required-attributes': ['boo', 'foo',], 'description': 'bgp is my bestie', } )
def dangling_circuit(site_client, interface): """ Circuit where we only own the local site, remote (Z) end is a vendor """ return site_client.sites(site_client.default_site).circuits.post({ 'name': 'remote_vendor_circuit', 'endpoint_a': interface['id'], })
def protocol_types(site_client): """ A group of ProtocolTypes for testing limit/offset/etc. """ protocol_types = [] site = site_client.sites(site_client.default_site) for i in range(1, 6): protocol_type = site.protocol_types.post({ 'name': 'type{}'.format(i), }) protocol_types.append(protocol_type) return protocol_types
def circuit(site_client, circuit_attributes, interface_a, interface_z): """ Circuit connecting interface_a to interface_z """ return site_client.sites(site_client.default_site).circuits.post({ 'name': 'test_circuit', 'endpoint_a': interface_a['id'], 'endpoint_z': interface_z['id'], 'attributes': { 'owner': 'alice', 'vendor': 'lasers go pew pew', }, })
def protocol(site_client, device_a, interface_a, circuit, protocol_type): """ Return a Protocol Object. """ device_id = device_a['id'] interface_slug = '{device_hostname}:{name}'.format(**interface_a) return site_client.sites(site_client.default_site).protocols.post({ 'device': device_id, 'type': 'bgp', 'interface': interface_slug, 'attributes': { 'foo': 'test_protocol' }, 'circuit': circuit['name'], 'description': 'bgp is the best', })
def device_z(site_client): """ Device for the Z side of the circuit """ return site_client.sites(site_client.default_site).devices.post( {'hostname': 'foo-bar02'})
def circuit_attributes(site_client): attr_names = ['owner', 'vendor'] attrs = ({'name': a, 'resource_name': 'Circuit'} for a in attr_names) client = site_client.sites(site_client.default_site).attributes return list(map(client.post, attrs))