Esempio n. 1
0
File: base.py Progetto: taicai/poppy
    def setUp(self):
        super(BaseFunctionalTest, self).setUp()

        tests_path = os.path.abspath(
            os.path.dirname(
                os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
        conf_path = os.path.join(tests_path, 'etc', 'default_functional.conf')
        cfg.CONF(args=[], default_config_files=[conf_path])
        b_obj = bootstrap.Bootstrap(cfg.CONF)
        # mock the persistence part for taskflow distributed_task
        mock_persistence = mock.Mock()
        mock_persistence.__enter__ = mock.Mock()
        mock_persistence.__exit__ = mock.Mock()
        b_obj.distributed_task.persistence = mock.Mock()
        b_obj.distributed_task.persistence.return_value = mock_persistence
        b_obj.distributed_task.job_board = mock.Mock()
        b_obj.distributed_task.job_board.return_value = (
            mock_persistence.copy())
        # Note(tonytan4ever):Need this hack to preserve mockdb storage
        # controller's service cache
        b_obj.manager.ssl_certificate_controller.storage_controller = (
            b_obj.manager.services_controller.storage_controller)
        poppy_wsgi = b_obj.transport.app

        self.app = webtest.app.TestApp(poppy_wsgi)
Esempio n. 2
0
def run():
    conf = cfg.CONF
    log.register_options(conf)
    conf(project='poppy', prog='poppy')
    b = bootstrap.Bootstrap(conf)
    conductor_name = '{0}-{1}'.format(socket.gethostname(), os.getpid())
    b.distributed_task.services_controller.run_task_worker(name=conductor_name)
Esempio n. 3
0
def run():
    # TODO(kgriffs): For now, we have to use the global config
    # to pick up common options from openstack.common.log, since
    # that module uses the global CONF instance exclusively.
    conf = cfg.CONF
    conf(project='poppy', prog='poppy')

    server = bootstrap.Bootstrap(conf)
    server.run()
Esempio n. 4
0
    def setUp(self):
        super(BaseFunctionalTest, self).setUp()

        tests_path = os.path.abspath(
            os.path.dirname(
                os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
        conf_path = os.path.join(tests_path, 'etc', 'default_functional.conf')
        cfg.CONF(args=[], default_config_files=[conf_path])
        self.b_obj = bootstrap.Bootstrap(cfg.CONF)

        # memoized_controllers module looks for log options being registered
        # register them here to avoid `cfg.ArgsAlreadyParsedError` when
        # running individual functional tests
        cfg.CONF.register_opts(log._options.logging_cli_opts)

        # mock the persistence part for taskflow distributed_task
        mock_persistence = mock.Mock()
        mock_persistence.__enter__ = mock.Mock()
        mock_persistence.__exit__ = mock.Mock()
        self.b_obj.distributed_task.persistence = mock.Mock()
        self.b_obj.distributed_task.persistence.return_value = mock_persistence
        self.b_obj.distributed_task.job_board = mock.Mock()
        self.b_obj.distributed_task.job_board.return_value = (
            mock_persistence.copy())
        self.b_obj.distributed_task.is_alive = mock.Mock(return_value=True)

        self.sps_api_client_mock = mock.MagicMock()
        if 'akamai' in self.b_obj.provider:
            # akamai driver was loaded. mock out queues
            akamai_driver = self.b_obj.provider['akamai'].obj

            mock_cert_info = mock.MagicMock()
            mock_cert_info.get_cert_config.return_value = {}
            mock_cert_info.get_san_cert_hostname_limit.return_value = 0
            mock_cert_info.update_cert_config.return_value = {}

            mod_san_q = mock.MagicMock()
            mod_san_q.traverse_queue.return_value = []
            mod_san_q.mod_san_queue_backend.__len__.return_value = 0

            san_mapping_q = mock.MagicMock()
            san_mapping_q.traverse_queue.return_value = []

            akamai_driver.mod_san_queue = mod_san_q
            akamai_driver.san_mapping_queue = san_mapping_q
            akamai_driver.is_alive = mock.Mock(return_value=True)
            type(akamai_driver).cert_info_storage = mock_cert_info
            type(akamai_driver).sps_api_client = self.sps_api_client_mock

        # Note(tonytan4ever):Need this hack to preserve mockdb storage
        # controller's service cache
        # b_obj.manager.ssl_certificate_controller.storage_controller = (
        #     b_obj.manager.services_controller.storage_controller
        # )
        poppy_wsgi = self.b_obj.transport.app

        self.app = webtest.app.TestApp(poppy_wsgi)
Esempio n. 5
0
    def test_boot_strap_when_exception(self):
        tests_path = os.path.abspath(os.path.dirname(
            os.path.dirname(__file__)))
        conf_path = os.path.join(tests_path, 'etc', 'bootstrap_unit.conf')
        cfg.CONF(args=[], default_config_files=[conf_path])

        bootstrap_obj = bootstrap.Bootstrap(cfg.CONF)

        self.assertTrue(bootstrap_obj.transport is None)
        self.assertTrue(bootstrap_obj.manager is None)
        self.assertTrue(bootstrap_obj.storage is None)
Esempio n. 6
0
    def setUp(self):
        super(BaseFunctionalTest, self).setUp()

        tests_path = os.path.abspath(
            os.path.dirname(
                os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
        conf_path = os.path.join(tests_path, 'etc', 'default_functional.conf')
        cfg.CONF(args=[], default_config_files=[conf_path])
        poppy_wsgi = bootstrap.Bootstrap(cfg.CONF).transport.app

        self.app = webtest.TestApp(poppy_wsgi)
Esempio n. 7
0
def task_controllers(program, controller=None):
    bootstrap_obj = bootstrap.Bootstrap(conf)
    service_controller = bootstrap_obj.manager.services_controller

    if controller == 'storage':
        return service_controller, service_controller.storage_controller
    if controller == 'dns':
        return service_controller, service_controller.dns_controller
    if controller == 'ssl_certificate':
        return service_controller, (
            bootstrap_obj.manager.ssl_certificate_controller)
    else:
        return service_controller
Esempio n. 8
0
    def setUp(self):
        super(DefaultManagerDriverTests, self).setUp()

        tests_path = os.path.abspath(
            os.path.dirname(
                os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
        conf_path = os.path.join(tests_path, 'etc', 'default_functional.conf')
        cfg.CONF(args=[], default_config_files=[conf_path])

        self.bootstrapper = bootstrap.Bootstrap(cfg.CONF)
        self.driver = self.bootstrapper.manager
        self.mock_provider = self.bootstrapper.provider['mock']
        self.mock_storage = self.bootstrapper.storage
Esempio n. 9
0
    def test_boot_strap_successful(self):
        tests_path = os.path.abspath(os.path.dirname(
            os.path.dirname(__file__)))
        conf_path = os.path.join(tests_path, 'etc', 'default_functional.conf')
        cfg.CONF(args=[], default_config_files=[conf_path])

        bootstrap_obj = bootstrap.Bootstrap(cfg.CONF)

        mock_path = 'poppy.transport.pecan.driver.simple_server'
        with mock.patch(mock_path) as mocked_module:
            mock_server = mock.Mock()
            mocked_module.make_server = mock.Mock(return_value=mock_server)
            bootstrap_obj.run()
            self.assertTrue(mock_server.serve_forever.called)
Esempio n. 10
0
def run():
    # TODO(kgriffs): For now, we have to use the global config
    # to pick up common options from openstack.common.log, since
    # that module uses the global CONF instance exclusively.
    conf = cfg.CONF
    log.register_options(conf)
    conf(project='poppy', prog='poppy')
    log.setup(conf, 'poppy')
    server = bootstrap.Bootstrap(conf)

    # The following code is to daemonize poppy-server to avoid
    # an issue with wsgiref writing to stdout/stderr when we don't
    # want it to.  This is specifically needed to allow poppy to
    # run under devstack, but it may also be useful for other scenarios.
    # Open /dev/zero and /dev/null for redirection.
    # Daemonizing poppy-server is needed *just* when running under devstack
    # and when poppy is invoked with `daemon` command line option.
    if conf.daemon:
        zerofd = os.open('/dev/zero', os.O_RDONLY)
        nullfd = os.open('/dev/null', os.O_WRONLY)

        # Close the stdthings and reassociate them with a non terminal
        os.dup2(zerofd, 0)
        os.dup2(nullfd, 1)
        os.dup2(nullfd, 2)

        # Detach process context, this requires 2 forks.
        try:
            pid = os.fork()
            if pid > 0:
                os._exit(0)
        except OSError:
            os._exit(1)

        try:
            pid = os.fork()
            if pid > 0:
                os._exit(0)
        except OSError:
            os._exit(2)
    server.run()
Esempio n. 11
0
def run():
    # TODO(kgriffs): For now, we have to use the global config
    # to pick up common options from openstack.common.log, since
    # that module uses the global CONF instance exclusively.
    conf = cfg.ConfigOpts()
    conf.register_cli_opts(CLI_OPT)
    log.register_options(conf)
    conf(project='poppy', prog='poppy')
    log.setup(conf, 'poppy')
    server = bootstrap.Bootstrap(conf)

    sleep_interval = conf.sleep_interval
    while True:
        (run_list, ignore_list
         ) = server.manager.background_job_controller.delete_http_policy()

        LOG.info("Policies, attempting to delete {0}, ignored {0}".format(
            run_list, ignore_list))
        if conf.run_as_daemon is False:
            break
        time.sleep(sleep_interval)
Esempio n. 12
0
    def setUp(self):
        super(BaseFunctionalTest, self).setUp()

        tests_path = os.path.abspath(
            os.path.dirname(
                os.path.dirname(os.path.dirname(os.path.dirname(__file__)))))
        conf_path = os.path.join(tests_path, 'etc', 'default_functional.conf')
        cfg.CONF(args=[], default_config_files=[conf_path])
        b_obj = bootstrap.Bootstrap(cfg.CONF)
        # mock the persistence part for taskflow distributed_task
        mock_persistence = mock.Mock()
        mock_persistence.__enter__ = mock.Mock()
        mock_persistence.__exit__ = mock.Mock()
        b_obj.distributed_task.persistence = mock.Mock()
        b_obj.distributed_task.persistence.return_value = mock_persistence
        b_obj.distributed_task.job_board = mock.Mock()
        b_obj.distributed_task.job_board.return_value = (
            mock_persistence.copy())
        poppy_wsgi = b_obj.transport.app

        self.app = webtest.app.TestApp(poppy_wsgi)
Esempio n. 13
0
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""WSGI callable for WSGI containers

This app should be used by external WSGI
containers. For example:

    $ gunicorn poppy.transport.app:app

NOTE: As for external containers, it is necessary
to put config files in the standard paths. There's
no common way to specify / pass configuration files
to the WSGI app when it is called from other apps.
"""

from oslo.config import cfg

from poppy import bootstrap

conf = cfg.CONF
conf(project='poppy', prog='poppy', args=[])

app = bootstrap.Bootstrap(conf).transport.app
Esempio n. 14
0
 def get_target(self, conf):
     server = bootstrap.Bootstrap(conf)
     return server.run