|
|
@@ -8,7 +8,6 @@ from cloudbridge.cloud.base.resources import ClientPagedResultList
|
|
|
from cloudbridge.cloud.base.resources import ServerPagedResultList
|
|
|
from cloudbridge.cloud.base.services import BaseBucketService
|
|
|
from cloudbridge.cloud.base.services import BaseComputeService
|
|
|
-from cloudbridge.cloud.base.services import BaseFloatingIPService
|
|
|
from cloudbridge.cloud.base.services import BaseGatewayService
|
|
|
from cloudbridge.cloud.base.services import BaseImageService
|
|
|
from cloudbridge.cloud.base.services import BaseInstanceService
|
|
|
@@ -33,7 +32,6 @@ import googleapiclient
|
|
|
from retrying import retry
|
|
|
|
|
|
from .resources import GCEFirewallsDelegate
|
|
|
-from .resources import GCEFloatingIP
|
|
|
from .resources import GCEInstance
|
|
|
from .resources import GCEInternetGateway
|
|
|
from .resources import GCEKeyPair
|
|
|
@@ -567,7 +565,6 @@ class GCENetworkingService(BaseNetworkingService):
|
|
|
super(GCENetworkingService, self).__init__(provider)
|
|
|
self._network_service = GCENetworkService(self.provider)
|
|
|
self._subnet_service = GCESubnetService(self.provider)
|
|
|
- self._floating_ip_service = GCEFloatingIPService(self.provider)
|
|
|
self._router_service = GCERouterService(self.provider)
|
|
|
self._gateway_service = GCEGatewayService(self.provider)
|
|
|
|
|
|
@@ -579,10 +576,6 @@ class GCENetworkingService(BaseNetworkingService):
|
|
|
def subnets(self):
|
|
|
return self._subnet_service
|
|
|
|
|
|
- @property
|
|
|
- def floating_ips(self):
|
|
|
- return self._floating_ip_service
|
|
|
-
|
|
|
@property
|
|
|
def routers(self):
|
|
|
return self._router_service
|
|
|
@@ -683,67 +676,6 @@ class GCENetworkService(BaseNetworkService):
|
|
|
return self._create(GCEFirewallsDelegate.DEFAULT_NETWORK, None, True)
|
|
|
|
|
|
|
|
|
-class GCEFloatingIPService(BaseFloatingIPService):
|
|
|
-
|
|
|
- def __init__(self, provider):
|
|
|
- super(GCEFloatingIPService, self).__init__(provider)
|
|
|
-
|
|
|
- def get(self, floating_ip_id):
|
|
|
- try:
|
|
|
- response = (self.provider
|
|
|
- .gce_compute
|
|
|
- .addresses()
|
|
|
- .get(project=self.provider.project_name,
|
|
|
- region=self.provider.region_name)
|
|
|
- .execute())
|
|
|
- return GCEFloatingIP(self.provider, response)
|
|
|
- except googleapiclient.errors.HttpError as http_error:
|
|
|
- cb.log.warning('googleapiclient.errors.HttpError: %s', http_error)
|
|
|
- return None
|
|
|
-
|
|
|
- def list(self, limit=None, marker=None):
|
|
|
- max_result = limit if limit is not None and limit < 500 else 500
|
|
|
- try:
|
|
|
- response = (self.provider
|
|
|
- .gce_compute
|
|
|
- .addresses()
|
|
|
- .list(project=self.provider.project_name,
|
|
|
- region=self.provider.region_name,
|
|
|
- maxResults=max_result,
|
|
|
- pageToken=marker)
|
|
|
- .execute())
|
|
|
- ips = [GCEFloatingIP(self.provider, ip)
|
|
|
- for ip in response.get('items', [])]
|
|
|
- if len(ips) > max_result:
|
|
|
- cb.log.warning('Expected at most %d results; got %d',
|
|
|
- max_result, len(ips))
|
|
|
- return ServerPagedResultList('nextPageToken' in response,
|
|
|
- response.get('nextPageToken'),
|
|
|
- False, data=ips)
|
|
|
- except googleapiclient.errors.HttpError as http_error:
|
|
|
- cb.log.warning('googleapiclient.errors.HttpError: %s', http_error)
|
|
|
- return None
|
|
|
-
|
|
|
- def create(self):
|
|
|
- region = self.provider.region_name
|
|
|
- ip_name = 'ip-{0}'.format(uuid.uuid4())
|
|
|
- try:
|
|
|
- response = (self.provider
|
|
|
- .gce_compute
|
|
|
- .addresses()
|
|
|
- .insert(project=self.provider.project_name,
|
|
|
- region=region,
|
|
|
- body={'name': ip_name})
|
|
|
- .execute())
|
|
|
- if 'error' in response:
|
|
|
- return None
|
|
|
- self.provider.wait_for_operation(response, region=region)
|
|
|
- return self.get(ip_name)
|
|
|
- except googleapiclient.errors.HttpError as http_error:
|
|
|
- cb.log.warning('googleapiclient.errors.HttpError: %s', http_error)
|
|
|
- return None
|
|
|
-
|
|
|
-
|
|
|
class GCERouterService(BaseRouterService):
|
|
|
|
|
|
def __init__(self, provider):
|