Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 15 additions & 2 deletions f5_cccl/service/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,11 @@ def _create_resources(self, create_list):
LOGGER.warning(
"Resource /%s/%s already exists, skipping task...",
resource.partition, resource.name)
except exc.F5CcclResourceRequestError as e:
LOGGER.error(str(e))
LOGGER.error(
"Resource /%s/%s creation request invalid, not retrying task...",
resource.partition, resource.name)
except (exc.F5CcclResourceCreateError,
exc.F5CcclError) as e:
LOGGER.error(str(e))
Expand All @@ -157,8 +162,12 @@ def _update_resources(self, update_list):
LOGGER.warning(
"Resource /%s/%s does not exist, skipping task...",
resource.partition, resource.name)
except exc.F5CcclResourceRequestError as e:
LOGGER.error(str(e))
LOGGER.error(
"Resource /%s/%s update request invalid, not retrying task...",
resource.partition, resource.name)
except (exc.F5CcclResourceUpdateError,
exc.F5CcclResourceRequestError,
exc.F5CcclError) as e:
LOGGER.error(str(e))
LOGGER.error(
Expand All @@ -182,8 +191,12 @@ def _delete_resources(self, delete_list, retry=True):
LOGGER.warning(
"Resource /%s/%s does not exist, skipping task...",
resource.partition, resource.name)
except exc.F5CcclResourceRequestError as e:
LOGGER.error(str(e))
LOGGER.error(
"Resource /%s/%s delete request invalid, not retrying task...",
resource.partition, resource.name)
except (exc.F5CcclResourceDeleteError,
exc.F5CcclResourceRequestError,
exc.F5CcclError) as e:
LOGGER.error(str(e))
if retry:
Expand Down
34 changes: 34 additions & 0 deletions f5_cccl/service/test/test_service_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import json
import pickle
import pytest
import f5_cccl.exceptions as exc
from f5_cccl.test.conftest import bigip_proxy

from f5_cccl.resource.ltm.app_service import ApplicationService
Expand Down Expand Up @@ -179,6 +180,39 @@ def test_deploy_net(self):
tasks_remaining = deployer.deploy_net(self.desired_net_config)
assert 0 == tasks_remaining

def test_create_request_error_not_requeued(self):
deployer = ServiceConfigDeployer(self.bigip)
resource = MagicMock()
resource.name = 'bad-route-create'
resource.partition = 'test'
resource.create.side_effect = exc.F5CcclResourceRequestError('bad request')

retry_list = deployer._create_resources([resource])

assert retry_list == []

def test_update_request_error_not_requeued(self):
deployer = ServiceConfigDeployer(self.bigip)
resource = MagicMock()
resource.name = 'bad-route-update'
resource.partition = 'test'
resource.update.side_effect = exc.F5CcclResourceRequestError('bad request')

retry_list = deployer._update_resources([resource])

assert retry_list == []

def test_delete_request_error_not_requeued(self):
deployer = ServiceConfigDeployer(self.bigip)
resource = MagicMock()
resource.name = 'bad-route-delete'
resource.partition = 'test'
resource.delete.side_effect = exc.F5CcclResourceRequestError('bad request')

retry_list = deployer._delete_resources([resource])

assert retry_list == []

def test_app_services(self, ltm_service_manager):
"""Test create/update/delete of app services."""
# Should create one app service
Expand Down