コード例 #1
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_create_flow_normal(self):
        providers = ['cdn_provider']
        kwargs = {
            'providers_list_json':
            json.dumps(providers),
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'auth_token':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(str(uuid.uuid4())),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            '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_create_flow(service_controller, storage_controller,
                                   dns_controller)
            engines.run(create_service.create_service(), store=kwargs)
コード例 #2
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_recreate_ssl_certificate(self):

        providers = ['cdn_provider']
        cert_obj_json = ssl_certificate.SSLCertificate('cdn', 'mytestsite.com',
                                                       'san')
        kwargs = {
            'providers_list_json': json.dumps(providers),
            'project_id': json.dumps(str(uuid.uuid4())),
            'domain_name': 'mytestsite.com',
            'cert_type': 'san',
            'cert_obj_json': json.dumps(cert_obj_json.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_recreate_ssl_certificate_flow(service_controller,
                                                     storage_controller,
                                                     dns_controller)
            engines.run(recreate_ssl_certificate.recreate_ssl_certificate(),
                        store=kwargs)
コード例 #3
0
ファイル: test_flows.py プロジェクト: pombredanne/poppy
    def test_create_flow_dns_exception(self, mock_creds, mock_dns_client):
        providers = ['cdn_provider']
        kwargs = {
            'providers_list_json':
            json.dumps(providers),
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'auth_token':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(str(uuid.uuid4())),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)]
        }

        service_controller, storage_controller, dns_controller = \
            self.all_controllers()

        with MonkeyPatchControllers(service_controller, dns_controller,
                                    storage_controller,
                                    memoized_controllers.task_controllers):

            self.patch_create_flow(service_controller, storage_controller,
                                   dns_controller)
            dns_controller.create = mock.Mock()
            dns_controller.create._mock_return_value = {
                'cdn_provider': {
                    'error':
                    'Whoops!',
                    'error_class':
                    'tests.unit.distributed_task'
                    '.taskflow.test_flows.DNSException'
                }
            }
            engines.run(create_service.create_service(), store=kwargs)
コード例 #4
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_create_flow_dns_exception_with_retry_and_fail(self):
        providers = ['cdn_provider']
        kwargs = {
            'providers_list_json':
            json.dumps(providers),
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'auth_token':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(str(uuid.uuid4())),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            '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_create_flow(service_controller, storage_controller,
                                   dns_controller)
            dns_controller.create = mock.Mock()

            dns_responder_returns = self.dns_exceptions_only()

            dns_controller.create._mock_side_effect = (
                dns_responder for dns_responder in dns_responder_returns)

            engines.run(create_service.create_service(), store=kwargs)
コード例 #5
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_delete_ssl_certificate_normal(self):
        providers = ['cdn_provider']
        cert_obj = ssl_certificate.SSLCertificate(
            'cdn',
            'mytestsite.com',
            'san',
        )
        kwargs = {
            'cert_type': "san",
            'project_id': json.dumps(str(uuid.uuid4())),
            'domain_name': "mytestsite.com",
            'cert_obj': json.dumps(cert_obj.to_dict()),
            'providers_list': json.dumps(providers),
            'flavor_id': "premium",
            '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_delete_ssl_certificate_flow(service_controller,
                                                   storage_controller,
                                                   dns_controller,
                                                   ssl_cert_controller)
            engines.run(delete_ssl_certificate.delete_ssl_certificate(),
                        store=kwargs)
コード例 #6
0
ファイル: test_flows.py プロジェクト: pombredanne/poppy
    def test_delete_flow_normal(self, mock_creds, mock_dns_client):
        service_id = str(uuid.uuid4())
        domains_old = domain.Domain(domain='cdn.poppy.org')
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = service.Service(service_id=service_id,
                                      name='poppy cdn service',
                                      domains=[domains_old],
                                      origins=[current_origin],
                                      flavor_id='cdn')

        kwargs = {
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(service_id),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            'provider_details':
            json.dumps(
                dict([(k, v.to_dict())
                      for k, v in service_obj.provider_details.items()]))
        }

        service_controller, storage_controller, dns_controller = \
            self.all_controllers()

        with MonkeyPatchControllers(service_controller, dns_controller,
                                    storage_controller,
                                    memoized_controllers.task_controllers):

            self.patch_delete_flow(service_controller, storage_controller,
                                   dns_controller)
            engines.run(delete_service.delete_service(), store=kwargs)
コード例 #7
0
ファイル: test_flows.py プロジェクト: pombredanne/poppy
    def test_create_flow_normal(self, mock_creds, mock_dns_client):
        providers = ['cdn_provider']
        kwargs = {
            'providers_list_json':
            json.dumps(providers),
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'auth_token':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(str(uuid.uuid4())),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)]
        }

        service_controller, storage_controller, dns_controller = \
            self.all_controllers()

        with MonkeyPatchControllers(service_controller, dns_controller,
                                    storage_controller,
                                    memoized_controllers.task_controllers):

            self.patch_create_flow(service_controller, storage_controller,
                                   dns_controller)
            engines.run(create_service.create_service(), store=kwargs)
コード例 #8
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_service_state_flow_dns_exception(self):
        service_id = str(uuid.uuid4())
        domains_old = domain.Domain(domain='cdn.poppy.org')
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = service.Service(service_id=service_id,
                                      name='poppy cdn service',
                                      domains=[domains_old],
                                      origins=[current_origin],
                                      flavor_id='cdn')

        enable_kwargs = {
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'state':
            'enable',
            'service_obj':
            json.dumps(service_obj.to_dict()),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            'context_dict':
            context_utils.RequestContext().to_dict()
        }

        disable_kwargs = enable_kwargs.copy()
        disable_kwargs['state'] = 'disable'

        (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_service_state_flow(service_controller,
                                          storage_controller, dns_controller)
            dns_controller.enable = mock.Mock()
            dns_controller.enable._mock_return_value = {
                'cdn_provider': {
                    'error':
                    'Whoops!',
                    'error_class':
                    'tests.unit.distributed_task'
                    '.taskflow.test_flows.DNSException'
                }
            }
            dns_controller.disable = mock.Mock()
            dns_controller.disable._mock_return_value = {
                'cdn_provider': {
                    'error':
                    'Whoops!',
                    'error_class':
                    'tests.unit.distributed_task'
                    '.taskflow.test_flows.DNSException'
                }
            }
            engines.run(update_service_state.enable_service(),
                        store=enable_kwargs)
            engines.run(update_service_state.disable_service(),
                        store=disable_kwargs)
コード例 #9
0
    def test_update_flow_dns_exception(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)
            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)
コード例 #10
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_delete_flow_dns_exception(self):
        service_id = str(uuid.uuid4())
        domains_old = domain.Domain(domain='cdn.poppy.org')
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = service.Service(service_id=service_id,
                                      name='poppy cdn service',
                                      domains=[domains_old],
                                      origins=[current_origin],
                                      flavor_id='cdn')

        kwargs = {
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(service_id),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            'provider_details':
            json.dumps(
                dict([(k, v.to_dict())
                      for k, v in service_obj.provider_details.items()])),
            '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_delete_flow(service_controller, storage_controller,
                                   dns_controller)

            service_mock = mock.Mock()
            type(service_mock).domains = []
            storage_controller.get_service.return_value = service_mock
            dns_controller.delete = mock.Mock()
            dns_controller.delete._mock_return_value = {
                'cdn_provider': {
                    'error':
                    'Whoops!',
                    'error_class':
                    'tests.unit.distributed_task'
                    '.taskflow.test_flows.DNSException'
                }
            }

            engines.run(delete_service.delete_service(), store=kwargs)
コード例 #11
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)
コード例 #12
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_service_state_flow_dns_exception_retry_and_succeed(self):
        service_id = str(uuid.uuid4())
        domains_old = domain.Domain(domain='cdn.poppy.org')
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = service.Service(service_id=service_id,
                                      name='poppy cdn service',
                                      domains=[domains_old],
                                      origins=[current_origin],
                                      flavor_id='cdn')

        enable_kwargs = {
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'state':
            'enable',
            'service_obj':
            json.dumps(service_obj.to_dict()),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            'context_dict':
            context_utils.RequestContext().to_dict()
        }

        disable_kwargs = enable_kwargs.copy()
        disable_kwargs['state'] = 'disable'

        (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_service_state_flow(service_controller,
                                          storage_controller, dns_controller)
            dns_responder_returns = self.dns_exceptions_and_succeed()

            dns_controller.enable._mock_side_effect = (
                dns_responder for dns_responder in dns_responder_returns)
            dns_controller.disable._mock_side_effect = (
                dns_responder for dns_responder in dns_responder_returns)

            engines.run(update_service_state.enable_service(),
                        store=enable_kwargs)
            engines.run(update_service_state.disable_service(),
                        store=disable_kwargs)
コード例 #13
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    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)
コード例 #14
0
ファイル: test_flows.py プロジェクト: yunhaia/poppy
    def test_delete_ssl_certificate_normal(self):

        kwargs = {
            'cert_type': "san",
            'project_id': json.dumps(str(uuid.uuid4())),
            'domain_name': "san.san.com",
            '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_create_ssl_certificate_flow(service_controller,
                                                   storage_controller,
                                                   dns_controller)
            engines.run(delete_ssl_certificate.delete_ssl_certificate(),
                        store=kwargs)
コード例 #15
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_delete_flow_dns_exception_with_retry_and_fail(self):
        service_id = str(uuid.uuid4())
        domains_old = domain.Domain(domain='cdn.poppy.org')
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = service.Service(service_id=service_id,
                                      name='poppy cdn service',
                                      domains=[domains_old],
                                      origins=[current_origin],
                                      flavor_id='cdn')

        kwargs = {
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(service_id),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            'provider_details':
            json.dumps(
                dict([(k, v.to_dict())
                      for k, v in service_obj.provider_details.items()])),
            '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_delete_flow(service_controller, storage_controller,
                                   dns_controller)
            dns_controller.delete = mock.Mock()
            dns_responder_returns = self.dns_exceptions_only()

            dns_controller.delete._mock_side_effect = (
                dns_responder for dns_responder in dns_responder_returns)
            engines.run(delete_service.delete_service(), store=kwargs)
コード例 #16
0
    def test_service_state_flow_normal(self, mock_creds, mock_dns_client):
        service_id = str(uuid.uuid4())
        domains_old = domain.Domain(domain='cdn.poppy.org')
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = service.Service(service_id=service_id,
                                      name='poppy cdn service',
                                      domains=[domains_old],
                                      origins=[current_origin],
                                      flavor_id='cdn')

        enable_kwargs = {
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'state':
            'enable',
            'service_obj':
            json.dumps(service_obj.to_dict()),
            'time_seconds':
            [i * self.time_factor for i in range(self.total_retries)],
            'context_dict':
            context_utils.RequestContext().to_dict()
        }

        disable_kwargs = enable_kwargs.copy()
        disable_kwargs['state'] = 'disable'

        service_controller, storage_controller, dns_controller = \
            self.all_controllers()

        with MonkeyPatchControllers(service_controller, dns_controller,
                                    storage_controller,
                                    memoized_controllers.task_controllers):

            self.patch_service_state_flow(service_controller,
                                          storage_controller, dns_controller)
            engines.run(update_service_state.enable_service(),
                        store=enable_kwargs)
            engines.run(update_service_state.disable_service(),
                        store=disable_kwargs)
コード例 #17
0
ファイル: test_flows.py プロジェクト: satroutr/poppy
    def test_purge_flow_normal(self):
        service_id = str(uuid.uuid4())
        domains_old = domain.Domain(domain='cdn.poppy.org')
        current_origin = origin.Origin(origin='poppy.org')
        service_obj = service.Service(service_id=service_id,
                                      name='poppy cdn service',
                                      domains=[domains_old],
                                      origins=[current_origin],
                                      flavor_id='cdn')

        kwargs = {
            'project_id':
            json.dumps(str(uuid.uuid4())),
            'service_id':
            json.dumps(service_id),
            'provider_details':
            json.dumps(
                dict([(k, v.to_dict())
                      for k, v in service_obj.provider_details.items()])),
            'purge_url':
            'cdn.poppy.org',
            'hard':
            json.dumps(True),
            'service_obj':
            json.dumps(service_obj.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_purge_flow(service_controller, storage_controller,
                                  dns_controller)
            engines.run(purge_service.purge_service(), store=kwargs)
コード例 #18
0
ファイル: test_flows.py プロジェクト: pombredanne/poppy
    def test_create_ssl_certificate_normal(self, mock_creds, mock_dns_client):
        providers = ['cdn_provider']
        cert_obj_json = ssl_certificate.SSLCertificate('cdn', 'mytestsite.com',
                                                       'san')
        kwargs = {
            'providers_list_json': json.dumps(providers),
            'project_id': json.dumps(str(uuid.uuid4())),
            'cert_obj_json': json.dumps(cert_obj_json.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_create_ssl_certificate_flow(service_controller,
                                                   storage_controller,
                                                   dns_controller)
            engines.run(create_ssl_certificate.create_ssl_certificate(),
                        store=kwargs)