示例#1
0
 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)
示例#3
0
 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)
示例#4
0
    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)
示例#5
0
 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)
示例#6
0
    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)
示例#7
0
 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)
示例#8
0
    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)
示例#9
0
 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
         )