mirror of
https://github.com/schoebel/mars
synced 2025-02-11 17:47:15 +00:00
marsadm: add list inquiry functions
This commit is contained in:
parent
8d60cb304c
commit
f43d5fd58e
@ -8502,6 +8502,62 @@ In the following, shell glob notation
|
||||
(excluding the braces).
|
||||
\end_layout
|
||||
|
||||
\begin_layout Subparagraph
|
||||
Name Querying
|
||||
\end_layout
|
||||
|
||||
\begin_layout Labeling
|
||||
\labelwidthstring 00.00.0000
|
||||
|
||||
\family typewriter
|
||||
cluster-members
|
||||
\family default
|
||||
Show a newline-separated list of all host names participating in the cluster.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Labeling
|
||||
\labelwidthstring 00.00.0000
|
||||
|
||||
\family typewriter
|
||||
resource-members
|
||||
\family default
|
||||
Show a newline-separated list of all host names participating in the particular
|
||||
resource
|
||||
\family typewriter
|
||||
%{res}
|
||||
\family default
|
||||
.
|
||||
Notice that this may be a subset of
|
||||
\family typewriter
|
||||
%cluster-members{}
|
||||
\family default
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Labeling
|
||||
\labelwidthstring 00.00.0000
|
||||
|
||||
\family typewriter
|
||||
{my,all}-resources
|
||||
\family default
|
||||
Show a newline-separated list of either all resource names existing in
|
||||
the cluster, or only those where the current host
|
||||
\family typewriter
|
||||
%{host}
|
||||
\family default
|
||||
is member.
|
||||
Optionally, you may specify the hostname as a parameter, e.g.
|
||||
|
||||
\family typewriter
|
||||
%my-resources{
|
||||
\emph on
|
||||
otherhost
|
||||
\emph default
|
||||
}
|
||||
\family default
|
||||
.
|
||||
\end_layout
|
||||
|
||||
\begin_layout Subparagraph
|
||||
Amounts of Data Inquiry
|
||||
\end_layout
|
||||
|
@ -2769,6 +2769,42 @@ sub eval_fn {
|
||||
my $result = -d $path;
|
||||
return defined($result) && $result;
|
||||
}
|
||||
# list objects
|
||||
if (/^cluster[-_]?members$/) {
|
||||
my @peers = glob("$mars/ips/ip-*");
|
||||
my $list = "";
|
||||
foreach my $peer (sort(@peers)) {
|
||||
$peer =~ s:^$mars/ips/ip-::;
|
||||
$list .= "$peer\n";
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
if (/^resource[-_]?members$/) {
|
||||
my @peers = glob($$env{"resdir"} . "/data-*");
|
||||
my $list = "";
|
||||
foreach my $peer (sort(@peers)) {
|
||||
$peer =~ s:^.*/data-::;
|
||||
$list .= "$peer\n";
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
if (/^(my|all)[-_]?resources$/) {
|
||||
my $what = $1;
|
||||
my $peer = "*";
|
||||
if ($what eq "my") {
|
||||
$peer = parse_macro($arg1, $env);
|
||||
$peer = $$env{"host"} unless $peer;
|
||||
}
|
||||
my @list = glob("$mars/resource-*/data-$peer");
|
||||
map { s:^$mars/resource-(.*?)/data-.*:$1:; } @list;
|
||||
my $list = "";
|
||||
my $old = "";
|
||||
foreach my $item (sort(@list)) {
|
||||
$list .= "$item\n" if $item ne $old;
|
||||
$old = $item;
|
||||
}
|
||||
return $list;
|
||||
}
|
||||
# low-level symlink access
|
||||
if (/^readlink$/) {
|
||||
my $path = parse_macro($arg1, $env);
|
||||
@ -3903,6 +3939,10 @@ my %trivial_globs =
|
||||
=> "",
|
||||
|
||||
# intended for scripting
|
||||
"{my,all}-resources"
|
||||
=> "",
|
||||
"{cluster,resource}-members"
|
||||
=> "",
|
||||
"{disk,resource,device}-size"
|
||||
=> "",
|
||||
"deletable-size"
|
||||
|
Loading…
Reference in New Issue
Block a user