From c9d08f9bf3e093a8d370555887c04e1af60a5536 Mon Sep 17 00:00:00 2001 From: Stefan Majer Date: Sun, 8 Feb 2026 09:58:23 +0100 Subject: [PATCH] Size Reservations --- doc/index.html | 678 +++++++++++++++++- go.mod | 12 +- go.sum | 24 +- go/client/client.go | 76 +- .../size_reservation.connect.go | 222 ++++++ go/metalstack/admin/v2/filesystem.pb.go | 14 +- go/metalstack/admin/v2/image.pb.go | 14 +- go/metalstack/admin/v2/network.pb.go | 21 +- go/metalstack/admin/v2/partition.pb.go | 25 +- go/metalstack/admin/v2/project.pb.go | 7 +- go/metalstack/admin/v2/size.pb.go | 14 +- go/metalstack/admin/v2/size_reservation.pb.go | 564 +++++++++++++++ .../apiv2connect/size_reservation.connect.go | 152 ++++ go/metalstack/api/v2/filesystem.pb.go | 41 +- go/metalstack/api/v2/image.pb.go | 21 +- go/metalstack/api/v2/ip.pb.go | 21 +- go/metalstack/api/v2/network.pb.go | 14 +- go/metalstack/api/v2/partition.pb.go | 6 +- go/metalstack/api/v2/predefined_rules.pb.go | 36 +- go/metalstack/api/v2/project.pb.go | 14 +- go/metalstack/api/v2/size.pb.go | 14 +- go/metalstack/api/v2/size_reservation.pb.go | 549 ++++++++++++++ go/permissions/servicepermissions.go | 31 + go/tests/mock_clients.go | 180 ++--- go/tests/mocks/client/Adminv2.go | 46 ++ go/tests/mocks/client/Apiv2.go | 46 ++ .../SizeReservationServiceClient.go | 311 ++++++++ .../SizeReservationServiceHandler.go | 311 ++++++++ .../SizeReservationServiceClient.go | 175 +++++ .../SizeReservationServiceHandler.go | 175 +++++ go/tests/validation/filesystem_test.go | 2 +- go/tests/validation/ip_test.go | 12 +- go/tests/validation/partition_test.go | 43 ++ go/tests/validation/size-reservation_test.go | 90 +++ js/buf/validate/validate_pb.ts | 31 +- js/metalstack/admin/v2/filesystem_pb.ts | 2 +- js/metalstack/admin/v2/image_pb.ts | 2 +- js/metalstack/admin/v2/network_pb.ts | 2 +- js/metalstack/admin/v2/partition_pb.ts | 3 +- js/metalstack/admin/v2/project_pb.ts | 3 +- js/metalstack/admin/v2/size_pb.ts | 2 +- js/metalstack/admin/v2/size_reservation_pb.ts | 279 +++++++ js/metalstack/api/v2/filesystem_pb.ts | 2 +- js/metalstack/api/v2/image_pb.ts | 2 +- js/metalstack/api/v2/ip_pb.ts | 2 +- js/metalstack/api/v2/network_pb.ts | 2 +- js/metalstack/api/v2/partition_pb.ts | 2 +- js/metalstack/api/v2/predefined_rules_pb.ts | 14 +- js/metalstack/api/v2/project_pb.ts | 2 +- js/metalstack/api/v2/size_pb.ts | 2 +- js/metalstack/api/v2/size_reservation_pb.ts | 278 +++++++ proto/buf.lock | 4 +- proto/metalstack/admin/v2/filesystem.proto | 10 +- proto/metalstack/admin/v2/image.proto | 10 +- proto/metalstack/admin/v2/network.proto | 15 +- proto/metalstack/admin/v2/partition.proto | 21 +- proto/metalstack/admin/v2/project.proto | 6 +- proto/metalstack/admin/v2/size.proto | 10 +- .../admin/v2/size_reservation.proto | 96 +++ proto/metalstack/api/v2/filesystem.proto | 35 +- proto/metalstack/api/v2/image.proto | 15 +- proto/metalstack/api/v2/ip.proto | 15 +- proto/metalstack/api/v2/network.proto | 10 +- proto/metalstack/api/v2/partition.proto | 2 +- .../metalstack/api/v2/predefined_rules.proto | 6 + proto/metalstack/api/v2/project.proto | 10 +- proto/metalstack/api/v2/size.proto | 10 +- .../metalstack/api/v2/size_reservation.proto | 98 +++ python/metalstack/admin/v2/filesystem_pb2.py | 24 +- python/metalstack/admin/v2/image_pb2.py | 32 +- python/metalstack/admin/v2/network_pb2.py | 50 +- python/metalstack/admin/v2/partition_pb2.py | 40 +- python/metalstack/admin/v2/project_pb2.py | 17 +- python/metalstack/admin/v2/project_pb2.pyi | 1 + python/metalstack/admin/v2/size_pb2.py | 24 +- .../admin/v2/size_reservation_connect.py | 315 ++++++++ .../admin/v2/size_reservation_pb2.py | 79 ++ .../admin/v2/size_reservation_pb2.pyi | 71 ++ python/metalstack/api/v2/filesystem_pb2.py | 102 +-- python/metalstack/api/v2/image_pb2.py | 54 +- python/metalstack/api/v2/ip_pb2.py | 66 +- python/metalstack/api/v2/network_pb2.py | 88 +-- python/metalstack/api/v2/partition_pb2.py | 26 +- .../metalstack/api/v2/predefined_rules_pb2.py | 4 +- .../api/v2/predefined_rules_pb2.pyi | 2 + python/metalstack/api/v2/project_pb2.py | 112 +-- python/metalstack/api/v2/size_pb2.py | 24 +- .../api/v2/size_reservation_connect.py | 185 +++++ .../metalstack/api/v2/size_reservation_pb2.py | 88 +++ .../api/v2/size_reservation_pb2.pyi | 76 ++ python/metalstack/client/client.py | 8 + 91 files changed, 5697 insertions(+), 755 deletions(-) create mode 100644 go/metalstack/admin/v2/adminv2connect/size_reservation.connect.go create mode 100644 go/metalstack/admin/v2/size_reservation.pb.go create mode 100644 go/metalstack/api/v2/apiv2connect/size_reservation.connect.go create mode 100644 go/metalstack/api/v2/size_reservation.pb.go create mode 100644 go/tests/mocks/metalstack/admin/v2/adminv2connect/SizeReservationServiceClient.go create mode 100644 go/tests/mocks/metalstack/admin/v2/adminv2connect/SizeReservationServiceHandler.go create mode 100644 go/tests/mocks/metalstack/api/v2/apiv2connect/SizeReservationServiceClient.go create mode 100644 go/tests/mocks/metalstack/api/v2/apiv2connect/SizeReservationServiceHandler.go create mode 100644 go/tests/validation/partition_test.go create mode 100644 go/tests/validation/size-reservation_test.go create mode 100644 js/metalstack/admin/v2/size_reservation_pb.ts create mode 100644 js/metalstack/api/v2/size_reservation_pb.ts create mode 100644 proto/metalstack/admin/v2/size_reservation.proto create mode 100644 proto/metalstack/api/v2/size_reservation.proto create mode 100644 python/metalstack/admin/v2/size_reservation_connect.py create mode 100644 python/metalstack/admin/v2/size_reservation_pb2.py create mode 100644 python/metalstack/admin/v2/size_reservation_pb2.pyi create mode 100644 python/metalstack/api/v2/size_reservation_connect.py create mode 100644 python/metalstack/api/v2/size_reservation_pb2.py create mode 100644 python/metalstack/api/v2/size_reservation_pb2.pyi diff --git a/doc/index.html b/doc/index.html index 625d5d2e..1600ebdf 100644 --- a/doc/index.html +++ b/doc/index.html @@ -311,6 +311,10 @@

Table of Contents

XFile-level Extensions +
  • + XFile-level Extensions +
  • + @@ -1440,6 +1444,92 @@

    Table of Contents

    +
  • + metalstack/api/v2/size_reservation.proto + +
  • + + +
  • + metalstack/admin/v2/size_reservation.proto + +
  • + +
  • metalstack/api/v2/switch.proto