'Extract the user accounts in /etc/shadow.
Identifies the users in /etc/shadow and several attributes of their account,
including how their password is crypted and password aging characteristics.
Args:
line: An entry of the shadow file.'

def ParseShadowEntry(self, line):

    fields = ('login', 'passwd', 'last_change', 'min_age', 'max_age', 'warn_time', 'inactivity', 'expire', 'reserved')
    if line:
        rslt = dict(zip(fields, line.split(':')))
        pw_entry = self.shadow.setdefault(rslt['login'], rdf_client.PwEntry())
        pw_entry.store = self.shadow_store
        pw_entry.hash_type = self.GetHashType(rslt['passwd'])
        last_change = rslt.get('last_change')
        if last_change:
            pw_entry.age = int(last_change)
        max_age = rslt.get('max_age')
        if max_age:
            pw_entry.max_age = int(max_age)
