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>

aszlig e2383b84 ce095402

+55 -20
+45 -10
nixos/modules/services/misc/taskserver/helper-tool.py
··· 441 441 ctx.fail(msg.format(path)) 442 442 443 443 444 - @cli.command("list-users") 444 + @cli.group("org") 445 + def org_cli(): 446 + """ 447 + Manage organisations 448 + """ 449 + pass 450 + 451 + 452 + @cli.group("user") 453 + def user_cli(): 454 + """ 455 + Manage users 456 + """ 457 + pass 458 + 459 + 460 + @cli.group("group") 461 + def group_cli(): 462 + """ 463 + Manage groups 464 + """ 465 + pass 466 + 467 + 468 + @user_cli.command("list") 445 469 @click.argument("organisation", type=ORGANISATION) 446 470 def list_users(organisation): 447 471 """ ··· 452 476 sys.stdout.write(user.name + "\n") 453 477 454 478 455 - @cli.command("list-orgs") 479 + @group_cli.command("list") 480 + @click.argument("organisation", type=ORGANISATION) 481 + def list_groups(organisation): 482 + """ 483 + List all users belonging to the specified organisation. 484 + """ 485 + label("The following users exists for {}:".format(organisation.name)) 486 + for group in organisation.groups.values(): 487 + sys.stdout.write(group.name + "\n") 488 + 489 + 490 + @org_cli.command("list") 456 491 def list_orgs(): 457 492 """ 458 493 List available organisations ··· 462 497 sys.stdout.write(org.name + "\n") 463 498 464 499 465 - @cli.command("get-uuid") 500 + @user_cli.command("getkey") 466 501 @click.argument("organisation", type=ORGANISATION) 467 502 @click.argument("user") 468 503 def get_uuid(organisation, user): ··· 478 513 sys.stdout.write(user.key + "\n") 479 514 480 515 481 - @cli.command("export-user") 516 + @user_cli.command("export") 482 517 @click.argument("organisation", type=ORGANISATION) 483 518 @click.argument("user") 484 519 def export_user(organisation, user): ··· 496 531 sys.stdout.write(userobj.export()) 497 532 498 533 499 - @cli.command("add-org") 534 + @org_cli.command("add") 500 535 @click.argument("name") 501 536 def add_org(name): 502 537 """ ··· 510 545 mark_imperative(name) 511 546 512 547 513 - @cli.command("del-org") 548 + @org_cli.command("remove") 514 549 @click.argument("name") 515 550 def del_org(name): 516 551 """ ··· 526 561 click.echo(msg.format(name), err=True) 527 562 528 563 529 - @cli.command("add-user") 564 + @user_cli.command("add") 530 565 @click.argument("organisation", type=ORGANISATION) 531 566 @click.argument("user") 532 567 def add_user(organisation, user): ··· 545 580 mark_imperative(organisation.name, "users", userobj.key) 546 581 547 582 548 - @cli.command("del-user") 583 + @user_cli.command("remove") 549 584 @click.argument("organisation", type=ORGANISATION) 550 585 @click.argument("user") 551 586 def del_user(organisation, user): ··· 561 596 click.echo(msg.format(user), err=True) 562 597 563 598 564 - @cli.command("add-group") 599 + @group_cli.command("add") 565 600 @click.argument("organisation", type=ORGANISATION) 566 601 @click.argument("group") 567 602 def add_group(organisation, group): ··· 576 611 mark_imperative(organisation.name, "groups", groupobj.name) 577 612 578 613 579 - @cli.command("del-group") 614 + @group_cli.command("remove") 580 615 @click.argument("organisation", type=ORGANISATION) 581 616 @click.argument("group") 582 617 def del_group(organisation, group):
+10 -10
nixos/tests/taskserver.nix
··· 44 44 ); 45 45 46 46 my $exportinfo = $server->succeed( 47 - "nixos-taskserver export-user $org $user" 47 + "nixos-taskserver user export $org $user" 48 48 ); 49 49 50 50 $exportinfo =~ s/'/'\\'''/g; ··· 74 74 75 75 sub readdImperativeUser { 76 76 $server->nest("(re-)add imperative user bar", sub { 77 - $server->execute("nixos-taskserver del-org imperativeOrg"); 77 + $server->execute("nixos-taskserver org remove imperativeOrg"); 78 78 $server->succeed( 79 - "nixos-taskserver add-org imperativeOrg", 80 - "nixos-taskserver add-user imperativeOrg bar" 79 + "nixos-taskserver org add imperativeOrg", 80 + "nixos-taskserver user add imperativeOrg bar" 81 81 ); 82 82 setupClientsFor "imperativeOrg", "bar"; 83 83 }); ··· 109 109 $server->waitForUnit("taskserver.service"); 110 110 111 111 $server->succeed( 112 - "nixos-taskserver list-users testOrganisation | grep -qxF alice", 113 - "nixos-taskserver list-users testOrganisation | grep -qxF foo", 114 - "nixos-taskserver list-users anotherOrganisation | grep -qxF bob" 112 + "nixos-taskserver user list testOrganisation | grep -qxF alice", 113 + "nixos-taskserver user list testOrganisation | grep -qxF foo", 114 + "nixos-taskserver user list anotherOrganisation | grep -qxF bob" 115 115 ); 116 116 117 117 $server->waitForOpenPort(${portStr}); ··· 125 125 126 126 testSync $_ for ("alice", "bob", "foo"); 127 127 128 - $server->fail("nixos-taskserver add-user imperativeOrg bar"); 128 + $server->fail("nixos-taskserver user add imperativeOrg bar"); 129 129 readdImperativeUser; 130 130 131 131 testSync "bar"; ··· 133 133 subtest "checking certificate revocation of user bar", sub { 134 134 $client1->succeed(checkClientCert "bar"); 135 135 136 - $server->succeed("nixos-taskserver del-user imperativeOrg bar"); 136 + $server->succeed("nixos-taskserver user remove imperativeOrg bar"); 137 137 restartServer; 138 138 139 139 $client1->fail(checkClientCert "bar"); ··· 147 147 subtest "checking certificate revocation of org imperativeOrg", sub { 148 148 $client1->succeed(checkClientCert "bar"); 149 149 150 - $server->succeed("nixos-taskserver del-org imperativeOrg"); 150 + $server->succeed("nixos-taskserver org remove imperativeOrg"); 151 151 restartServer; 152 152 153 153 $client1->fail(checkClientCert "bar");