#!/usr/bin/env python

import struct
import xattr
import sys
import time


def get_stime(master_uuid, slave_uuid, brick):
    stime_key = "trusted.glusterfs.%s.%s.stime" % (master_uuid, slave_uuid)
    try:
        return struct.unpack('!II', xattr.get(brick, stime_key))
    except (OSError, IOError):
        return "N/A"


def set_stime(master_uuid, slave_uuid, brick):
    stime_key = "trusted.glusterfs.%s.%s.stime" % (master_uuid, slave_uuid)
    t = time.time()
    sec = int(t)
    nsec = int((t - sec) * 1000000)
    xattr.set(brick, stime_key, struct.pack("!II", sec, nsec))


if __name__ == "__main__":
    """
    Usage:

    sudo python set_stime.py f8c6276f-7ab5-4098-b41d-c82909940799 \
    563681d7-a8fd-4cea-bf97-eca74203a0fe /exports/brick1
    """
    print "BEFORE: %s" % repr(get_stime(sys.argv[1], sys.argv[2], sys.argv[3]))
    set_stime(sys.argv[1], sys.argv[2], sys.argv[3])
    print "AFTER: %s" % repr(get_stime(sys.argv[1], sys.argv[2], sys.argv[3]))
