def set_bytes(clazz, filename, key, value):
    'Set the value of attribute with key to value for filename.'
    filename = file_check.check_file(filename)
    key = clazz._check_key(key)
    check.check_bytes(value)
    clazz.check_file_is_writable(filename)

    clazz._log.log_method_d()
    xattr_exe.set_bytes(filename, key, value)
Exemplo n.º 2
0
  def set_bytes(clazz, filename, key, value):
    'Set the value of attribute with key to value for filename.'
    filename = file_check.check_file(filename)
    check.check_string(key)
    check.check_bytes(value)

    args = [ '-q', '-s', key, filename ]
    rv = clazz._call_linux_attr(args, input_data = value)
    clazz._check_permission_error(rv, 'Permission error setting key="{}" value="{}" for "{}"'.format(key, value, filename))
    linux_attr_command.check_result(rv, message = 'Failed to set key="{}" value="{}" for "{}"'.format(key, value, filename))
Exemplo n.º 3
0
    def write_stream(clazz, filename, stream_name, value):
        'Write the content of stream_name for filename in bytes.'
        filename = file_check.check_file(filename)
        stream_name = clazz.check_stream_name(stream_name)
        check.check_bytes(value)

        ads_filename = clazz._make_ads_filename(filename, stream_name)
        clazz._log.log_d('write_stream: ads_filename={}'.format(ads_filename))
        clazz._log.log_d('write_stream: value={}'.format(value))
        with open(ads_filename, 'wb') as fp:
            fp.write(value)
            fp.flush()
        assert value == clazz.read_stream(filename, stream_name)
    def set_bytes(clazz, filename, key, value):
        'Set the value of attribute with key to value for filename.'
        filename = file_check.check_file(filename)
        key = clazz._check_key(key)
        check.check_bytes(value)
        clazz.check_file_is_writable(filename)

        values = clazz._read_values(filename)
        clazz._log.log_d('set: before: values={}'.format(values))
        values[key] = value
        ads.write_values(filename, clazz._ADS_STREAM_NAME, values)
        clazz._log.log_d('set: wrote: values={}'.format(values))
        clazz._log.log_d('set: after: values={}'.format(
            clazz._read_values(filename)))
Exemplo n.º 5
0
    def set_bytes(clazz, filename, key, value):
        'Set the value of attribute with key to value for filename.'
        filename = file_check.check_file(filename)
        key = clazz._check_key(key)
        check.check_bytes(value)
        clazz.check_file_is_writable(filename)

        clazz._log.log_method_d()

        encoded_key = clazz._encode_key(key)
        clazz._log.log_d(
            f'set_bytes:{filename}:{encoded_key}: calling xattr.setxattr with value "{value}"'
        )
        rv = xattr.setxattr(filename, encoded_key, value)
        clazz._log.log_d(
            f'set_bytes:{filename}:{encoded_key}: xattr.setxattr returns with rv "{rv}"'
        )
Exemplo n.º 6
0
    def set_bytes(clazz, filename, key, value):
        'Set the value of attribute with key to value for filename.'
        filename = file_check.check_file(filename)
        check.check_string(key)
        check.check_bytes(value)

        hex_value = hexdump.data(value, delimiter='', line_delimiter='')
        clazz._log.log_d('set_bytes: hex_value={}'.format(hex_value))
        args = ['-w', '-x', key, hex_value, shlex.quote(filename)]
        rv = clazz._call_xattr_exe(args)
        clazz._check_permission_error(
            rv, 'Permission error setting key="{}" value="{}" for "{}"'.format(
                key, value, filename))
        xattr_exe_command.check_result(
            rv,
            message='Failed to set key="{}" value="{}" for "{}"'.format(
                key, value, filename))