Skip to content

Commit 7d4b9ae

Browse files
committed
Add metasearch action
1 parent efccdce commit 7d4b9ae

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

lib/Brass/ConfigDB.pm

+16-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ sub _run_remote
146146
{
147147
push @path, 'server';
148148
push @query, (server => $server, action => $action, param => $param);
149-
if ($action =~ /^(summary|domain|is_production|sshkeys|sudo|metadata)$/)
149+
if ($action =~ /^(summary|domain|is_production|sshkeys|sudo|metadata|metasearch)$/)
150150
{
151151
}
152152
elsif ($action eq 'update')
@@ -376,6 +376,21 @@ sub run_server
376376
}
377377
return encode_json(\%return);
378378
}
379+
elsif ($action eq 'metasearch')
380+
{
381+
$param =~ /^.+=.*$/
382+
or error "Supply search with --param=key=value";
383+
my ($key, $value) = split /=/, $param;
384+
my @servers;
385+
foreach my $server ($schema->resultset('Server')->all)
386+
{
387+
$server->metadata or next;
388+
my $meta = decode_json $server->metadata;
389+
push @servers, $server->name
390+
if $meta->{$key} && $meta->{$key} eq $value;
391+
}
392+
return encode_json(\@servers);
393+
}
379394
elsif ($action eq 'domain')
380395
{
381396
$server or error __"Please specify server";

0 commit comments

Comments
 (0)