Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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)