| Index: tools/telemetry/third_party/gsutilz/third_party/boto/boto/directconnect/layer1.py
|
| diff --git a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/directconnect/layer1.py b/tools/telemetry/third_party/gsutilz/third_party/boto/boto/directconnect/layer1.py
|
| deleted file mode 100644
|
| index a332b31bdd3d00b817ab5d04b0cae597a8ab4364..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/third_party/gsutilz/third_party/boto/boto/directconnect/layer1.py
|
| +++ /dev/null
|
| @@ -1,627 +0,0 @@
|
| -# Copyright (c) 2013 Amazon.com, Inc. or its affiliates. All Rights Reserved
|
| -#
|
| -# Permission is hereby granted, free of charge, to any person obtaining a
|
| -# copy of this software and associated documentation files (the
|
| -# "Software"), to deal in the Software without restriction, including
|
| -# without limitation the rights to use, copy, modify, merge, publish, dis-
|
| -# tribute, sublicense, and/or sell copies of the Software, and to permit
|
| -# persons to whom the Software is furnished to do so, subject to the fol-
|
| -# lowing conditions:
|
| -#
|
| -# The above copyright notice and this permission notice shall be included
|
| -# in all copies or substantial portions of the Software.
|
| -#
|
| -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
| -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
|
| -# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
|
| -# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
| -# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| -# IN THE SOFTWARE.
|
| -#
|
| -
|
| -import boto
|
| -from boto.connection import AWSQueryConnection
|
| -from boto.regioninfo import RegionInfo
|
| -from boto.exception import JSONResponseError
|
| -from boto.directconnect import exceptions
|
| -from boto.compat import json
|
| -
|
| -
|
| -class DirectConnectConnection(AWSQueryConnection):
|
| - """
|
| - AWS Direct Connect makes it easy to establish a dedicated network
|
| - connection from your premises to Amazon Web Services (AWS). Using
|
| - AWS Direct Connect, you can establish private connectivity between
|
| - AWS and your data center, office, or colocation environment, which
|
| - in many cases can reduce your network costs, increase bandwidth
|
| - throughput, and provide a more consistent network experience than
|
| - Internet-based connections.
|
| -
|
| - The AWS Direct Connect API Reference provides descriptions,
|
| - syntax, and usage examples for each of the actions and data types
|
| - for AWS Direct Connect. Use the following links to get started
|
| - using the AWS Direct Connect API Reference :
|
| -
|
| -
|
| - + `Actions`_: An alphabetical list of all AWS Direct Connect
|
| - actions.
|
| - + `Data Types`_: An alphabetical list of all AWS Direct Connect
|
| - data types.
|
| - + `Common Query Parameters`_: Parameters that all Query actions
|
| - can use.
|
| - + `Common Errors`_: Client and server errors that all actions can
|
| - return.
|
| - """
|
| - APIVersion = "2012-10-25"
|
| - DefaultRegionName = "us-east-1"
|
| - DefaultRegionEndpoint = "directconnect.us-east-1.amazonaws.com"
|
| - ServiceName = "DirectConnect"
|
| - TargetPrefix = "OvertureService"
|
| - ResponseError = JSONResponseError
|
| -
|
| - _faults = {
|
| - "DirectConnectClientException": exceptions.DirectConnectClientException,
|
| - "DirectConnectServerException": exceptions.DirectConnectServerException,
|
| - }
|
| -
|
| - def __init__(self, **kwargs):
|
| - region = kwargs.pop('region', None)
|
| - if not region:
|
| - region = RegionInfo(self, self.DefaultRegionName,
|
| - self.DefaultRegionEndpoint)
|
| -
|
| - if 'host' not in kwargs:
|
| - kwargs['host'] = region.endpoint
|
| -
|
| - super(DirectConnectConnection, self).__init__(**kwargs)
|
| - self.region = region
|
| -
|
| - def _required_auth_capability(self):
|
| - return ['hmac-v4']
|
| -
|
| - def allocate_connection_on_interconnect(self, bandwidth, connection_name,
|
| - owner_account, interconnect_id,
|
| - vlan):
|
| - """
|
| - Creates a hosted connection on an interconnect.
|
| -
|
| - Allocates a VLAN number and a specified amount of bandwidth
|
| - for use by a hosted connection on the given interconnect.
|
| -
|
| - :type bandwidth: string
|
| - :param bandwidth: Bandwidth of the connection.
|
| - Example: " 500Mbps "
|
| -
|
| - Default: None
|
| -
|
| - :type connection_name: string
|
| - :param connection_name: Name of the provisioned connection.
|
| - Example: " 500M Connection to AWS "
|
| -
|
| - Default: None
|
| -
|
| - :type owner_account: string
|
| - :param owner_account: Numeric account Id of the customer for whom the
|
| - connection will be provisioned.
|
| - Example: 123443215678
|
| -
|
| - Default: None
|
| -
|
| - :type interconnect_id: string
|
| - :param interconnect_id: ID of the interconnect on which the connection
|
| - will be provisioned.
|
| - Example: dxcon-456abc78
|
| -
|
| - Default: None
|
| -
|
| - :type vlan: integer
|
| - :param vlan: The dedicated VLAN provisioned to the connection.
|
| - Example: 101
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'bandwidth': bandwidth,
|
| - 'connectionName': connection_name,
|
| - 'ownerAccount': owner_account,
|
| - 'interconnectId': interconnect_id,
|
| - 'vlan': vlan,
|
| - }
|
| - return self.make_request(action='AllocateConnectionOnInterconnect',
|
| - body=json.dumps(params))
|
| -
|
| - def allocate_private_virtual_interface(self, connection_id,
|
| - owner_account,
|
| - new_private_virtual_interface_allocation):
|
| - """
|
| - Provisions a private virtual interface to be owned by a
|
| - different customer.
|
| -
|
| - The owner of a connection calls this function to provision a
|
| - private virtual interface which will be owned by another AWS
|
| - customer.
|
| -
|
| - Virtual interfaces created using this function must be
|
| - confirmed by the virtual interface owner by calling
|
| - ConfirmPrivateVirtualInterface. Until this step has been
|
| - completed, the virtual interface will be in 'Confirming'
|
| - state, and will not be available for handling traffic.
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: The connection ID on which the private virtual
|
| - interface is provisioned.
|
| - Default: None
|
| -
|
| - :type owner_account: string
|
| - :param owner_account: The AWS account that will own the new private
|
| - virtual interface.
|
| - Default: None
|
| -
|
| - :type new_private_virtual_interface_allocation: dict
|
| - :param new_private_virtual_interface_allocation: Detailed information
|
| - for the private virtual interface to be provisioned.
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'connectionId': connection_id,
|
| - 'ownerAccount': owner_account,
|
| - 'newPrivateVirtualInterfaceAllocation': new_private_virtual_interface_allocation,
|
| - }
|
| - return self.make_request(action='AllocatePrivateVirtualInterface',
|
| - body=json.dumps(params))
|
| -
|
| - def allocate_public_virtual_interface(self, connection_id, owner_account,
|
| - new_public_virtual_interface_allocation):
|
| - """
|
| - Provisions a public virtual interface to be owned by a
|
| - different customer.
|
| -
|
| - The owner of a connection calls this function to provision a
|
| - public virtual interface which will be owned by another AWS
|
| - customer.
|
| -
|
| - Virtual interfaces created using this function must be
|
| - confirmed by the virtual interface owner by calling
|
| - ConfirmPublicVirtualInterface. Until this step has been
|
| - completed, the virtual interface will be in 'Confirming'
|
| - state, and will not be available for handling traffic.
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: The connection ID on which the public virtual
|
| - interface is provisioned.
|
| - Default: None
|
| -
|
| - :type owner_account: string
|
| - :param owner_account: The AWS account that will own the new public
|
| - virtual interface.
|
| - Default: None
|
| -
|
| - :type new_public_virtual_interface_allocation: dict
|
| - :param new_public_virtual_interface_allocation: Detailed information
|
| - for the public virtual interface to be provisioned.
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'connectionId': connection_id,
|
| - 'ownerAccount': owner_account,
|
| - 'newPublicVirtualInterfaceAllocation': new_public_virtual_interface_allocation,
|
| - }
|
| - return self.make_request(action='AllocatePublicVirtualInterface',
|
| - body=json.dumps(params))
|
| -
|
| - def confirm_connection(self, connection_id):
|
| - """
|
| - Confirm the creation of a hosted connection on an
|
| - interconnect.
|
| -
|
| - Upon creation, the hosted connection is initially in the
|
| - 'Ordering' state, and will remain in this state until the
|
| - owner calls ConfirmConnection to confirm creation of the
|
| - hosted connection.
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: ID of the connection.
|
| - Example: dxcon-fg5678gh
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {'connectionId': connection_id, }
|
| - return self.make_request(action='ConfirmConnection',
|
| - body=json.dumps(params))
|
| -
|
| - def confirm_private_virtual_interface(self, virtual_interface_id,
|
| - virtual_gateway_id):
|
| - """
|
| - Accept ownership of a private virtual interface created by
|
| - another customer.
|
| -
|
| - After the virtual interface owner calls this function, the
|
| - virtual interface will be created and attached to the given
|
| - virtual private gateway, and will be available for handling
|
| - traffic.
|
| -
|
| - :type virtual_interface_id: string
|
| - :param virtual_interface_id: ID of the virtual interface.
|
| - Example: dxvif-123dfg56
|
| -
|
| - Default: None
|
| -
|
| - :type virtual_gateway_id: string
|
| - :param virtual_gateway_id: ID of the virtual private gateway that will
|
| - be attached to the virtual interface.
|
| - A virtual private gateway can be managed via the Amazon Virtual Private
|
| - Cloud (VPC) console or the `EC2 CreateVpnGateway`_ action.
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'virtualInterfaceId': virtual_interface_id,
|
| - 'virtualGatewayId': virtual_gateway_id,
|
| - }
|
| - return self.make_request(action='ConfirmPrivateVirtualInterface',
|
| - body=json.dumps(params))
|
| -
|
| - def confirm_public_virtual_interface(self, virtual_interface_id):
|
| - """
|
| - Accept ownership of a public virtual interface created by
|
| - another customer.
|
| -
|
| - After the virtual interface owner calls this function, the
|
| - specified virtual interface will be created and made available
|
| - for handling traffic.
|
| -
|
| - :type virtual_interface_id: string
|
| - :param virtual_interface_id: ID of the virtual interface.
|
| - Example: dxvif-123dfg56
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {'virtualInterfaceId': virtual_interface_id, }
|
| - return self.make_request(action='ConfirmPublicVirtualInterface',
|
| - body=json.dumps(params))
|
| -
|
| - def create_connection(self, location, bandwidth, connection_name):
|
| - """
|
| - Creates a new connection between the customer network and a
|
| - specific AWS Direct Connect location.
|
| -
|
| - A connection links your internal network to an AWS Direct
|
| - Connect location over a standard 1 gigabit or 10 gigabit
|
| - Ethernet fiber-optic cable. One end of the cable is connected
|
| - to your router, the other to an AWS Direct Connect router. An
|
| - AWS Direct Connect location provides access to Amazon Web
|
| - Services in the region it is associated with. You can
|
| - establish connections with AWS Direct Connect locations in
|
| - multiple regions, but a connection in one region does not
|
| - provide connectivity to other regions.
|
| -
|
| - :type location: string
|
| - :param location: Where the connection is located.
|
| - Example: EqSV5
|
| -
|
| - Default: None
|
| -
|
| - :type bandwidth: string
|
| - :param bandwidth: Bandwidth of the connection.
|
| - Example: 1Gbps
|
| -
|
| - Default: None
|
| -
|
| - :type connection_name: string
|
| - :param connection_name: The name of the connection.
|
| - Example: " My Connection to AWS "
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'location': location,
|
| - 'bandwidth': bandwidth,
|
| - 'connectionName': connection_name,
|
| - }
|
| - return self.make_request(action='CreateConnection',
|
| - body=json.dumps(params))
|
| -
|
| - def create_interconnect(self, interconnect_name, bandwidth, location):
|
| - """
|
| - Creates a new interconnect between a AWS Direct Connect
|
| - partner's network and a specific AWS Direct Connect location.
|
| -
|
| - An interconnect is a connection which is capable of hosting
|
| - other connections. The AWS Direct Connect partner can use an
|
| - interconnect to provide sub-1Gbps AWS Direct Connect service
|
| - to tier 2 customers who do not have their own connections.
|
| - Like a standard connection, an interconnect links the AWS
|
| - Direct Connect partner's network to an AWS Direct Connect
|
| - location over a standard 1 Gbps or 10 Gbps Ethernet fiber-
|
| - optic cable. One end is connected to the partner's router, the
|
| - other to an AWS Direct Connect router.
|
| -
|
| - For each end customer, the AWS Direct Connect partner
|
| - provisions a connection on their interconnect by calling
|
| - AllocateConnectionOnInterconnect. The end customer can then
|
| - connect to AWS resources by creating a virtual interface on
|
| - their connection, using the VLAN assigned to them by the AWS
|
| - Direct Connect partner.
|
| -
|
| - :type interconnect_name: string
|
| - :param interconnect_name: The name of the interconnect.
|
| - Example: " 1G Interconnect to AWS "
|
| -
|
| - Default: None
|
| -
|
| - :type bandwidth: string
|
| - :param bandwidth: The port bandwidth
|
| - Example: 1Gbps
|
| -
|
| - Default: None
|
| -
|
| - Available values: 1Gbps,10Gbps
|
| -
|
| - :type location: string
|
| - :param location: Where the interconnect is located
|
| - Example: EqSV5
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'interconnectName': interconnect_name,
|
| - 'bandwidth': bandwidth,
|
| - 'location': location,
|
| - }
|
| - return self.make_request(action='CreateInterconnect',
|
| - body=json.dumps(params))
|
| -
|
| - def create_private_virtual_interface(self, connection_id,
|
| - new_private_virtual_interface):
|
| - """
|
| - Creates a new private virtual interface. A virtual interface
|
| - is the VLAN that transports AWS Direct Connect traffic. A
|
| - private virtual interface supports sending traffic to a single
|
| - virtual private cloud (VPC).
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: ID of the connection.
|
| - Example: dxcon-fg5678gh
|
| -
|
| - Default: None
|
| -
|
| - :type new_private_virtual_interface: dict
|
| - :param new_private_virtual_interface: Detailed information for the
|
| - private virtual interface to be created.
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'connectionId': connection_id,
|
| - 'newPrivateVirtualInterface': new_private_virtual_interface,
|
| - }
|
| - return self.make_request(action='CreatePrivateVirtualInterface',
|
| - body=json.dumps(params))
|
| -
|
| - def create_public_virtual_interface(self, connection_id,
|
| - new_public_virtual_interface):
|
| - """
|
| - Creates a new public virtual interface. A virtual interface is
|
| - the VLAN that transports AWS Direct Connect traffic. A public
|
| - virtual interface supports sending traffic to public services
|
| - of AWS such as Amazon Simple Storage Service (Amazon S3).
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: ID of the connection.
|
| - Example: dxcon-fg5678gh
|
| -
|
| - Default: None
|
| -
|
| - :type new_public_virtual_interface: dict
|
| - :param new_public_virtual_interface: Detailed information for the
|
| - public virtual interface to be created.
|
| - Default: None
|
| -
|
| - """
|
| - params = {
|
| - 'connectionId': connection_id,
|
| - 'newPublicVirtualInterface': new_public_virtual_interface,
|
| - }
|
| - return self.make_request(action='CreatePublicVirtualInterface',
|
| - body=json.dumps(params))
|
| -
|
| - def delete_connection(self, connection_id):
|
| - """
|
| - Deletes the connection.
|
| -
|
| - Deleting a connection only stops the AWS Direct Connect port
|
| - hour and data transfer charges. You need to cancel separately
|
| - with the providers any services or charges for cross-connects
|
| - or network circuits that connect you to the AWS Direct Connect
|
| - location.
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: ID of the connection.
|
| - Example: dxcon-fg5678gh
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {'connectionId': connection_id, }
|
| - return self.make_request(action='DeleteConnection',
|
| - body=json.dumps(params))
|
| -
|
| - def delete_interconnect(self, interconnect_id):
|
| - """
|
| - Deletes the specified interconnect.
|
| -
|
| - :type interconnect_id: string
|
| - :param interconnect_id: The ID of the interconnect.
|
| - Example: dxcon-abc123
|
| -
|
| - """
|
| - params = {'interconnectId': interconnect_id, }
|
| - return self.make_request(action='DeleteInterconnect',
|
| - body=json.dumps(params))
|
| -
|
| - def delete_virtual_interface(self, virtual_interface_id):
|
| - """
|
| - Deletes a virtual interface.
|
| -
|
| - :type virtual_interface_id: string
|
| - :param virtual_interface_id: ID of the virtual interface.
|
| - Example: dxvif-123dfg56
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {'virtualInterfaceId': virtual_interface_id, }
|
| - return self.make_request(action='DeleteVirtualInterface',
|
| - body=json.dumps(params))
|
| -
|
| - def describe_connections(self, connection_id=None):
|
| - """
|
| - Displays all connections in this region.
|
| -
|
| - If a connection ID is provided, the call returns only that
|
| - particular connection.
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: ID of the connection.
|
| - Example: dxcon-fg5678gh
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {}
|
| - if connection_id is not None:
|
| - params['connectionId'] = connection_id
|
| - return self.make_request(action='DescribeConnections',
|
| - body=json.dumps(params))
|
| -
|
| - def describe_connections_on_interconnect(self, interconnect_id):
|
| - """
|
| - Return a list of connections that have been provisioned on the
|
| - given interconnect.
|
| -
|
| - :type interconnect_id: string
|
| - :param interconnect_id: ID of the interconnect on which a list of
|
| - connection is provisioned.
|
| - Example: dxcon-abc123
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {'interconnectId': interconnect_id, }
|
| - return self.make_request(action='DescribeConnectionsOnInterconnect',
|
| - body=json.dumps(params))
|
| -
|
| - def describe_interconnects(self, interconnect_id=None):
|
| - """
|
| - Returns a list of interconnects owned by the AWS account.
|
| -
|
| - If an interconnect ID is provided, it will only return this
|
| - particular interconnect.
|
| -
|
| - :type interconnect_id: string
|
| - :param interconnect_id: The ID of the interconnect.
|
| - Example: dxcon-abc123
|
| -
|
| - """
|
| - params = {}
|
| - if interconnect_id is not None:
|
| - params['interconnectId'] = interconnect_id
|
| - return self.make_request(action='DescribeInterconnects',
|
| - body=json.dumps(params))
|
| -
|
| - def describe_locations(self):
|
| - """
|
| - Returns the list of AWS Direct Connect locations in the
|
| - current AWS region. These are the locations that may be
|
| - selected when calling CreateConnection or CreateInterconnect.
|
| - """
|
| - params = {}
|
| - return self.make_request(action='DescribeLocations',
|
| - body=json.dumps(params))
|
| -
|
| - def describe_virtual_gateways(self):
|
| - """
|
| - Returns a list of virtual private gateways owned by the AWS
|
| - account.
|
| -
|
| - You can create one or more AWS Direct Connect private virtual
|
| - interfaces linking to a virtual private gateway. A virtual
|
| - private gateway can be managed via Amazon Virtual Private
|
| - Cloud (VPC) console or the `EC2 CreateVpnGateway`_ action.
|
| - """
|
| - params = {}
|
| - return self.make_request(action='DescribeVirtualGateways',
|
| - body=json.dumps(params))
|
| -
|
| - def describe_virtual_interfaces(self, connection_id=None,
|
| - virtual_interface_id=None):
|
| - """
|
| - Displays all virtual interfaces for an AWS account. Virtual
|
| - interfaces deleted fewer than 15 minutes before
|
| - DescribeVirtualInterfaces is called are also returned. If a
|
| - connection ID is included then only virtual interfaces
|
| - associated with this connection will be returned. If a virtual
|
| - interface ID is included then only a single virtual interface
|
| - will be returned.
|
| -
|
| - A virtual interface (VLAN) transmits the traffic between the
|
| - AWS Direct Connect location and the customer.
|
| -
|
| - If a connection ID is provided, only virtual interfaces
|
| - provisioned on the specified connection will be returned. If a
|
| - virtual interface ID is provided, only this particular virtual
|
| - interface will be returned.
|
| -
|
| - :type connection_id: string
|
| - :param connection_id: ID of the connection.
|
| - Example: dxcon-fg5678gh
|
| -
|
| - Default: None
|
| -
|
| - :type virtual_interface_id: string
|
| - :param virtual_interface_id: ID of the virtual interface.
|
| - Example: dxvif-123dfg56
|
| -
|
| - Default: None
|
| -
|
| - """
|
| - params = {}
|
| - if connection_id is not None:
|
| - params['connectionId'] = connection_id
|
| - if virtual_interface_id is not None:
|
| - params['virtualInterfaceId'] = virtual_interface_id
|
| - return self.make_request(action='DescribeVirtualInterfaces',
|
| - body=json.dumps(params))
|
| -
|
| - def make_request(self, action, body):
|
| - headers = {
|
| - 'X-Amz-Target': '%s.%s' % (self.TargetPrefix, action),
|
| - 'Host': self.region.endpoint,
|
| - 'Content-Type': 'application/x-amz-json-1.1',
|
| - 'Content-Length': str(len(body)),
|
| - }
|
| - http_request = self.build_base_http_request(
|
| - method='POST', path='/', auth_path='/', params={},
|
| - headers=headers, data=body)
|
| - response = self._mexe(http_request, sender=None,
|
| - override_num_retries=10)
|
| - response_body = response.read().decode('utf-8')
|
| - boto.log.debug(response_body)
|
| - if response.status == 200:
|
| - if response_body:
|
| - return json.loads(response_body)
|
| - else:
|
| - json_body = json.loads(response_body)
|
| - fault_name = json_body.get('__type', None)
|
| - exception_class = self._faults.get(fault_name, self.ResponseError)
|
| - raise exception_class(response.status, response.reason,
|
| - body=json_body)
|
|
|