def getent_aliases(database, key=None): if not key: con = NslcdClient(constants.NSLCD_ACTION_ALIAS_ALL) else: con = NslcdClient(constants.NSLCD_ACTION_ALIAS_BYNAME) con.write_string(key) while con.get_response() == constants.NSLCD_RESULT_BEGIN: print '%-16s%s' % ( con.read_string() + ': ', ', '.join(con.read_stringlist()), )
def getent_rpc(database, key=None): if not key: con = NslcdClient(constants.NSLCD_ACTION_RPC_ALL) elif re.match('^\d+$', key): con = NslcdClient(constants.NSLCD_ACTION_RPC_BYNUMBER) con.write_int32(int(key)) else: con = NslcdClient(constants.NSLCD_ACTION_RPC_BYNAME) con.write_string(key) while con.get_response() == constants.NSLCD_RESULT_BEGIN: name = con.read_string() aliases = con.read_stringlist() number = con.read_int32() print '%-15s %d %s' % (name, number, ' '.join(aliases))
def getent_group(database, key=None): if not key: con = NslcdClient(constants.NSLCD_ACTION_GROUP_ALL) elif database == 'group.bymember': con = NslcdClient(constants.NSLCD_ACTION_GROUP_BYMEMBER) con.write_string(key) elif re.match('^\d+$', key): con = NslcdClient(constants.NSLCD_ACTION_GROUP_BYGID) con.write_int32(int(key)) else: con = NslcdClient(constants.NSLCD_ACTION_GROUP_BYNAME) con.write_string(key) while con.get_response() == constants.NSLCD_RESULT_BEGIN: print '%s:%s:%d:%s' % ( con.read_string(), con.read_string(), con.read_int32(), ','.join(con.read_stringlist()), )
def getent_networks(database, key=None): db_af = _get_af(database) if not key: con = NslcdClient(constants.NSLCD_ACTION_NETWORK_ALL) else: ipv4_addr = _get_ipv4(key) ipv6_addr = _get_ipv6(key) if ipv4_addr and db_af in (socket.AF_INET, None): con = NslcdClient(constants.NSLCD_ACTION_NETWORK_BYADDR) con.write_address(socket.AF_INET, ipv4_addr) elif ipv6_addr and db_af in (socket.AF_INET, None): con = NslcdClient(constants.NSLCD_ACTION_NETWORK_BYADDR) con.write_address(socket.AF_INET6, ipv6_addr) else: con = NslcdClient(constants.NSLCD_ACTION_NETWORK_BYNAME) con.write_string(key) while con.get_response() == constants.NSLCD_RESULT_BEGIN: names = ' '.join([con.read_string()] + con.read_stringlist()) for af, address in con.read_addresslist(): if db_af in (af, None): print '%-15s %s' % (address, names)
def getent_services(database, key=None): if not key: con = NslcdClient(constants.NSLCD_ACTION_SERVICE_ALL) else: value = key protocol = '' if '/' in value: value, protocol = value.split('/', 1) if re.match('^\d+$', value): con = NslcdClient(constants.NSLCD_ACTION_SERVICE_BYNUMBER) con.write_int32(int(value)) con.write_string(protocol) else: con = NslcdClient(constants.NSLCD_ACTION_SERVICE_BYNAME) con.write_string(value) con.write_string(protocol) while con.get_response() == constants.NSLCD_RESULT_BEGIN: name = con.read_string() aliases = con.read_stringlist() number = con.read_int32() protocol = con.read_string() print '%-21s %d/%s %s' % (name, number, protocol, ' '.join(aliases))