def test_no_changes_http_no_key():
    url = 'http://polyswarmd-fast-e2e:31337/v1'
    allow_key_over_http = False
    insecure_transport = False
    api_key = None

    finalize_polyswarmd_addr(url, api_key, allow_key_over_http,
                             insecure_transport)
def test_raises_http_with_key():
    url = 'http://polyswarmd-fast-e2e:31337/v1'
    allow_key_over_http = False
    insecure_transport = False
    api_key = 'api-key'

    with pytest.raises(ValueError):
        finalize_polyswarmd_addr(url, api_key, allow_key_over_http,
                                 insecure_transport)
def maintain(polyswarmd_addr, keyfile, password, api_key, testing,
             insecure_transport, allow_key_over_http, denomination, maximum,
             withdraw_target, confirmations, minimum, refill_amount):
    """
    Maintain min/max NCT balance in sidechain
    """
    polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key,
                                                     allow_key_over_http,
                                                     insecure_transport)

    logger.info(
        'Maintaining the minimum balance by depositing %s %s when it falls below %s %s',
        refill_amount, denomination, minimum, denomination)

    if maximum > 0 > withdraw_target:
        logger.warning('Must set a withdraw target when using a maximum')
        return

    if maximum > 0 and 0 < withdraw_target < minimum:
        logger.warning('Withdraw-target must me more than minimum')
        return

    if 0 < maximum < minimum:
        logger.warning('Maximum must be more than minimum')
        return

    if maximum > 0 and withdraw_target > 0:
        logger.info(
            'Maintaining the minimum balance by withdrawing to %s %s when it exceeds %s %s',
            withdraw_target, denomination, maximum, denomination)

    client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0)
    Maintainer(client, denomination, confirmations, minimum, refill_amount,
               maximum, withdraw_target, testing).run()
Exemple #4
0
def main(log, client_log, polyswarmd_addr, keyfile, password, api_key, backend, testing, insecure_transport,
         allow_key_over_http, chains, watchdog, log_format, submission_rate):
    """
    Entrypoint for the ambassador driver
    """
    utils.fast_deprecation()
    loglevel = getattr(logging, log.upper(), None)
    clientlevel = getattr(logging, client_log.upper(), None)
    if not isinstance(loglevel, int) or not isinstance(clientlevel, int):
        logging.error('invalid log level')
        raise FatalError('Invalid log level', 1)

    logger_name, ambassador_class = choose_backend(backend)

    init_logging(['ambassador', logger_name], log_format, loglevel)
    init_logging(['polyswarmclient'], log_format, clientlevel)

    polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key, allow_key_over_http, insecure_transport)

    if insecure_transport:
        warnings.warn('--insecure-transport will be removed soon. Please add http:// or https:// to polyswarmd-addr`',
                      DeprecationWarning)

    ambassador_class.connect(polyswarmd_addr, keyfile, password,
                             api_key=api_key, testing=testing,
                             chains=set(chains), watchdog=watchdog,
                             submission_rate=submission_rate).run()
def test_add_http_with_key_allowed():
    url = 'polyswarmd-fast-e2e:31337/v1'
    allow_key_over_http = True
    insecure_transport = True
    api_key = 'api-key'

    assert 'http://polyswarmd-fast-e2e:31337/v1' == finalize_polyswarmd_addr(
        url, api_key, allow_key_over_http, insecure_transport)
def test_add_http_insecure_transport():
    url = 'polyswarmd-fast-e2e:31337/v1'
    allow_key_over_http = False
    insecure_transport = True
    api_key = None

    assert 'http://polyswarmd-fast-e2e:31337/v1' == finalize_polyswarmd_addr(
        url, api_key, allow_key_over_http, insecure_transport)
def test_no_changes_https_with_key():
    url = 'https://polyswarmd-fast-e2e:31337/v1'
    allow_key_over_http = False
    insecure_transport = False
    api_key = 'api-key'

    assert 'https://polyswarmd-fast-e2e:31337/v1' == finalize_polyswarmd_addr(
        url, api_key, allow_key_over_http, insecure_transport)
Exemple #8
0
def main(log, client_log, polyswarmd_addr, keyfile, password, api_key, backend,
         testing, insecure_transport, allow_key_over_http, chains, log_format,
         artifact_type, bid_strategy, accept, exclude, filter, confidence):
    """ Entrypoint for the microengine driver
    """
    utils.fast_deprecation()
    loglevel = getattr(logging, log.upper(), None)
    clientlevel = getattr(logging, client_log.upper(), None)
    if not isinstance(loglevel, int) or not isinstance(clientlevel, int):
        logging.error('invalid log level')
        raise FatalError('Invalid log level', 1)

    polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key,
                                                     allow_key_over_http,
                                                     insecure_transport)
    if insecure_transport:
        warnings.warn(
            '--insecure-transport will be removed soon. Please add http:// or https:// to polyswarmd-addr`',
            DeprecationWarning)

    logger_name, microengine_class = choose_backend(backend)
    bid_logger_name, bid_strategy_class = choose_bid_strategy(bid_strategy)

    artifact_types = None
    init_logging(['microengine', logger_name], log_format, loglevel)
    init_logging(['polyswarmclient'], log_format, clientlevel)

    if artifact_type:
        artifact_types = [
            ArtifactType.from_string(artifact) for artifact in artifact_type
        ]

    filter_accept = filter.get('accept', [])
    filter_reject = filter.get('reject', [])
    if accept or exclude:
        warnings.warn(
            'Options `--exclude|accept key:value` are deprecated, please switch to'
            ' `--filter accept|reject key comparison value`',
            DeprecationWarning)
        filter_accept.extend(accept)
        filter_reject.extend(exclude)

    favor = confidence.get('favor', [])
    penalize = confidence.get('penalize', [])

    microengine_class.connect(
        polyswarmd_addr,
        keyfile,
        password,
        api_key=api_key,
        artifact_types=artifact_types,
        bid_strategy=bid_strategy_class(),
        bounty_filter=BountyFilter(filter_accept, filter_reject),
        chains=set(chains),
        confidence_modifier=ConfidenceModifier(favor, penalize),
        testing=testing).run()
def view_stake(polyswarmd_addr, keyfile, password, api_key, testing,
               insecure_transport, allow_key_over_http, denomination, chain):
    polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key,
                                                     allow_key_over_http,
                                                     insecure_transport)

    client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0)
    balance = ViewStake(client, denomination, chain)
    balance.run_oneshot()
    if balance.exit_code:
        raise FatalError('Error viewing stake', balance.exit_code)
def withdraw(polyswarmd_addr, keyfile, password, api_key, testing,
             insecure_transport, allow_key_over_http, denomination, all,
             amount):
    """
    Withdraw NCT from a sidechain
    """
    polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key,
                                                     allow_key_over_http,
                                                     insecure_transport)

    if amount is None and not all:
        raise click.BadArgumentUsage('Must specify either an amount or --all')
    client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0)
    w = Withdraw(client, denomination, all, amount, testing=testing)
    w.run_oneshot()
    if w.exit_code:
        raise FatalError('Error withdrawing NCT', w.exit_code)
def deposit_stake(polyswarmd_addr, keyfile, password, api_key, testing,
                  insecure_transport, allow_key_over_http, denomination, all,
                  chain, amount):
    """
    Deposit NCT into the ArbiterStaking contract
    """
    polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key,
                                                     allow_key_over_http,
                                                     insecure_transport)

    if amount is None and not all:
        raise click.BadArgumentUsage('Must specify either an amount or --all')
    client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0)
    d = DepositStake(client,
                     denomination,
                     all,
                     amount,
                     testing=testing,
                     chain=chain)
    d.run_oneshot()
    if d.exit_code:
        raise FatalError('Error depositing stake', d.exit_code)
Exemple #12
0
def main(log, client_log, polyswarmd_addr, keyfile, password, api_key, backend,
         testing, insecure_transport, allow_key_over_http, chains, log_format,
         artifact_type):
    """
    Entrypoint for the arbiter driver
    """
    loglevel = getattr(logging, log.upper(), None)
    clientlevel = getattr(logging, client_log.upper(), None)
    if not isinstance(loglevel, int) or not isinstance(clientlevel, int):
        logging.error('invalid log level')
        raise FatalError('Invalid log level', 1)

    logger_name, arbiter_class = choose_backend(backend)

    init_logging(['arbiter', logger_name], log_format, loglevel)
    init_logging(['polyswarmclient'], log_format, clientlevel)

    polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key,
                                                     allow_key_over_http,
                                                     insecure_transport)
    if insecure_transport:
        warnings.warn(
            '--insecure-transport will be removed soon. Please add http:// or https:// to polyswarmd-addr`',
            DeprecationWarning)

    artifact_types = None
    if artifact_type:
        artifact_types = [
            ArtifactType.from_string(artifact) for artifact in artifact_type
        ]

    arbiter_class.connect(polyswarmd_addr,
                          keyfile,
                          password,
                          api_key=api_key,
                          testing=testing,
                          chains=set(chains),
                          artifact_types=artifact_types).run()