def take_action(self, args): configp = self.fetch_config(args) conf = FormatConfig(logger=self.app.log) conf.mergeConfig(args, configp) # Parse if we have to check if running from root # XXX document this feature. if string_to_boolean(getattr(conf, 'root_check', 'True').lower()): check_root_user(self) if not self.app.options.log_file and conf.log_file: # no log file is provided by argparser, # we set up the one from config file_handler = logging.FileHandler(conf.log_file) formatter = logging.Formatter(self.app.LOG_FILE_MESSAGE_FORMAT) file_handler.setFormatter(formatter) self.app.log.addHandler(file_handler) try: conf.setConfig() except UsageError as err: sys.stderr.write(err.message + '\n') sys.stderr.write("For help use --help\n") sys.exit(1) tracing_monkeypatch(conf) do_format(conf=conf)
def take_action(self, args): configp = self.fetch_config(args) options = merged_options(args, configp) # Parse if we have to check if running from root # XXX document this feature. if string_to_boolean(options.get('root_check', 'True').lower()): check_root_user(self) check_missing_parameters(options) check_missing_files(options) random_delay(options, logger=self.app.log) slapgrid_object = create_slapgrid_object(options, logger=self.app.log) pidfile = options.get('pidfile') or self.default_pidfile if pidfile: setRunning(logger=self.app.log, pidfile=pidfile) try: return getattr(slapgrid_object, self.method_name)() finally: if pidfile: setFinished(pidfile)
def take_action(self, args): configp = self.fetch_config(args) # read the options in .cfg conf = FormatConfig(logger=self.app.log) conf.mergeConfig(args, configp) # commandline options overwrite .cfg options # Parse if we have to check if running from root # XXX document this feature. if string_to_boolean(getattr(conf, 'root_check', 'True').lower()): check_root_user(self) if len(self.app.log.handlers) == 0 and not self.app.options.log_file and conf.log_file: # This block is called again if "slapos node boot" failed. # Don't add a handler again, otherwise the output becomes double. # # no log file is provided by argparser, # we set up the one from config file_handler = logging.FileHandler(conf.log_file) formatter = logging.Formatter(self.app.LOG_FILE_MESSAGE_FORMAT) file_handler.setFormatter(formatter) self.app.log.addHandler(file_handler) try: conf.setConfig() except UsageError as err: sys.stderr.write(err.message + '\n') sys.stderr.write("For help use --help\n") sys.exit(1) tracing_monkeypatch(conf) do_format(conf=conf)
def create_slapgrid_object(options, logger): signature_certificate_list = None if 'signature-certificate-list' in options: cert_marker = '-----BEGIN CERTIFICATE-----' signature_certificate_list = [ cert_marker + '\n' + q.strip() for q in options['signature-certificate-list'].split(cert_marker) if q.strip() ] op = options software_min_free_space = human2bytes(op.get('software_min_free_space', '200M')) instance_min_free_space = human2bytes(op.get('instance_min_free_space', '100M')) return Slapgrid(software_root=op['software_root'], instance_root=op['instance_root'], master_url=op['master_url'], computer_id=op['computer_id'], buildout=op.get('buildout'), logger=logger, maximum_periodicity = op.get('maximum_periodicity', 86400), key_file=op.get('key_file'), cert_file=op.get('cert_file'), signature_private_key_file=op.get('signature_private_key_file'), signature_certificate_list=signature_certificate_list, download_binary_cache_url=op.get('download-binary-cache-url'), upload_binary_cache_url=op.get('upload-binary-cache-url'), download_from_binary_cache_url_blacklist= op.get('download-from-binary-cache-url-blacklist', []), upload_to_binary_cache_url_blacklist= op.get('upload-to-binary-cache-url-blacklist', []), upload_cache_url=op.get('upload-cache-url'), download_binary_dir_url=op.get('download-binary-dir-url'), upload_binary_dir_url=op.get('upload-binary-dir-url'), upload_dir_url=op.get('upload-dir-url'), master_ca_file=op.get('master_ca_file'), certificate_repository_path=op.get('certificate_repository_path'), promise_timeout=op.get('promise_timeout', PROMISE_TIMEOUT), shacache_cert_file=op.get('shacache-cert-file'), shacache_key_file=op.get('shacache-key-file'), shadir_cert_file=op.get('shadir-cert-file'), shadir_key_file=op.get('shadir-key-file'), forbid_supervisord_automatic_launch=string_to_boolean(op.get('forbid_supervisord_automatic_launch', 'false')), develop=op.get('develop', False), # Try to fetch from deprecated argument software_release_filter_list=op.get('only-sr', op.get('only_sr')), # Try to fetch from deprecated argument computer_partition_filter_list=op.get('only-cp', op.get('only_cp')), software_min_free_space=software_min_free_space, instance_min_free_space=instance_min_free_space, instance_storage_home=op.get('instance_storage_home'), ipv4_global_network=op.get('ipv4_global_network'))
def test_string_to_boolean_with_false_values(self): for value in ['false', 'False', 'False']: self.assertFalse(string_to_boolean(value))
def test_string_to_boolean_with_true_values(self): for value in ['true', 'True', 'TRUE']: self.assertTrue(string_to_boolean(value))
def test_string_to_boolean_with_false_values(self): """ Check that mkdir_p doesn't raise if directory already exist. """ for value in ['false', 'False', 'False']: self.assertFalse(string_to_boolean(value))
def test_string_to_boolean_with_true_values(self): """ Check that mkdir_p doesn't raise if directory already exist. """ for value in ['true', 'True', 'TRUE']: self.assertTrue(string_to_boolean(value))