Revision ae5b1530

b/man/gnt-os.sgml
83 83
    </para>
84 84

  
85 85
    <cmdsynopsis>
86
      <command>info</command>
87
    </cmdsynopsis>
88

  
89
    <para>
90
      This command will list detailed information about each OS
91
      available in the cluster, including its validity status, the
92
      supported API versions, the supported parameters (if any) and
93
      their documentations, etc.
94
    </para>
95

  
96
    <cmdsynopsis>
86 97
      <command>modify</command>
87 98
      <arg>-H <replaceable>HYPERVISOR</replaceable><arg>:<arg choice="plain" rep="repeat">option=<replaceable>value</replaceable></arg></arg></arg>
88 99
      <arg choice="req"><replaceable>OS</replaceable></arg>
b/scripts/gnt-os
70 70
  return 0
71 71

  
72 72

  
73
def ShowOSInfo(opts, args):
74
  """List detailed information about OSes in the cluster.
75

  
76
  @param opts: the command line options selected by the user
77
  @type args: list
78
  @param args: should be an empty list
79
  @rtype: int
80
  @return: the desired exit code
81

  
82
  """
83
  op = opcodes.OpDiagnoseOS(output_fields=["name", "valid", "variants",
84
                                           "parameters", "api_versions"],
85
                            names=[])
86
  result = SubmitOpCode(op, opts=opts)
87

  
88
  if not result:
89
    ToStderr("Can't get the OS list")
90
    return 1
91

  
92
  do_filter = bool(args)
93

  
94
  for (name, valid, variants, parameters, api_versions) in result:
95
    if do_filter:
96
      if name not in args:
97
        continue
98
      else:
99
        args.remove(name)
100
    ToStdout("%s:", name)
101
    ToStdout("  - valid: %s", valid)
102
    if valid:
103
      ToStdout("  - API versions:")
104
      for version in sorted(api_versions):
105
        ToStdout("    - %s", version)
106
      ToStdout("  - variants:")
107
      for vname in variants:
108
        ToStdout("    - %s", vname)
109
      ToStdout("  - parameters:")
110
      for pname, pdesc in parameters:
111
        ToStdout("    - %s: %s", pname, pdesc)
112
    ToStdout("")
113

  
114
  if args:
115
    for name in args:
116
      ToStdout("%s: ", name)
117
      ToStdout("")
118

  
119
  return 0
120

  
121

  
73 122
def _OsStatus(status, diagnose):
74 123
  """Beautifier function for OS status.
75 124

  
......
203 252
    " on the cluster"),
204 253
  'diagnose': (
205 254
    DiagnoseOS, ARGS_NONE, [], "", "Diagnose all operating systems"),
255
  'info': (
256
    ShowOSInfo, [ArgOs()], [], "", "Show detailed information about "
257
    "operating systems"),
206 258
  'modify': (
207 259
    ModifyOS, ARGS_ONE_OS, [HVLIST_OPT, OSPARAMS_OPT], "",
208 260
    "Modify the OS parameters"),

Also available in: Unified diff