Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
def protocol_attribute2(site_client):
    return site_client.sites(site_client.default_site).attributes.post(
        {
            'name':'foo',
            'value': 'test_attribute',
            'resource_name': 'Protocol',
        }
    )
Ejemplo n.º 3
0
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'],
    })
Ejemplo n.º 4
0
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': {},
    })
Ejemplo n.º 5
0
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',
        }
    )
Ejemplo n.º 6
0
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'],
    })
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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',
        },
    })
Ejemplo n.º 9
0
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',
    })
Ejemplo n.º 10
0
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'})
Ejemplo n.º 11
0
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))