Package config_client :: Module rhncfgcli_elist
[hide private]
[frames] | no frames]

Source Code for Module config_client.rhncfgcli_elist

 1  from config_common.rhn_log import log_debug, die 
 2  from config_common.file_utils import ostr_to_sym 
 3  import handler_base, base64 
 4  import sys 
 5  from rhn.i18n import bstr 
 6   
 7   
8 -class Handler(handler_base.HandlerBase):
9 - def run(self):
10 log_debug(2) 11 r = self.repository 12 files = r.list_files() 13 14 if not files: 15 die(1, "No managed files.") 16 17 label = "Config Channel" 18 maxlen = max([len(s[0]) for s in files]) 19 maxlen = max(maxlen, len(label)) + 2 20 print("%-10s %8s %-8s %10s %+3s %*s %s" % ('Mode', 'Owner', 'Group', 'Size', 'Rev', maxlen, label, "File")) 21 22 arg_files = [] 23 if len(sys.argv) > 2: 24 arg_files = sys.argv[2:len(sys.argv)] 25 26 for file in files: 27 28 if len(arg_files) and not file[1] in arg_files: 29 continue 30 31 # Get the file info 32 finfo = r.get_file_info(file[1])[1] 33 # Get the file length 34 if finfo['encoding'] == 'base64': 35 fsize = len(base64.decodestring(bstr(finfo['file_contents']))) 36 else: 37 # * indicates raw 'unencoded' size 38 fsize = '*' + str(len(finfo['file_contents'])) 39 40 if finfo['filetype'] == 'symlink': 41 permstr = ostr_to_sym('777', finfo['filetype']) 42 dest = "%s -> %s" % (file[1], finfo['symlink']) 43 fsize = str(len(finfo['symlink'])) 44 finfo['username'] = 'root' 45 finfo['groupname'] = 'root' 46 else: 47 permstr = ostr_to_sym(finfo['filemode'], finfo['filetype']) or '' 48 dest = file[1] 49 print("%10s %8s %-8s %10s %+3s %*s %s" % (permstr, finfo['username'], finfo['groupname'], fsize, finfo['revision'], maxlen, file[0], dest))
50