def create_config(self, emitter: StdoutEmitter, config_file: str) -> BobConfiguration: if self.dev: return BobConfiguration(emitter=emitter, dev_mode=True, domain=TEMPORARY_DOMAIN, provider_uri=self.provider_uri, gas_strategy=self.gas_strategy, max_gas_price=self.max_gas_price, signer_uri=self.signer_uri, federated_only=True, checksum_address=self.checksum_address, network_middleware=self.middleware, lonely=self.lonely) else: try: return BobConfiguration.from_configuration_file( emitter=emitter, filepath=config_file, domain=self.domain, checksum_address=self.checksum_address, rest_port=self.discovery_port, provider_uri=self.provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, max_gas_price=self.max_gas_price, registry_filepath=self.registry_filepath, network_middleware=self.middleware, lonely=self.lonely) except FileNotFoundError: handle_missing_configuration_file( character_config_class=BobConfiguration, config_file=config_file)
def test_handle_missing_configuration_file_cli_action(config): config_class = config.__class__ config_file = Path(config.filepath) init_command = f"{config_class.NAME} init" name = config_class.NAME.capitalize() message = MISSING_CONFIGURATION_FILE.format(name=name, init_command=init_command) assert not config_file.exists() with pytest.raises(click.exceptions.FileError, match=message): handle_missing_configuration_file(config_file=str(config_file), character_config_class=config_class)
def create_config(self, emitter, config_file): if self.dev: return UrsulaConfiguration( emitter=emitter, dev_mode=True, domain=TEMPORARY_DOMAIN, poa=self.poa, light=self.light, registry_filepath=self.registry_filepath, policy_registry_filepath=self.policy_registry_filepath, eth_provider_uri=self.eth_provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, max_gas_price=self.max_gas_price, checksum_address=self.operator_address, federated_only=self.federated_only, rest_host=self.rest_host, rest_port=self.rest_port, db_filepath=self.db_filepath, availability_check=self.availability_check, payment_method=self.payment_method, payment_provider=self.payment_provider, payment_network=self.payment_network) else: if not config_file: config_file = select_config_file( emitter=emitter, checksum_address=self.operator_address, config_class=UrsulaConfiguration) try: return UrsulaConfiguration.from_configuration_file( emitter=emitter, filepath=config_file, domain=self.domain, registry_filepath=self.registry_filepath, policy_registry_filepath=self.policy_registry_filepath, eth_provider_uri=self.eth_provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, max_gas_price=self.max_gas_price, rest_host=self.rest_host, rest_port=self.rest_port, db_filepath=self.db_filepath, poa=self.poa, light=self.light, federated_only=self.federated_only, availability_check=self.availability_check, payment_method=self.payment_method, payment_provider=self.payment_provider, payment_network=self.payment_network) except FileNotFoundError: return handle_missing_configuration_file( character_config_class=UrsulaConfiguration, config_file=config_file) except Keystore.AuthenticationFailed as e: emitter.echo(str(e), color='red', bold=True) # TODO: Exit codes (not only for this, but for other exceptions) return click.get_current_context().exit(1)
def create_config(self, emitter, config_file): if self.dev: # Can be None as well, meaning it is unset - no error in this case if self.federated_only is False: raise click.BadOptionUsage( option_name="--federated-only", message=click.style( "--federated-only cannot be explicitly set to False when --dev is set", fg="red")) return AliceConfiguration(emitter=emitter, dev_mode=True, network_middleware=self.middleware, domain=TEMPORARY_DOMAIN, eth_provider_uri=self.eth_provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, max_gas_price=self.max_gas_price, federated_only=True, lonely=self.lonely, payment_method=self.payment_method, payment_provider=self.payment_provider, payment_network=self.payment_network) else: if not config_file: config_file = select_config_file( emitter=emitter, checksum_address=self.pay_with, config_class=AliceConfiguration) try: return AliceConfiguration.from_configuration_file( emitter=emitter, dev_mode=False, network_middleware=self.middleware, domain=self.domain, eth_provider_uri=self.eth_provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, max_gas_price=self.max_gas_price, filepath=config_file, rest_port=self.discovery_port, checksum_address=self.pay_with, registry_filepath=self.registry_filepath, lonely=self.lonely, payment_method=self.payment_method, payment_provider=self.payment_provider, payment_network=self.payment_network) except FileNotFoundError: return handle_missing_configuration_file( character_config_class=AliceConfiguration, config_file=config_file)
def create_config(self, emitter, config_file): if self.dev: return UrsulaConfiguration( emitter=emitter, dev_mode=True, domains={TEMPORARY_DOMAIN}, poa=self.poa, light=self.light, registry_filepath=self.registry_filepath, provider_process=self.eth_node, provider_uri=self.provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, checksum_address=self.worker_address, federated_only=self.federated_only, rest_host=self.rest_host, rest_port=self.rest_port, db_filepath=self.db_filepath, availability_check=self.availability_check) else: try: return UrsulaConfiguration.from_configuration_file( emitter=emitter, filepath=config_file, domains=self.domains, registry_filepath=self.registry_filepath, provider_process=self.eth_node, provider_uri=self.provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, rest_host=self.rest_host, rest_port=self.rest_port, db_filepath=self.db_filepath, poa=self.poa, light=self.light, federated_only=self.federated_only, availability_check=self.availability_check) except FileNotFoundError: return handle_missing_configuration_file( character_config_class=UrsulaConfiguration, config_file=config_file) except NucypherKeyring.AuthenticationFailed as e: emitter.echo(str(e), color='red', bold=True) # TODO: Exit codes (not only for this, but for other exceptions) return click.get_current_context().exit(1)
def create_config(self, emitter, config_file): try: return StakeHolderConfiguration.from_configuration_file( emitter=emitter, filepath=config_file, provider_uri=self.provider_uri, signer_uri=self.signer_uri, poa=self.poa, light=self.light, sync=False, domains={self.network} if self.network else None, # TODO: #1580 registry_filepath=self.registry_filepath) except FileNotFoundError: return handle_missing_configuration_file( character_config_class=StakeHolderConfiguration, init_command_hint=f"{stake.name} {init_stakeholder.name}", config_file=config_file)
def create_config(self, emitter, config_file): # Load Felix from Configuration File with overrides try: return FelixConfiguration.from_configuration_file( emitter=emitter, filepath=config_file, domains=self.domains, registry_filepath=self.registry_filepath, provider_process=self.eth_node, provider_uri=self.provider_uri, rest_host=self.host, rest_port=self.port, db_filepath=self.db_filepath, poa=self.poa) except FileNotFoundError: return handle_missing_configuration_file( character_config_class=FelixConfiguration, config_file=config_file)
def create_config(self, emitter, config_file): if self.dev: # Can be None as well, meaning it is unset - no error in this case if self.federated_only is False: raise click.BadOptionUsage( option_name="--federated-only", message= "--federated-only cannot be explicitly set to False when --dev is set" ) return AliceConfiguration(emitter=emitter, dev_mode=True, network_middleware=self.middleware, domains={TEMPORARY_DOMAIN}, provider_process=self.eth_node, provider_uri=self.provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, federated_only=True) else: try: return AliceConfiguration.from_configuration_file( emitter=emitter, dev_mode=False, network_middleware=self.middleware, domains=self.domains, provider_process=self.eth_node, provider_uri=self.provider_uri, signer_uri=self.signer_uri, gas_strategy=self.gas_strategy, filepath=config_file, rest_port=self.discovery_port, checksum_address=self.pay_with, registry_filepath=self.registry_filepath) except FileNotFoundError: return handle_missing_configuration_file( character_config_class=AliceConfiguration, config_file=config_file)
def create_config(self, emitter, config_file): # Load Felix from Configuration File with overrides if not config_file: config_file = select_config_file(emitter=emitter, checksum_address=self.checksum_address, config_class=FelixConfiguration) try: return FelixConfiguration.from_configuration_file( emitter=emitter, filepath=config_file, domain=self.domain, registry_filepath=self.registry_filepath, provider_uri=self.provider_uri, signer=self.signer_uri, rest_host=self.host, rest_port=self.port, db_filepath=self.db_filepath, poa=self.poa) except FileNotFoundError: return handle_missing_configuration_file( character_config_class=FelixConfiguration, config_file=config_file )