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