Under Construction

Selektionen

Die HMC verwaltet Benutzer, LPARs, Profile und vieles weitere als Ressourcen. Jede dieser Ressourcen besitzt eine Reihe von Attributen. Dabei hat jedes Attribut einen Namen und keinen, einen oder mehrere Werte:

<attribute-name>=
<attribute-name>=<value>[,<value>…]

Jede dieser Ressourcen wird von der HMC letztlich als eine Liste von einem oder mehreren solcher Attribute repräsentiert. In den meisten Fällen gibt es mehrere Ressourcen eines Typs. Die Kommandos des LPAR-Tools zum Ausgeben eines solchen Ressource Typs geben, ohne weitere Argumente, alle Ressourcen dieses Typs aus, z.B. HMC-Benutzer:

$ hmc lshmcusr hmc01
NAME       DESCRIPTION         TASKROLE       RESOURCEROLE
lawrence   Jennifer Lawrence   hmcviewer      ALL:
bacon      Kevin Bacon         hmcviewer      ALL:
lopez      Jennifer Lopez      hmcsuperadmin  ALL:
root       root                hmcsuperadmin  ALL:
costner    Kevin Costner       hmcviewer      ALL:
hscroot    HMC Super User      hmcsuperadmin  ALL:
johansson  Scarlett Johansson  hmcoperator    ALL:
baldwin    Adam Baldwin        hmcsuperadmin  ALL:
$

Insbesondere in Fällen wo die Ausgabe länger ist, wünscht man sich die Möglichkeit eine Auswahl (Selektion) zu treffen, um nur bestimmte Ressourcen auszugeben. Dies kann durch die Angabe von Selektionen erreicht werden. Eine Selektion hat dabei eine der folgenden Formen:

<attribute-name>=<value>
matches resources where the specified attribute has the specified value
example: name=lopez
<attribute-name>~<regexp>
matches resources where the specified attribute matches the specified regular expression
example: description~[CLJ]o
<attribute-name>!=<value>
matches resources where the specified attribute does not have the specified value
example: name!=lopez
<attribute-name>!~<regexp>
matches resources where the specified attribute does not match the specified regular expression
example: description!~[CLJ]o
<attribute-name>:eq:<number>
matches resources where the specified attribute has a numeric value equal to the specified number
example: maxage:eq:180
<attribute-name>:ne:<number>
matches resources where the specified attribute has a numeric value not equal to the specified number
example: maxage:ne:180
<attribute-name>:ge:<number>
matches resources where the specified attribute has a numeric value greater than the specified number
example: maxage:ge:180
<attribute-name>:gt:<number>
matches resources where the specified attribute has a numeric value greater or equal than the specified number
example: maxage:gt:180
<attribute-name>:le:<number>
matches resources where the specified attribute has a numeric value less or equal than the specified number
example: maxage:le:180
<attribute-name>:lt:<number>
matches resources where the specified attribute has a numeric value less than the specified number
example: maxage:lt:180

Alle Kommandos des LPAR-Tools die eine Ausgabe von Ressourcen produzieren unterstützen die Option „-s“ für die Angabe von Selektionen. Hier wieder am Beispiel von „hmc lshmcusr“:

$ hmc lshmcusr -s taskrole=hmcsuperadmin hmc01
NAME     DESCRIPTION     TASKROLE       RESOURCEROLE
lopez    Jennifer Lopez  hmcsuperadmin  ALL:
root     root            hmcsuperadmin  ALL:
hscroot  HMC Super User  hmcsuperadmin  ALL:
baldwin  Adam Baldwin    hmcsuperadmin  ALL:
$

Die Option „-s“ mit Argument muss dabei vor dem Keyword „lshmcusr“ oder nach dem Keyword „lshmcusr“ vor dem ersten Argument (hier hmc01) angegeben werden!

Neben der Option „-s“ unterstützen alle diese Kommandos auch die Option „-S“ mit Argument. Es werden dann die Ressourcen ausgegeben, die nicht durch die Selektion ausgewählt werden (Negation):

$ hmc lshmcusr -S taskrole=hmcsuperadmin hmc01
NAME       DESCRIPTION         TASKROLE     RESOURCEROLE
lawrence   Jennifer Lawrence   hmcviewer    ALL:
bacon      Kevin Bacon         hmcviewer    ALL:
costner    Kevin Costner       hmcviewer    ALL:
johansson  Scarlett Johansson  hmcoperator  ALL:
$

Dies kann aber auch so erreicht werden:

$ hmc lshmcusr -s taskrole\!=hmcsuperadmin hmc01
NAME       DESCRIPTION         TASKROLE     RESOURCEROLE
lawrence   Jennifer Lawrence   hmcviewer    ALL:
bacon      Kevin Bacon         hmcviewer    ALL:
costner    Kevin Costner       hmcviewer    ALL:
johansson  Scarlett Johansson  hmcoperator  ALL:
$

Hinweis: Je nach verwendeter Shell muss das Anführungszeichen mit einem Backslash vor der Interpretation durch die Shell geschützt werden.

Selektionen können mit einem Komma kombiniert werden:

$ hmc lshmcusr -s taskrole=hmcsuperadmin,description~Jennifer hmc01
NAME   DESCRIPTION     TASKROLE       RESOURCEROLE
lopez  Jennifer Lopez  hmcsuperadmin  ALL:
$

Die Verknüpfung mit einem Komma wird als logisches UND interpretiert. D.h. alle Bedingungen müssen erfüllt sein. Es können beliebig viele Bedingungen mit Komma kombiniert werden. Dies gilt auch für die Option „-S“.

Werden die Optionen „-s“ oder „-S“ mehrfach verwendet, dann wird dies als logisches ODER gewertet:

$ hmc lshmcusr -s taskrole=hmcsuperadmin,description~Jennifer -s taskrole=hmcviewer,description~Costner hmc01
NAME     DESCRIPTION     TASKROLE       RESOURCEROLE
lopez    Jennifer Lopez  hmcsuperadmin  ALL:
costner  Kevin Costner   hmcviewer      ALL:
$

Die Verwendung der Optionen „-s“ und/oder „-S“ ist etwas gewöhnungsbedürftig. Man muss daran denken das diese als Option vor dem ersten Argument des Kommandos angegeben werden müssen. Das führt dann je nach Version des LPAR-Tools zu Fehlern wie den folgenden:

$ hmc lshmcusr hmc01 -s taskrole=hmcsuperadmin,description~Jennifer
USAGE:
   hmc lshmcusr [-o <format>] [{-f|-j|-y}] [-F <fields>] [-s <selections>] [-v] <hmc>
ERROR: too many arguments for keyword 'lshmcusr'
$
$ hmc lshmcusr hmc01 -s taskrole=hmcsuperadmin,description~Jennifer
NAME  DESCRIPTION  TASKROLE  RESOURCEROLE
$

Ab der Version 1.9.2 des LPAR-Tools unterstützen daher viele LPAR-Tool Kommandos die Möglichkeit Selektionen am Ende der Kommandozeile, ohne Option „-s“ anzugeben:

$ hmc lshmcusr hmc01 taskrole=hmcsuperadmin,description~Jennifer
NAME   DESCRIPTION     TASKROLE       RESOURCEROLE
lopez  Jennifer Lopez  hmcsuperadmin  ALL:
$

Es können auch mehrere solcher Argumente angegeben werden, was dann als logisches ODER interpretiert wird:

$ hmc lshmcusr hmc01 description~Kevin taskrole=hmcsuperadmin
NAME     DESCRIPTION     TASKROLE       RESOURCEROLE
bacon    Kevin Bacon     hmcviewer      ALL:
baldwin  Adam Baldwin    hmcsuperadmin  ALL:
costner  Kevin Costner   hmcviewer      ALL:
hscroot  HMC Super User  hmcsuperadmin  ALL:
lopez    Jennifer Lopez  hmcsuperadmin  ALL:
root     root            hmcsuperadmin  ALL:
$

Ein häufiger Fall wird sein das man konkrete Benutzer (Attribut name) angeben möchte:

$ hmc lshmcusr hmc01 name=bacon name=lopez
NAME   DESCRIPTION     TASKROLE       RESOURCEROLE
bacon  Kevin Bacon     hmcviewer      ALL:
lopez  Jennifer Lopez  hmcsuperadmin  ALL:
$

Hier würde man sich wünschen das man den Part „name=“ einfach weglassen kann und dies wird vom LPAR-Tool auch unterstützt:

$ hmc lshmcusr hmc01 bacon lopez
NAME   DESCRIPTION     TASKROLE       RESOURCEROLE
bacon  Kevin Bacon     hmcviewer      ALL:
lopez  Jennifer Lopez  hmcsuperadmin  ALL:
$

Neben dem Attribut name unterstützt das LPAR-Tool in der Regel weitere Attribute die in dieser vereinfachten Form angegeben werden können. Bei dem Kommando „hmc lshmcusr“ können neben dem Attribut name auch die Attribute description und taskrole in dieser vereinfachten Form angegeben werden:

$ hmc lshmcusr hmc01 "Kevin Bacon" hmcviewer
NAME      DESCRIPTION        TASKROLE   RESOURCEROLE
bacon     Kevin Bacon        hmcviewer  ALL:
costner   Kevin Costner      hmcviewer  ALL:
lawrence  Jennifer Lawrence  hmcviewer  ALL:
$

Hinweis: Welche Attribute für ein LPAR-Tool Kommando in dieser vereinfachten Form unterstützt werden, kann der Online Hilfe des Kommandos entnommen werden.

Neben den Kommandos zur Ausgabe von Ressourcen, können Selektionen auch bei vielen Kommandos verwendet werden, die Ressourcen ändern oder löschen. Anstelle den eindeutigen Namen der Ressource anzugeben, kann eine Ressource dann auch durch Selektionen angegeben werden. Es darf dann aber in der Regel nur genau eine Ressource auf die Selektionen passen, ansonsten bekommt man eine Fehlermeldung.

$ hmc rmhmcusr hmc01 description~Kevin
vhmc01: lshmcusr
USAGE:
   hmc rmhmcusr [-v] <hmc> <user_selection>
ERROR: 'description~Kevin' matches more than one user:
did you mean: bacon
did you mean: costner
$

to be continued