From 763f24c2a65cc0408b59e4b27b6f438f466eb66b Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Wed, 24 Dec 2025 09:31:18 +0100 Subject: [PATCH 1/3] Boot Services --- doc/index.html | 871 +++++++++++++++++- generate/generate.go | 8 + generate/go_servicepermissions.tpl | 30 + go.mod | 13 +- go.sum | 12 + go/client/client.go | 11 + go/metalstack/admin/v2/filesystem.pb.go | 2 +- go/metalstack/admin/v2/image.pb.go | 2 +- go/metalstack/admin/v2/ip.pb.go | 2 +- go/metalstack/admin/v2/machine.pb.go | 2 +- go/metalstack/admin/v2/network.pb.go | 2 +- go/metalstack/admin/v2/partition.pb.go | 2 +- go/metalstack/admin/v2/project.pb.go | 2 +- go/metalstack/admin/v2/size.pb.go | 2 +- go/metalstack/admin/v2/switch.pb.go | 2 +- go/metalstack/admin/v2/tenant.pb.go | 2 +- go/metalstack/admin/v2/token.pb.go | 2 +- go/metalstack/api/v2/common.pb.go | 177 ++-- go/metalstack/api/v2/filesystem.pb.go | 2 +- go/metalstack/api/v2/health.pb.go | 2 +- go/metalstack/api/v2/image.pb.go | 2 +- go/metalstack/api/v2/ip.pb.go | 2 +- go/metalstack/api/v2/machine.pb.go | 490 +++++++--- go/metalstack/api/v2/method.pb.go | 69 +- go/metalstack/api/v2/network.pb.go | 2 +- go/metalstack/api/v2/partition.pb.go | 23 +- go/metalstack/api/v2/predefined_rules.pb.go | 2 +- go/metalstack/api/v2/project.pb.go | 2 +- go/metalstack/api/v2/size.pb.go | 2 +- go/metalstack/api/v2/switch.pb.go | 2 +- go/metalstack/api/v2/tenant.pb.go | 2 +- go/metalstack/api/v2/token.pb.go | 209 +++-- go/metalstack/api/v2/user.pb.go | 2 +- go/metalstack/api/v2/version.pb.go | 2 +- go/metalstack/infra/v2/bmc.pb.go | 2 +- go/metalstack/infra/v2/boot.pb.go | 842 +++++++++++++++++ go/metalstack/infra/v2/event.pb.go | 2 +- .../infra/v2/infrav2connect/boot.connect.go | 281 ++++++ go/metalstack/infra/v2/switch.pb.go | 2 +- go/permissions/permissions.go | 3 + go/permissions/servicepermissions.go | 48 + go/tests/api_scopes_test.go | 36 +- go/tests/mock_clients.go | 9 + go/tests/mocks/client/Infrav2.go | 46 + .../v2/infrav2connect/BootServiceClient.go | 448 +++++++++ .../v2/infrav2connect/BootServiceHandler.go | 443 +++++++++ proto/buf.gen.yaml | 2 +- proto/buf.lock | 4 +- proto/metalstack/api/v2/common.proto | 12 + proto/metalstack/api/v2/machine.proto | 46 +- proto/metalstack/api/v2/method.proto | 2 + proto/metalstack/api/v2/partition.proto | 15 +- proto/metalstack/api/v2/token.proto | 25 +- proto/metalstack/infra/v2/boot.proto | 156 ++++ python/metalstack/api/v2/common_pb2.py | 16 +- python/metalstack/api/v2/common_pb2.pyi | 11 + python/metalstack/api/v2/machine_pb2.py | 116 ++- python/metalstack/api/v2/machine_pb2.pyi | 40 + python/metalstack/api/v2/method_pb2.py | 20 +- python/metalstack/api/v2/method_pb2.pyi | 13 +- python/metalstack/api/v2/partition_pb2.py | 46 +- python/metalstack/api/v2/token_pb2.py | 104 ++- python/metalstack/api/v2/token_pb2.pyi | 39 +- python/metalstack/client/client.py | 4 + python/metalstack/infra/v2/boot_connect.py | 444 +++++++++ python/metalstack/infra/v2/boot_pb2.py | 113 +++ python/metalstack/infra/v2/boot_pb2.pyi | 111 +++ 67 files changed, 4984 insertions(+), 476 deletions(-) create mode 100644 go/metalstack/infra/v2/boot.pb.go create mode 100644 go/metalstack/infra/v2/infrav2connect/boot.connect.go create mode 100644 go/tests/mocks/metalstack/infra/v2/infrav2connect/BootServiceClient.go create mode 100644 go/tests/mocks/metalstack/infra/v2/infrav2connect/BootServiceHandler.go create mode 100644 proto/metalstack/infra/v2/boot.proto create mode 100644 python/metalstack/infra/v2/boot_connect.py create mode 100644 python/metalstack/infra/v2/boot_pb2.py create mode 100644 python/metalstack/infra/v2/boot_pb2.pyi diff --git a/doc/index.html b/doc/index.html index d5b61b91..647e777f 100644 --- a/doc/index.html +++ b/doc/index.html @@ -215,6 +215,10 @@

Table of Contents

EInfraRole +
  • + EMachineRole +
  • +
  • EOptimisticLockingStrategy
  • @@ -260,6 +264,10 @@

    Table of Contents

    XFile-level Extensions +
  • + XFile-level Extensions +
  • + @@ -895,6 +903,10 @@

    Table of Contents

    MMachineDiskQuery +
  • + MMachineFRU +
  • +
  • MMachineFRUQuery
  • @@ -907,6 +919,10 @@

    Table of Contents

    MMachineHardwareQuery +
  • + MMachineIPMI +
  • +
  • MMachineIPMIQuery
  • @@ -1656,6 +1672,10 @@

    Table of Contents

    MToken +
  • + MToken.MachineRolesEntry +
  • +
  • MToken.ProjectRolesEntry
  • @@ -1668,6 +1688,10 @@

    Table of Contents

    MTokenServiceCreateRequest +
  • + MTokenServiceCreateRequest.MachineRolesEntry +
  • +
  • MTokenServiceCreateRequest.ProjectRolesEntry
  • @@ -1716,6 +1740,10 @@

    Table of Contents

    MTokenServiceUpdateRequest +
  • + MTokenServiceUpdateRequest.MachineRolesEntry +
  • +
  • MTokenServiceUpdateRequest.ProjectRolesEntry
  • @@ -1849,6 +1877,10 @@

    Table of Contents

    MMethodServiceTokenScopedListResponse +
  • + MMethodServiceTokenScopedListResponse.MachineRolesEntry +
  • +
  • MMethodServiceTokenScopedListResponse.ProjectRolesEntry
  • @@ -1945,6 +1977,69 @@

    Table of Contents

    +
  • + metalstack/infra/v2/boot.proto + +
  • + +
  • metalstack/infra/v2/event.proto