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)
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)
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()
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)
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)
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)
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
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
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)
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()
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)
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)
# # 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
def get_target(self, conf): server = bootstrap.Bootstrap(conf) return server.run