def test_monkey_patch(self): utils.monkey_patch() nova.tests.unit.monkey_patch_example.CALLED_FUNCTION = [] from nova.tests.unit.monkey_patch_example import example_a from nova.tests.unit.monkey_patch_example import example_b self.assertEqual('Example function', example_a.example_function_a()) exampleA = example_a.ExampleClassA() exampleA.example_method() ret_a = exampleA.example_method_add(3, 5) self.assertEqual(ret_a, 8) self.assertEqual('Example function', example_b.example_function_b()) exampleB = example_b.ExampleClassB() exampleB.example_method() ret_b = exampleB.example_method_add(3, 5) self.assertEqual(ret_b, 8) package_a = self.example_package + 'example_a.' self.assertIn(package_a + 'example_function_a', nova.tests.unit.monkey_patch_example.CALLED_FUNCTION) self.assertIn(package_a + 'ExampleClassA.example_method', nova.tests.unit.monkey_patch_example.CALLED_FUNCTION) self.assertIn(package_a + 'ExampleClassA.example_method_add', nova.tests.unit.monkey_patch_example.CALLED_FUNCTION) package_b = self.example_package + 'example_b.' self.assertNotIn(package_b + 'example_function_b', nova.tests.unit.monkey_patch_example.CALLED_FUNCTION) self.assertNotIn(package_b + 'ExampleClassB.example_method', nova.tests.unit.monkey_patch_example.CALLED_FUNCTION) self.assertNotIn(package_b + 'ExampleClassB.example_method_add', nova.tests.unit.monkey_patch_example.CALLED_FUNCTION)
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.Service.create(binary='nova-cert', topic=CONF.cert_topic) service.serve(server) service.wait()
def main(): """加载和设置配置参数,有两点需要注意: 1. 调用rpc.set_defaults设置默认的exchange为nova,如果不设置则为 openstack 2. 调用rpc.init设置Transport和Notifier,Transport是 oslo_messaging/transport.py/Transport实例,我采用的是默认的 rpc_backend=rabbit,所以Transport采用的driver=oslo_messaging/ _drivers/impl_rabbit.py/RabbitDriver;Notifier是一个通知消息发 送器,它借助Transport完成通知消息的发送 """ config.parse_args(sys.argv) logging.setup('nova') utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) if not CONF.conductor.use_local: block_db_access() objects_base.NovaObject.indirection_api = \ conductor_rpcapi.ConductorAPI() """调用类方法nova/service.py/Service.create创建Service服务对象 输入参数topic = compute, db_allowd = false;`create`方法是一个 类方法(@classmethod),它首先基于输入参数和(/etc/nova.conf中的选 项)设置配置,然后创建一个Service对象并返回给调用者 """ server = service.Service.create(binary='nova-compute', topic=CONF.compute_topic, db_allowed=CONF.conductor.use_local) """调用server方法启动服务并调用wait方法等待服务启动完成,serve方法创 建Launcher服务启动实例对象(这里是ServiceLauncher)来启动服务, 但最终会调用server.start方法启动服务。 """ service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = s3server.get_wsgi_server() service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() if 'osapi_compute' in CONF.enabled_apis: # NOTE(mriedem): This is needed for caching the nova-compute service # version which is looked up when a server create request is made with # network id of 'auto' or 'none'. objects.Service.enable_min_version_cache() log = logging.getLogger(__name__) gmr.TextGuruMeditation.setup_autorun(version) launcher = service.process_launcher() started = 0 for api in CONF.enabled_apis: should_use_ssl = api in CONF.enabled_ssl_apis try: server = service.WSGIService(api, use_ssl=should_use_ssl) launcher.launch_service(server, workers=server.workers or 1) started += 1 except exception.PasteAppNotFound as ex: log.warning( _LW("%s. ``enabled_apis`` includes bad values. " "Fix to remove this warning."), six.text_type(ex)) if started == 0: log.error( _LE('No APIs were started. ' 'Check the enabled_apis config option.')) sys.exit(1) launcher.wait()
def test_monkey_patch(self): utils.monkey_patch() nova.tests.monkey_patch_example.CALLED_FUNCTION = [] from nova.tests.monkey_patch_example import example_a from nova.tests.monkey_patch_example import example_b self.assertEqual("Example function", example_a.example_function_a()) exampleA = example_a.ExampleClassA() exampleA.example_method() ret_a = exampleA.example_method_add(3, 5) self.assertEqual(ret_a, 8) self.assertEqual("Example function", example_b.example_function_b()) exampleB = example_b.ExampleClassB() exampleB.example_method() ret_b = exampleB.example_method_add(3, 5) self.assertEqual(ret_b, 8) package_a = self.example_package + "example_a." self.assertTrue(package_a + "example_function_a" in nova.tests.monkey_patch_example.CALLED_FUNCTION) self.assertTrue(package_a + "ExampleClassA.example_method" in nova.tests.monkey_patch_example.CALLED_FUNCTION) self.assertTrue( package_a + "ExampleClassA.example_method_add" in nova.tests.monkey_patch_example.CALLED_FUNCTION ) package_b = self.example_package + "example_b." self.assertFalse(package_b + "example_function_b" in nova.tests.monkey_patch_example.CALLED_FUNCTION) self.assertFalse(package_b + "ExampleClassB.example_method" in nova.tests.monkey_patch_example.CALLED_FUNCTION) self.assertFalse( package_b + "ExampleClassB.example_method_add" in nova.tests.monkey_patch_example.CALLED_FUNCTION )
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) if not CONF.conductor.use_local: block_db_access() objects_base.NovaObject.indirection_api = \ conductor_rpcapi.ConductorAPI() else: LOG.warning( _LW('Conductor local mode is deprecated and will ' 'be removed in a subsequent release')) LOG.warning( _LW('Nova network is deprecated and will be removed ' 'in the future')) server = service.Service.create(binary='nova-network', topic=CONF.network_topic, db_allowed=CONF.conductor.use_local) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.WSGIService('osapi_compute') service.serve(server, workers=server.workers) service.wait()
def main(): """By default, this script will only cleanup unused cached images. Options: --all_cached - Destroy all cached images instead of just unused cached images. --dry_run - Don't actually destroy the VDIs. """ config.parse_args(sys.argv) utils.monkey_patch() _session = session.XenAPISession(CONF.xenserver.connection_url, CONF.xenserver.connection_username, CONF.xenserver.connection_password) sr_ref = vm_utils.safe_find_sr(_session) destroyed = vm_utils.destroy_cached_images(_session, sr_ref, all_cached=CONF.all_cached, dry_run=CONF.dry_run) if '--verbose' in sys.argv: print('\n'.join(destroyed)) print("Destroyed %d cached VDIs" % len(destroyed))
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.WSGIService("ec2", max_url_len=16384) service.serve(server, workers=server.workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") if not CONF.cells.enable: LOG.error( _LE('Nova network is deprecated and not supported ' 'except as required for CellsV1 deployments.')) return 1 utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) cmd_common.block_db_access('nova-network') objects_base.NovaObject.indirection_api = conductor_rpcapi.ConductorAPI() LOG.warning( _LW('Nova network is deprecated and will be removed ' 'in the future')) server = service.Service.create(binary='nova-network', topic=CONF.network_topic) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() if 'osapi_compute' in CONF.enabled_apis: # NOTE(mriedem): This is needed for caching the nova-compute service # version. objects.Service.enable_min_version_cache() log = logging.getLogger(__name__) gmr.TextGuruMeditation.setup_autorun(version) launcher = service.process_launcher() started = 0 for api in CONF.enabled_apis: should_use_ssl = api in CONF.enabled_ssl_apis try: server = service.WSGIService(api, use_ssl=should_use_ssl) launcher.launch_service(server, workers=server.workers or 1) started += 1 except exception.PasteAppNotFound as ex: log.warning("%s. ``enabled_apis`` includes bad values. " "Fix to remove this warning.", ex) if started == 0: log.error('No APIs were started. ' 'Check the enabled_apis config option.') sys.exit(1) launcher.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") # PF9 begin logging_pf9.setup("nova") # PF9 end utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary='nova-conductor', topic=CONF.conductor.topic, manager=CONF.conductor.manager) # PF9 change: if CONF.conductor.workers is None: # If unset, use openstack default of cpu count workers = processutils.get_worker_count() else: workers = CONF.conductor.workers # If set to 0, set it to half of cpu count if workers == 0: workers = (processutils.get_worker_count() + 1) / 2 # PF9 end service.serve(server, workers=workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.WSGIService('ec2', max_url_len=16384) service.serve(server, workers=server.workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() log = logging.getLogger(__name__) gmr.TextGuruMeditation.setup_autorun(version) launcher = service.process_launcher() started = 0 for api in CONF.enabled_apis: should_use_ssl = api in CONF.enabled_ssl_apis try: server = service.WSGIService(api, use_ssl=should_use_ssl) launcher.launch_service(server, workers=server.workers or 1) started += 1 except exception.PasteAppNotFound as ex: log.warning( _LW("%s. ``enabled_apis`` includes bad values. " "Fix to remove this warning."), six.text_type(ex)) if started == 0: log.error( _LE('No APIs were started. ' 'Check the enabled_apis config option.')) sys.exit(1) launcher.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() should_use_ssl = 'osapi_compute' in CONF.enabled_ssl_apis server = service.WSGIService('osapi_compute', use_ssl=should_use_ssl) service.serve(server, workers=server.workers) service.wait()
def main(): objects.register_all() config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.Service.create(binary="nova-conductor", topic=CONF.conductor.topic, manager=CONF.conductor.manager) service.serve(server, workers=CONF.conductor.workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("gantt") utils.monkey_patch() server = service.Service.create(binary='gantt-sched', topic=CONF.sched_topic) service.serve(server) service.wait()
def main(): objects.register_all() config.parse_args(sys.argv) logging.setup("service_monitor") utils.monkey_patch() LOG = logging.getLogger('service_monitor') monitor = ServiceMonitor(); monitor.monitor(True)
def main(): rpc.register_opts(FLAGS) FLAGS.register_opts([ cfg.StrOpt('datafile', default=None, help='Data file to read or write', ), cfg.BoolOpt('record', help='Record events', ), cfg.BoolOpt('replay', help='Replay events', ), ]) remaining_args = FLAGS(sys.argv) utils.monkey_patch() parser = argparse.ArgumentParser( description='record or play back notification events', ) parser.add_argument('mode', choices=('record', 'replay', 'monitor'), help='operating mode', ) parser.add_argument('data_file', default='msgs.dat', nargs='?', help='the data file to read or write', ) parser.add_argument('--topic', default='notifications.info', help='the exchange topic to listen for', ) args = parser.parse_args(remaining_args[1:]) console = logging.StreamHandler(sys.stderr) console.setLevel(logging.DEBUG) formatter = logging.Formatter('%(message)s') console.setFormatter(formatter) root_logger = logging.getLogger('') root_logger.addHandler(console) root_logger.setLevel(logging.DEBUG) connection = rpc.create_connection() try: if args.mode == 'replay': with open(args.data_file, 'rb') as input: send_messages(connection, args.topic, input) elif args.mode == 'record': with open(args.data_file, 'wb') as output: record_messages(connection, args.topic, output) elif args.mode == 'monitor': monitor_messages(connection, args.topic) finally: connection.close() return 0
def __init__(self, args): win32serviceutil.ServiceFramework.__init__(self, args) config.parse_args(sys.argv) logging.setup('nova') utils.monkey_patch() if not CONF.conductor.use_local: block_db_access() self.isAlive = True
def initialize_nova_flags(config_file): from nova import flags from nova import log as logging from nova import service from nova import utils flags.parse_args(['int_tests'], default_config_files=[config_file]) logging.setup() utils.monkey_patch()
def main(): config.parse_args(sys.argv) logging.setup('nova') utils.monkey_patch() server = service.Service.create(binary='nova-cells', topic=CONF.cells.topic, manager=CONF.cells.manager) service.serve(server) service.wait()
def main(): lock_filename = '/tmp/locking.lock' lock_file = open(lock_filename, 'w') try: fcntl.lockf(lock_file, fcntl.LOCK_EX | fcntl.LOCK_NB) except IOError: print('Cannot lock: ' + lock_filename) sys.exit(1) if len(sys.argv) < 3 or sys.argv[1] != '--config-file': usage() exit(1) detection_only = False if '--detection-only' in sys.argv: detection_only = True sys.argv.remove('--detection-only') out, err = utils.execute('which', 'multipath', check_exit_code=False) if 'multipath' not in out: print('Info: Multipath tools not installed. No cleanup need be done.') exit(0) multipath_flush_on_last_del = False multipath_conf_path = "/etc/multipath.conf" if os.path.exists(multipath_conf_path): flush_on_last_del_yes = re.compile(r'\s*flush_on_last_del.*yes') for line in open(multipath_conf_path, "r"): if flush_on_last_del_yes.match(line): multipath_flush_on_last_del = True break if not multipath_flush_on_last_del: print("Warning: 'flush_on_last_del yes' is not seen in" " /etc/multipath.conf." " 'map in use' failure may show up during cleanup.") CONF(sys.argv[1:]) rpc.set_defaults(control_exchange='nova') rpc.init(CONF) utils.monkey_patch() objects.register_all() objects_base.NovaObject.indirection_api = \ conductor_rpcapi.ConductorAPI() # connect_volume and disconnect_volume in nova/virt/libvirt/volume.py # need be adjusted to take the same 'external=True' lock for # synchronization @utils.synchronized('connect_volume', external=True) def do_cleanup(detection_only): cleaner = FaultyDevicesCleaner(detection_only) cleaner.cleanup() do_cleanup(detection_only) os.unlink('/tmp/locking.lock')
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() should_use_ssl = 'ec2' in CONF.enabled_ssl_apis server = service.WSGIService('ec2', use_ssl=should_use_ssl, max_url_len=16384) service.serve(server, workers=server.workers) service.wait()
def __init__(self,args): win32serviceutil.ServiceFramework.__init__(self,args) config.parse_args(sys.argv) logging.setup('nova') utils.monkey_patch() if not CONF.conductor.use_local: block_db_access() self.isAlive = True
def main(): objects.register_all() config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.Service.create(binary='nova-conductor', topic=CONF.conductor.topic, manager=CONF.conductor.manager) service.serve(server, workers=CONF.conductor.workers) service.wait()
def main(): objects.register_all() config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.Service.create(binary='nova-android', topic=CONF.android.topic, manager='nova.android.agent.manager.AndroidManager') service.serve(server, workers=CONF.conductor.workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() server = service.Service.create(binary='nova-scheduler', topic=CONF.scheduler_topic) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() gmr.TextGuruMeditation.setup_autorun(version) server = s3server.get_wsgi_server() service.serve(server) service.wait()
def main(): objects.register_all() config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() server = service.Service.create(binary='nova-sample', topic='sample', manager='nova.sample.manager.SampleManager') service.serve(server, workers=CONF.conductor.workers) service.wait()
def get_server(): """Get the Nova API server.""" args = sys.argv args.append('--config-dir=etc/nova') config.parse_args(args) logging.setup("nova") utils.monkey_patch() should_use_ssl = 'osapi_compute' in CONF.enabled_ssl_apis server = service.WSGIService('osapi_compute', use_ssl=should_use_ssl) return server
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary='nova-cert', topic=CONF.cert_topic) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary='nova-loadbalancer') service.serve(server) service.wait()
def main(): objects.register_all() config.parse_args(sys.argv) logging.setup("ccbilling") utils.monkey_patch() server = billing_service.Service.create(binary='cc-billing', topic=CONF.ccbilling.topic, manager=CONF.ccbilling.manager) service.serve(server, workers=CONF.ccbilling.workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary="nova-scheduler", topic=CONF.scheduler_topic) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() server = service.Service.create(binary='nova-conductor', topic=CONF.conductor.topic, manager=CONF.conductor.manager) workers = CONF.conductor.workers or processutils.get_worker_count() service.serve(server, workers=workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary="nova-conductor", topic=CONF.conductor.topic, manager=CONF.conductor.manager) workers = CONF.conductor.workers or processutils.get_worker_count() service.serve(server, workers=workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) launcher = service.process_launcher() server = service.Service('daolisync') launcher.launch_service(server) launcher.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) should_use_ssl = 'osapi_compute' in CONF.enabled_ssl_apis server = service.WSGIService('osapi_compute', use_ssl=should_use_ssl) service.serve(server, workers=server.workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, 'nova') utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary='nova-cells', topic=CONF.cells.topic, manager=CONF.cells.manager) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() if not CONF.conductor.use_local: objects_base.NovaObject.indirection_api = \ conductor_rpcapi.ConductorAPI() should_use_ssl = 'metadata' in CONF.enabled_ssl_apis server = service.WSGIService('metadata', use_ssl=should_use_ssl) service.serve(server, workers=server.workers) service.wait()
def main(): config.parse_args(sys.argv) logging.setup('nova') utils.monkey_patch() if not CONF.conductor.use_local: block_db_access() server = service.Service.create(binary='nova-compute', topic=CONF.compute_topic, db_allowed=False) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup(CONF, "nova") utils.monkey_patch() objects.register_all() objects.Service.enable_min_version_cache() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary='nova-scheduler', topic=CONF.scheduler_topic) service.serve(server) service.wait()
def main(): config.parse_args(sys.argv) logging.setup("nova") utils.monkey_patch() objects.register_all() gmr.TextGuruMeditation.setup_autorun(version) server = service.Service.create(binary='nova-conductor', topic=CONF.conductor.topic, manager=CONF.conductor.manager) workers = CONF.conductor.workers or processutils.get_worker_count() service.serve(server, workers=workers) service.wait()