def test_update_flow_dns_exception(self): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain='cdn.poppy.org') domains_new = domain.Domain(domain='mycdn.poppy.org') current_origin = origin.Origin(origin='poppy.org') service_old = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_old], origins=[current_origin], flavor_id='cdn') service_new = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_new], origins=[current_origin], flavor_id='cdn') kwargs = { 'project_id': json.dumps(str(uuid.uuid4())), 'auth_token': json.dumps(str(uuid.uuid4())), 'service_id': json.dumps(service_id), 'time_seconds': [i * self.time_factor for i in range(self.total_retries)], 'service_old': json.dumps(service_old.to_dict()), 'service_obj': json.dumps(service_new.to_dict()), 'context_dict': context_utils.RequestContext().to_dict() } (service_controller, storage_controller, dns_controller, ssl_cert_controller) = self.all_controllers() with MonkeyPatchControllers(service_controller, dns_controller, storage_controller, ssl_cert_controller, memoized_controllers.task_controllers): self.patch_update_flow(service_controller, storage_controller, dns_controller) dns_controller.update = mock.Mock() dns_controller.update._mock_return_value = { 'cdn_provider': { 'error': 'Whoops!', 'error_class': 'tests.unit.distributed_task' '.taskflow.test_flows.DNSException' } } engines.run(update_service.update_service(), store=kwargs)
def test_update_flow_dns_exception(self): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain='cdn.poppy.org') domains_new = domain.Domain(domain='mycdn.poppy.org') current_origin = origin.Origin(origin='poppy.org') service_old = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_old], origins=[current_origin], flavor_id='cdn') service_new = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_new], origins=[current_origin], flavor_id='cdn') kwargs = { 'project_id': json.dumps(str(uuid.uuid4())), 'auth_token': json.dumps(str(uuid.uuid4())), 'service_id': json.dumps(service_id), 'time_seconds': [i * self.time_factor for i in range(self.total_retries)], 'service_old': json.dumps(service_old.to_dict()), 'service_obj': json.dumps(service_new.to_dict()), 'context_dict': context_utils.RequestContext().to_dict() } ( service_controller, storage_controller, dns_controller, ssl_cert_controller ) = self.all_controllers() with MonkeyPatchControllers(service_controller, dns_controller, storage_controller, ssl_cert_controller, memoized_controllers.task_controllers): self.patch_update_flow(service_controller, storage_controller, dns_controller) dns_controller.update = mock.Mock() dns_controller.update._mock_return_value = { 'cdn_provider': { 'error': 'Whoops!', 'error_class': 'tests.unit.distributed_task' '.taskflow.test_flows.DNSException' } } engines.run(update_service.update_service(), store=kwargs)
def test_update_flow_dns_exception_with_retry_and_fail(self): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain='cdn.poppy.org') domains_new = domain.Domain(domain='mycdn.poppy.org') current_origin = origin.Origin(origin='poppy.org') service_old = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_old], origins=[current_origin], flavor_id='cdn') service_new = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_new], origins=[current_origin], flavor_id='cdn') kwargs = { 'project_id': json.dumps(str(uuid.uuid4())), 'auth_token': json.dumps(str(uuid.uuid4())), 'service_id': json.dumps(service_id), 'time_seconds': [i * self.time_factor for i in range(self.total_retries)], 'service_old': json.dumps(service_old.to_dict()), 'service_obj': json.dumps(service_new.to_dict()), 'context_dict': context_utils.RequestContext().to_dict() } ( service_controller, storage_controller, dns_controller, ssl_cert_controller ) = self.all_controllers() with MonkeyPatchControllers(service_controller, dns_controller, storage_controller, ssl_cert_controller, memoized_controllers.task_controllers): self.patch_update_flow(service_controller, storage_controller, dns_controller) dns_controller.update = mock.Mock() dns_responder_returns = self.dns_exceptions_only() dns_controller.update._mock_side_effect = (dns_responder for dns_responder in dns_responder_returns) engines.run(update_service.update_service(), store=kwargs)
def test_update_flow_dns_exception_with_retry_and_succeed( self, mock_creds): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain='cdn.poppy.org') domains_new = domain.Domain(domain='mycdn.poppy.org') current_origin = origin.Origin(origin='poppy.org') service_old = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_old], origins=[current_origin], flavor_id='cdn') service_new = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_new], origins=[current_origin], flavor_id='cdn') kwargs = { 'project_id': json.dumps(str(uuid.uuid4())), 'auth_token': json.dumps(str(uuid.uuid4())), 'service_id': json.dumps(service_id), 'time_seconds': [i * self.time_factor for i in range(self.total_retries)], 'service_old': json.dumps(service_old.to_dict()), 'service_obj': json.dumps(service_new.to_dict()), 'context_dict': context_utils.RequestContext().to_dict() } service_controller, storage_controller, dns_controller = \ self.all_controllers() with MonkeyPatchControllers(service_controller, dns_controller, storage_controller, memoized_controllers.task_controllers): self.patch_update_flow(service_controller, storage_controller, dns_controller) dns_controller.update = mock.Mock() dns_responder_returns = self.dns_exceptions_and_succeed() dns_controller.update._mock_side_effect = ( dns_responder for dns_responder in dns_responder_returns) engines.run(update_service.update_service(), store=kwargs)
def test_update_flow_dns_exception(self, mock_creds): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain="cdn.poppy.org") domains_new = domain.Domain(domain="mycdn.poppy.org") current_origin = origin.Origin(origin="poppy.org") service_old = service.Service( service_id=service_id, name="poppy cdn service", domains=[domains_old], origins=[current_origin], flavor_id="cdn", ) service_new = service.Service( service_id=service_id, name="poppy cdn service", domains=[domains_new], origins=[current_origin], flavor_id="cdn", ) kwargs = { "project_id": json.dumps(str(uuid.uuid4())), "auth_token": json.dumps(str(uuid.uuid4())), "service_id": json.dumps(service_id), "time_seconds": [i * self.time_factor for i in range(self.total_retries)], "service_old": json.dumps(service_old.to_dict()), "service_obj": json.dumps(service_new.to_dict()), } service_controller, storage_controller, dns_controller = self.all_controllers() with MonkeyPatchControllers( service_controller, dns_controller, storage_controller, memoized_controllers.task_controllers ): self.patch_update_flow(service_controller, storage_controller, dns_controller) dns_controller.update = mock.Mock() dns_controller.update._mock_return_value = { "cdn_provider": { "error": "Whoops!", "error_class": "tests.unit.distributed_task" ".taskflow.test_flows.DNSException", } } engines.run(update_service.update_service(), store=kwargs)
def test_update_flow_normal(self): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain='cdn.poppy.org') domains_new = domain.Domain(domain='mycdn.poppy.org') current_origin = origin.Origin(origin='poppy.org') service_old = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_old], origins=[current_origin], flavor_id='cdn') service_new = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_new], origins=[current_origin], flavor_id='cdn') kwargs = { 'project_id': json.dumps(str(uuid.uuid4())), 'auth_token': json.dumps(str(uuid.uuid4())), 'service_id': json.dumps(service_id), 'time_seconds': [i * self.time_factor for i in range(self.total_retries)], 'service_old': json.dumps(service_old.to_dict()), 'service_obj': json.dumps(service_new.to_dict()), 'context_dict': context_utils.RequestContext().to_dict() } (service_controller, storage_controller, dns_controller, ssl_cert_controller) = self.all_controllers() with MonkeyPatchControllers(service_controller, dns_controller, storage_controller, ssl_cert_controller, memoized_controllers.task_controllers): self.patch_update_flow(service_controller, storage_controller, dns_controller) engines.run(update_service.update_service(), store=kwargs)
def test_update_flow_dns_exception_with_retry(self, mock_creds): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain="cdn.poppy.org") domains_new = domain.Domain(domain="mycdn.poppy.org") current_origin = origin.Origin(origin="poppy.org") service_old = service.Service( service_id=service_id, name="poppy cdn service", domains=[domains_old], origins=[current_origin], flavor_id="cdn", ) service_new = service.Service( service_id=service_id, name="poppy cdn service", domains=[domains_new], origins=[current_origin], flavor_id="cdn", ) kwargs = { "project_id": json.dumps(str(uuid.uuid4())), "auth_token": json.dumps(str(uuid.uuid4())), "service_id": json.dumps(service_id), "time_seconds": [i * self.time_factor for i in range(self.total_retries)], "service_old": json.dumps(service_old.to_dict()), "service_obj": json.dumps(service_new.to_dict()), } service_controller, storage_controller, dns_controller = self.all_controllers() with MonkeyPatchControllers( service_controller, dns_controller, storage_controller, memoized_controllers.task_controllers ): self.patch_update_flow(service_controller, storage_controller, dns_controller) dns_controller.update = mock.Mock() dns_responder_returns = self.dns_exceptions() dns_controller.update._mock_side_effect = (dns_responder for dns_responder in dns_responder_returns) engines.run(update_service.update_service(), store=kwargs)
def test_update_flow_normal(self, mock_creds, mock_dns_client): service_id = str(uuid.uuid4()) domains_old = domain.Domain(domain='cdn.poppy.org') domains_new = domain.Domain(domain='mycdn.poppy.org') current_origin = origin.Origin(origin='poppy.org') service_old = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_old], origins=[current_origin], flavor_id='cdn') service_new = service.Service(service_id=service_id, name='poppy cdn service', domains=[domains_new], origins=[current_origin], flavor_id='cdn') kwargs = { 'project_id': json.dumps(str(uuid.uuid4())), 'auth_token': json.dumps(str(uuid.uuid4())), 'service_id': json.dumps(service_id), 'time_seconds': [i * self.time_factor for i in range(self.total_retries)], 'service_old': json.dumps(service_old.to_dict()), 'service_obj': json.dumps(service_new.to_dict()), 'context_dict': context_utils.RequestContext().to_dict() } service_controller, storage_controller, dns_controller = \ self.all_controllers() with MonkeyPatchControllers(service_controller, dns_controller, storage_controller, memoized_controllers.task_controllers): self.patch_update_flow(service_controller, storage_controller, dns_controller) engines.run(update_service.update_service(), store=kwargs)