Example #1
0
    def create(self, validated_data):
        """
        Process validated connection request
        """

        config_data = validated_data

        if config_data['node_type'] == BANK:
            excluded = [
                'confirmation_expiration', 'node_type', 'primary_validator',
                'trust'
            ]
            fields = standard_field_names(Bank)
            data = {
                field: validated_data[field]
                for field in fields if field not in excluded
            }
            Bank.objects.create(**data, trust=0)

        if config_data['node_type'] == CONFIRMATION_VALIDATOR:
            excluded = ['node_type', 'primary_validator', 'trust']
            fields = standard_field_names(Validator)
            data = {
                field: validated_data[field]
                for field in fields if field not in excluded
            }
            Validator.objects.create(**data, trust=0)

        return True
Example #2
0
def sync_with_primary_validator(*, config, trust=None):
    """
    Sync with primary validator
    """

    config = {
        k: v
        for k, v in config.items() if k in standard_field_names(Validator)
    }

    if trust is None:
        trust = get_trust(config=config)

    remove_existing_validators(config=config)
    serializer = PrimaryValidatorSyncSerializer(data=config)

    if serializer.is_valid():
        validator = serializer.save()
        validator.trust = trust
        validator.save()
        set_primary_validator(validator=validator)
        return

    logger.exception(serializer.errors)
    raise RuntimeError(serializer.errors)
Example #3
0
def create_validator_from_config_data(*, config_data):
    """
    Create validator from config data
    """

    fields = standard_field_names(Validator)
    data = {field: config_data[field] for field in fields if field != 'trust'}
    Validator.objects.create(**data, trust=0)
Example #4
0
def create_bank_from_config_data(*, config_data):
    """
    Create bank from config data
    """

    fields = standard_field_names(Bank)
    data = {field: config_data[field] for field in fields if field != 'trust'}
    Bank.objects.create(**data, trust=0)
Example #5
0
def update_validator_from_config_data(*, validator, config_data):
    """
    Update validator from config data
    """

    fields = standard_field_names(Validator)
    data = {field: config_data[field] for field in fields if field != 'trust'}
    Validator.objects.filter(pk=validator.pk).update(**data)
Example #6
0
def update_bank_from_config_data(*, bank, config_data):
    """
    Update bank from config data
    """

    fields = standard_field_names(Bank)
    data = {field: config_data[field] for field in fields if field != 'trust'}
    Bank.objects.filter(pk=bank.pk).update(**data)
def create_bank_from_config_data(*, config_data):
    """Create bank from config data"""
    excluded = ['confirmation_expiration', 'trust']
    fields = standard_field_names(Bank)
    data = {
        field: config_data[field]
        for field in fields if field not in excluded
    }
    Bank.objects.create(**data, trust=0)
def update_bank_from_config_data(*, bank, config_data):
    """Update bank from config data"""
    excluded = ['confirmation_expiration', 'trust']
    fields = standard_field_names(Bank)
    data = {
        field: config_data[field]
        for field in fields if field not in excluded
    }
    Bank.objects.filter(pk=bank.pk).update(**data)
Example #9
0
    def handle_primary_validator_config(self, primary_validator_config):
        """Set primary validator"""
        validator_field_names = standard_field_names(Validator)
        validator_data = {k: v for k, v in primary_validator_config.items() if k in validator_field_names}

        Validator.objects.filter(
            Q(ip_address=validator_data.get('ip_address'))
            | Q(node_identifier=validator_data.get('node_identifier'))
        ).delete()

        validator = Validator.objects.create(
            **validator_data,
            trust=self.required_input['trust']
        )

        set_primary_validator(validator=validator)