Revision 137161c9 scripts/gnt-instance

b/scripts/gnt-instance
45 45
  op = opcodes.OpQueryInstances(output_fields=selected_fields)
46 46
  output = SubmitOpCode(op)
47 47

  
48
  mlens = [0 for name in selected_fields]
48
  if not opts.no_headers:
49
    headers = {"name": "Instance", "os": "OS", "pnode": "Primary_node",
50
               "snodes": "Secondary_Nodes", "admin_state": "Autostart",
51
               "oper_state": "Status", "admin_ram": "Configured_memory",
52
               "oper_ram": "Memory", "disk_template": "Disk_template",
53
               "ip": "IP Address", "mac": "MAC Address",
54
               "bridge": "Bridge"}
55
  else:
56
    headers = None
49 57

  
50
  format_fields = []
51
  unitformat_fields = ("admin_ram", "oper_ram")
52
  for field in selected_fields:
53
    if field in ("admin_ram", "oper_ram"):
54
      format_fields.append("%*s")
55
    else:
56
      format_fields.append("%-*s")
57
  separator = opts.separator
58
  if "%" in separator:
59
    separator = separator.replace("%", "%%")
60
  format = separator.join(format_fields)
61

  
62
  for row in output:
63
    for idx, val in enumerate(row):
64
      if opts.human_readable and selected_fields[idx] in unitformat_fields:
65
        try:
66
          val = int(val)
67
        except ValueError:
68
          pass
69
        else:
70
          val = row[idx] = utils.FormatUnit(val)
71
      mlens[idx] = max(mlens[idx], len(val))
58
  if opts.human_readable:
59
    unitfields = ["admin_ram", "oper_ram"]
60
  else:
61
    unitfields = None
72 62

  
73
  if not opts.no_headers:
74
    header_list = {"name": "Instance", "os": "OS", "pnode": "Primary_node",
75
                   "snodes": "Secondary_Nodes", "admin_state": "Autostart",
76
                   "oper_state": "Status", "admin_ram": "Configured_memory",
77
                   "oper_ram": "Memory", "disk_template": "Disk_template",
78
                   "ip": "IP Address", "mac": "MAC Address",
79
                   "bridge": "Bridge"}
80
    args = []
81
    for idx, name in enumerate(selected_fields):
82
      hdr = header_list[name]
83
      mlens[idx] = max(mlens[idx], len(hdr))
84
      args.append(mlens[idx])
85
      args.append(hdr)
86
    logger.ToStdout(format % tuple(args))
87

  
88
  for line in output:
89
    args = []
90
    for idx in range(len(selected_fields)):
91
      args.append(mlens[idx])
92
      args.append(line[idx])
93
    logger.ToStdout(format % tuple(args))
63
  numfields = ["admin_ram", "oper_ram"]
64

  
65
  OutputTable(separator=opts.separator, headers=headers,
66
      fields=selected_fields, unitfields=unitfields,
67
      numfields=numfields, data=output)
94 68

  
95 69
  return 0
96 70

  

Also available in: Unified diff