nixos/taskserver/helper: Improve CLI subcommands
Try to match the subcommands to act more like the subcommands from the taskd binary and also add a subcommand to list groups. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
This commit is contained in:
parent
ce0954020c
commit
e2383b84f8
@ -441,7 +441,31 @@ def cli(ctx):
|
|||||||
ctx.fail(msg.format(path))
|
ctx.fail(msg.format(path))
|
||||||
|
|
||||||
|
|
||||||
@cli.command("list-users")
|
@cli.group("org")
|
||||||
|
def org_cli():
|
||||||
|
"""
|
||||||
|
Manage organisations
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@cli.group("user")
|
||||||
|
def user_cli():
|
||||||
|
"""
|
||||||
|
Manage users
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@cli.group("group")
|
||||||
|
def group_cli():
|
||||||
|
"""
|
||||||
|
Manage groups
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@user_cli.command("list")
|
||||||
@click.argument("organisation", type=ORGANISATION)
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
def list_users(organisation):
|
def list_users(organisation):
|
||||||
"""
|
"""
|
||||||
@ -452,7 +476,18 @@ def list_users(organisation):
|
|||||||
sys.stdout.write(user.name + "\n")
|
sys.stdout.write(user.name + "\n")
|
||||||
|
|
||||||
|
|
||||||
@cli.command("list-orgs")
|
@group_cli.command("list")
|
||||||
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
|
def list_groups(organisation):
|
||||||
|
"""
|
||||||
|
List all users belonging to the specified organisation.
|
||||||
|
"""
|
||||||
|
label("The following users exists for {}:".format(organisation.name))
|
||||||
|
for group in organisation.groups.values():
|
||||||
|
sys.stdout.write(group.name + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
@org_cli.command("list")
|
||||||
def list_orgs():
|
def list_orgs():
|
||||||
"""
|
"""
|
||||||
List available organisations
|
List available organisations
|
||||||
@ -462,7 +497,7 @@ def list_orgs():
|
|||||||
sys.stdout.write(org.name + "\n")
|
sys.stdout.write(org.name + "\n")
|
||||||
|
|
||||||
|
|
||||||
@cli.command("get-uuid")
|
@user_cli.command("getkey")
|
||||||
@click.argument("organisation", type=ORGANISATION)
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
@click.argument("user")
|
@click.argument("user")
|
||||||
def get_uuid(organisation, user):
|
def get_uuid(organisation, user):
|
||||||
@ -478,7 +513,7 @@ def get_uuid(organisation, user):
|
|||||||
sys.stdout.write(user.key + "\n")
|
sys.stdout.write(user.key + "\n")
|
||||||
|
|
||||||
|
|
||||||
@cli.command("export-user")
|
@user_cli.command("export")
|
||||||
@click.argument("organisation", type=ORGANISATION)
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
@click.argument("user")
|
@click.argument("user")
|
||||||
def export_user(organisation, user):
|
def export_user(organisation, user):
|
||||||
@ -496,7 +531,7 @@ def export_user(organisation, user):
|
|||||||
sys.stdout.write(userobj.export())
|
sys.stdout.write(userobj.export())
|
||||||
|
|
||||||
|
|
||||||
@cli.command("add-org")
|
@org_cli.command("add")
|
||||||
@click.argument("name")
|
@click.argument("name")
|
||||||
def add_org(name):
|
def add_org(name):
|
||||||
"""
|
"""
|
||||||
@ -510,7 +545,7 @@ def add_org(name):
|
|||||||
mark_imperative(name)
|
mark_imperative(name)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("del-org")
|
@org_cli.command("remove")
|
||||||
@click.argument("name")
|
@click.argument("name")
|
||||||
def del_org(name):
|
def del_org(name):
|
||||||
"""
|
"""
|
||||||
@ -526,7 +561,7 @@ def del_org(name):
|
|||||||
click.echo(msg.format(name), err=True)
|
click.echo(msg.format(name), err=True)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("add-user")
|
@user_cli.command("add")
|
||||||
@click.argument("organisation", type=ORGANISATION)
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
@click.argument("user")
|
@click.argument("user")
|
||||||
def add_user(organisation, user):
|
def add_user(organisation, user):
|
||||||
@ -545,7 +580,7 @@ def add_user(organisation, user):
|
|||||||
mark_imperative(organisation.name, "users", userobj.key)
|
mark_imperative(organisation.name, "users", userobj.key)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("del-user")
|
@user_cli.command("remove")
|
||||||
@click.argument("organisation", type=ORGANISATION)
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
@click.argument("user")
|
@click.argument("user")
|
||||||
def del_user(organisation, user):
|
def del_user(organisation, user):
|
||||||
@ -561,7 +596,7 @@ def del_user(organisation, user):
|
|||||||
click.echo(msg.format(user), err=True)
|
click.echo(msg.format(user), err=True)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("add-group")
|
@group_cli.command("add")
|
||||||
@click.argument("organisation", type=ORGANISATION)
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
@click.argument("group")
|
@click.argument("group")
|
||||||
def add_group(organisation, group):
|
def add_group(organisation, group):
|
||||||
@ -576,7 +611,7 @@ def add_group(organisation, group):
|
|||||||
mark_imperative(organisation.name, "groups", groupobj.name)
|
mark_imperative(organisation.name, "groups", groupobj.name)
|
||||||
|
|
||||||
|
|
||||||
@cli.command("del-group")
|
@group_cli.command("remove")
|
||||||
@click.argument("organisation", type=ORGANISATION)
|
@click.argument("organisation", type=ORGANISATION)
|
||||||
@click.argument("group")
|
@click.argument("group")
|
||||||
def del_group(organisation, group):
|
def del_group(organisation, group):
|
||||||
|
@ -44,7 +44,7 @@ import ./make-test.nix {
|
|||||||
);
|
);
|
||||||
|
|
||||||
my $exportinfo = $server->succeed(
|
my $exportinfo = $server->succeed(
|
||||||
"nixos-taskserver export-user $org $user"
|
"nixos-taskserver user export $org $user"
|
||||||
);
|
);
|
||||||
|
|
||||||
$exportinfo =~ s/'/'\\'''/g;
|
$exportinfo =~ s/'/'\\'''/g;
|
||||||
@ -74,10 +74,10 @@ import ./make-test.nix {
|
|||||||
|
|
||||||
sub readdImperativeUser {
|
sub readdImperativeUser {
|
||||||
$server->nest("(re-)add imperative user bar", sub {
|
$server->nest("(re-)add imperative user bar", sub {
|
||||||
$server->execute("nixos-taskserver del-org imperativeOrg");
|
$server->execute("nixos-taskserver org remove imperativeOrg");
|
||||||
$server->succeed(
|
$server->succeed(
|
||||||
"nixos-taskserver add-org imperativeOrg",
|
"nixos-taskserver org add imperativeOrg",
|
||||||
"nixos-taskserver add-user imperativeOrg bar"
|
"nixos-taskserver user add imperativeOrg bar"
|
||||||
);
|
);
|
||||||
setupClientsFor "imperativeOrg", "bar";
|
setupClientsFor "imperativeOrg", "bar";
|
||||||
});
|
});
|
||||||
@ -109,9 +109,9 @@ import ./make-test.nix {
|
|||||||
$server->waitForUnit("taskserver.service");
|
$server->waitForUnit("taskserver.service");
|
||||||
|
|
||||||
$server->succeed(
|
$server->succeed(
|
||||||
"nixos-taskserver list-users testOrganisation | grep -qxF alice",
|
"nixos-taskserver user list testOrganisation | grep -qxF alice",
|
||||||
"nixos-taskserver list-users testOrganisation | grep -qxF foo",
|
"nixos-taskserver user list testOrganisation | grep -qxF foo",
|
||||||
"nixos-taskserver list-users anotherOrganisation | grep -qxF bob"
|
"nixos-taskserver user list anotherOrganisation | grep -qxF bob"
|
||||||
);
|
);
|
||||||
|
|
||||||
$server->waitForOpenPort(${portStr});
|
$server->waitForOpenPort(${portStr});
|
||||||
@ -125,7 +125,7 @@ import ./make-test.nix {
|
|||||||
|
|
||||||
testSync $_ for ("alice", "bob", "foo");
|
testSync $_ for ("alice", "bob", "foo");
|
||||||
|
|
||||||
$server->fail("nixos-taskserver add-user imperativeOrg bar");
|
$server->fail("nixos-taskserver user add imperativeOrg bar");
|
||||||
readdImperativeUser;
|
readdImperativeUser;
|
||||||
|
|
||||||
testSync "bar";
|
testSync "bar";
|
||||||
@ -133,7 +133,7 @@ import ./make-test.nix {
|
|||||||
subtest "checking certificate revocation of user bar", sub {
|
subtest "checking certificate revocation of user bar", sub {
|
||||||
$client1->succeed(checkClientCert "bar");
|
$client1->succeed(checkClientCert "bar");
|
||||||
|
|
||||||
$server->succeed("nixos-taskserver del-user imperativeOrg bar");
|
$server->succeed("nixos-taskserver user remove imperativeOrg bar");
|
||||||
restartServer;
|
restartServer;
|
||||||
|
|
||||||
$client1->fail(checkClientCert "bar");
|
$client1->fail(checkClientCert "bar");
|
||||||
@ -147,7 +147,7 @@ import ./make-test.nix {
|
|||||||
subtest "checking certificate revocation of org imperativeOrg", sub {
|
subtest "checking certificate revocation of org imperativeOrg", sub {
|
||||||
$client1->succeed(checkClientCert "bar");
|
$client1->succeed(checkClientCert "bar");
|
||||||
|
|
||||||
$server->succeed("nixos-taskserver del-org imperativeOrg");
|
$server->succeed("nixos-taskserver org remove imperativeOrg");
|
||||||
restartServer;
|
restartServer;
|
||||||
|
|
||||||
$client1->fail(checkClientCert "bar");
|
$client1->fail(checkClientCert "bar");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user