mergetbapi 1.3.27__tar.gz → 1.3.28__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/PKG-INFO +1 -1
  2. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/portal/v1/__init__.py +285 -61
  3. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/xir/__init__.py +5 -0
  4. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi.egg-info/PKG-INFO +1 -1
  5. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/LICENSE.md +0 -0
  6. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/README.md +0 -0
  7. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/__init__.py +0 -0
  8. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/google/__init__.py +0 -0
  9. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/google/api/__init__.py +0 -0
  10. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/grpc/__init__.py +0 -0
  11. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/grpc/gateway/__init__.py +0 -0
  12. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/grpc/gateway/protoc_gen_openapiv2/__init__.py +0 -0
  13. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/grpc/gateway/protoc_gen_openapiv2/options/__init__.py +0 -0
  14. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/portal/__init__.py +0 -0
  15. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/reconcile/__init__.py +0 -0
  16. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi/validator/__init__.py +0 -0
  17. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi.egg-info/SOURCES.txt +0 -0
  18. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi.egg-info/dependency_links.txt +0 -0
  19. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi.egg-info/not-zip-safe +0 -0
  20. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi.egg-info/requires.txt +0 -0
  21. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/mergetbapi.egg-info/top_level.txt +0 -0
  22. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/setup.cfg +0 -0
  23. {mergetbapi-1.3.27 → mergetbapi-1.3.28}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mergetbapi
3
- Version: 1.3.27
3
+ Version: 1.3.28
4
4
  Summary: Client interface to the MergeTB API
5
5
  Home-page: https://gitlab.com/mergetb/api
6
6
  Author: Brian Kocoloski
@@ -105,6 +105,22 @@ class UserState(betterproto.Enum):
105
105
  """
106
106
 
107
107
 
108
+ class ImageStatus(betterproto.Enum):
109
+ """
110
+ Images =====================================================================
111
+ """
112
+
113
+ ImageNotSet = 0
114
+ ImageNotReady = 1
115
+ ImageReady = 2
116
+
117
+
118
+ class CreateImageMode(betterproto.Enum):
119
+ CreateImageModeNotSet = 0
120
+ DiskOnly = 1
121
+ AllState = 2
122
+
123
+
108
124
  class MemberRole(betterproto.Enum):
109
125
  Member = 0
110
126
  Maintainer = 1
@@ -164,11 +180,6 @@ class RealizeResponseCode(betterproto.Enum):
164
180
  InternalError = 3
165
181
 
166
182
 
167
- class SaveDiskMaterializationMode(betterproto.Enum):
168
- DiskOnly = 0
169
- AllState = 1
170
-
171
-
172
183
  class RebootMaterializationMode(betterproto.Enum):
173
184
  Reboot = 0
174
185
  Cycle = 1
@@ -1318,6 +1329,95 @@ class GetPolicyResponse(betterproto.Message):
1318
1329
  policy: str = betterproto.string_field(1)
1319
1330
 
1320
1331
 
1332
+ @dataclass(eq=False, repr=False)
1333
+ class Image(betterproto.Message):
1334
+ name: str = betterproto.string_field(1)
1335
+ """Image attributes"""
1336
+
1337
+ size: str = betterproto.string_field(2)
1338
+ os: str = betterproto.string_field(3)
1339
+ description: str = betterproto.string_field(4)
1340
+ image_mode: "CreateImageMode" = betterproto.enum_field(5)
1341
+ creator: str = betterproto.string_field(6)
1342
+ facilities: List[str] = betterproto.string_field(7)
1343
+ status: "ImageStatus" = betterproto.enum_field(8)
1344
+ access_mode: "AccessMode" = betterproto.enum_field(9)
1345
+ created: datetime = betterproto.message_field(10)
1346
+
1347
+
1348
+ @dataclass(eq=False, repr=False)
1349
+ class GetImagesRequest(betterproto.Message):
1350
+ filter: "FilterMode" = betterproto.enum_field(1)
1351
+
1352
+
1353
+ @dataclass(eq=False, repr=False)
1354
+ class GetImagesResponse(betterproto.Message):
1355
+ images: List["Image"] = betterproto.message_field(1)
1356
+
1357
+
1358
+ @dataclass(eq=False, repr=False)
1359
+ class GetImageRequest(betterproto.Message):
1360
+ imagename: str = betterproto.string_field(1)
1361
+
1362
+
1363
+ @dataclass(eq=False, repr=False)
1364
+ class GetImageResponse(betterproto.Message):
1365
+ image: "Image" = betterproto.message_field(1)
1366
+
1367
+
1368
+ @dataclass(eq=False, repr=False)
1369
+ class UpdateImageRequest(betterproto.Message):
1370
+ """Only some fields of an Image may be updated."""
1371
+
1372
+ imagename: str = betterproto.string_field(1)
1373
+ size: str = betterproto.string_field(2)
1374
+ os: str = betterproto.string_field(3)
1375
+ description: str = betterproto.string_field(4)
1376
+ facilities: List[str] = betterproto.string_field(5)
1377
+ status: "ImageStatus" = betterproto.enum_field(6)
1378
+ access_mode: "AccessModeUpdate" = betterproto.message_field(7)
1379
+
1380
+
1381
+ @dataclass(eq=False, repr=False)
1382
+ class UpdateImageResponse(betterproto.Message):
1383
+ pass
1384
+
1385
+
1386
+ @dataclass(eq=False, repr=False)
1387
+ class DeleteImageRequest(betterproto.Message):
1388
+ imagename: str = betterproto.string_field(1)
1389
+
1390
+
1391
+ @dataclass(eq=False, repr=False)
1392
+ class DeleteImageResponse(betterproto.Message):
1393
+ pass
1394
+
1395
+
1396
+ @dataclass(eq=False, repr=False)
1397
+ class CreateImageRequest(betterproto.Message):
1398
+ image_mode: "CreateImageMode" = betterproto.enum_field(1)
1399
+ project: str = betterproto.string_field(2)
1400
+ experiment: str = betterproto.string_field(3)
1401
+ realization: str = betterproto.string_field(4)
1402
+ hostname: str = betterproto.string_field(5)
1403
+ """
1404
+ hostname is the facility's experimental node name as defined
1405
+ in the user-defined experiment model.
1406
+ """
1407
+
1408
+ imagename: str = betterproto.string_field(6)
1409
+ """What to call the image - must be unique across all facilities."""
1410
+
1411
+ access_mode: "AccessMode" = betterproto.enum_field(7)
1412
+ os: str = betterproto.string_field(8)
1413
+ description: str = betterproto.string_field(9)
1414
+
1415
+
1416
+ @dataclass(eq=False, repr=False)
1417
+ class CreateImageResponse(betterproto.Message):
1418
+ pass
1419
+
1420
+
1321
1421
  @dataclass(eq=False, repr=False)
1322
1422
  class HealthRequest(betterproto.Message):
1323
1423
  """
@@ -1487,6 +1587,8 @@ class Facility(betterproto.Message):
1487
1587
  certificate: str = betterproto.string_field(6)
1488
1588
  cacertificate: str = betterproto.string_field(7)
1489
1589
  ver: int = betterproto.int64_field(8)
1590
+ properties: "__xir__.FacilityProperties" = betterproto.message_field(9)
1591
+ """Expose the facility properties from the model."""
1490
1592
 
1491
1593
 
1492
1594
  @dataclass(eq=False, repr=False)
@@ -1521,6 +1623,7 @@ class GetFacilitiesResponse(betterproto.Message):
1521
1623
  class GetFacilityRequest(betterproto.Message):
1522
1624
  name: str = betterproto.string_field(1)
1523
1625
  with_model: bool = betterproto.bool_field(2)
1626
+ with_images: bool = betterproto.bool_field(3)
1524
1627
 
1525
1628
 
1526
1629
  @dataclass(eq=False, repr=False)
@@ -1529,6 +1632,8 @@ class GetFacilityResponse(betterproto.Message):
1529
1632
  model: "__xir__.Facility" = betterproto.message_field(2)
1530
1633
  """@gotags: mask:"zero"""
1531
1634
 
1635
+ images: List[str] = betterproto.string_field(3)
1636
+
1532
1637
 
1533
1638
  @dataclass(eq=False, repr=False)
1534
1639
  class UpdateFacilityRequest(betterproto.Message):
@@ -2489,26 +2594,6 @@ class Actuator(betterproto.Message):
2489
2594
  model: "__xir__.Actuator" = betterproto.message_field(2)
2490
2595
 
2491
2596
 
2492
- @dataclass(eq=False, repr=False)
2493
- class SaveDiskMaterializationRequest(betterproto.Message):
2494
- mode: "SaveDiskMaterializationMode" = betterproto.enum_field(1)
2495
- project: str = betterproto.string_field(2)
2496
- experiment: str = betterproto.string_field(3)
2497
- realization: str = betterproto.string_field(4)
2498
- hostnames: List[str] = betterproto.string_field(5)
2499
- """
2500
- hostnames are the facility's experimental node's name as defined
2501
- in the user-defined experiment model.
2502
- """
2503
-
2504
- ver: int = betterproto.int64_field(6)
2505
-
2506
-
2507
- @dataclass(eq=False, repr=False)
2508
- class SaveDiskMaterializationResponse(betterproto.Message):
2509
- image_names: List[str] = betterproto.string_field(1)
2510
-
2511
-
2512
2597
  @dataclass(eq=False, repr=False)
2513
2598
  class RebootMaterializationRequest(betterproto.Message):
2514
2599
  mode: "RebootMaterializationMode" = betterproto.enum_field(1)
@@ -3991,6 +4076,91 @@ class WorkspaceStub(betterproto.ServiceStub):
3991
4076
  metadata=metadata,
3992
4077
  )
3993
4078
 
4079
+ async def get_images(
4080
+ self,
4081
+ get_images_request: "GetImagesRequest",
4082
+ *,
4083
+ timeout: Optional[float] = None,
4084
+ deadline: Optional["Deadline"] = None,
4085
+ metadata: Optional["MetadataLike"] = None
4086
+ ) -> "GetImagesResponse":
4087
+ return await self._unary_unary(
4088
+ "/portal.v1.Workspace/GetImages",
4089
+ get_images_request,
4090
+ GetImagesResponse,
4091
+ timeout=timeout,
4092
+ deadline=deadline,
4093
+ metadata=metadata,
4094
+ )
4095
+
4096
+ async def get_image(
4097
+ self,
4098
+ get_image_request: "GetImageRequest",
4099
+ *,
4100
+ timeout: Optional[float] = None,
4101
+ deadline: Optional["Deadline"] = None,
4102
+ metadata: Optional["MetadataLike"] = None
4103
+ ) -> "GetImageResponse":
4104
+ return await self._unary_unary(
4105
+ "/portal.v1.Workspace/GetImage",
4106
+ get_image_request,
4107
+ GetImageResponse,
4108
+ timeout=timeout,
4109
+ deadline=deadline,
4110
+ metadata=metadata,
4111
+ )
4112
+
4113
+ async def update_image(
4114
+ self,
4115
+ update_image_request: "UpdateImageRequest",
4116
+ *,
4117
+ timeout: Optional[float] = None,
4118
+ deadline: Optional["Deadline"] = None,
4119
+ metadata: Optional["MetadataLike"] = None
4120
+ ) -> "UpdateImageResponse":
4121
+ return await self._unary_unary(
4122
+ "/portal.v1.Workspace/UpdateImage",
4123
+ update_image_request,
4124
+ UpdateImageResponse,
4125
+ timeout=timeout,
4126
+ deadline=deadline,
4127
+ metadata=metadata,
4128
+ )
4129
+
4130
+ async def delete_image(
4131
+ self,
4132
+ delete_image_request: "DeleteImageRequest",
4133
+ *,
4134
+ timeout: Optional[float] = None,
4135
+ deadline: Optional["Deadline"] = None,
4136
+ metadata: Optional["MetadataLike"] = None
4137
+ ) -> "DeleteImageResponse":
4138
+ return await self._unary_unary(
4139
+ "/portal.v1.Workspace/DeleteImage",
4140
+ delete_image_request,
4141
+ DeleteImageResponse,
4142
+ timeout=timeout,
4143
+ deadline=deadline,
4144
+ metadata=metadata,
4145
+ )
4146
+
4147
+ async def create_image(
4148
+ self,
4149
+ create_image_request: "CreateImageRequest",
4150
+ *,
4151
+ timeout: Optional[float] = None,
4152
+ deadline: Optional["Deadline"] = None,
4153
+ metadata: Optional["MetadataLike"] = None
4154
+ ) -> "CreateImageResponse":
4155
+ return await self._unary_unary(
4156
+ "/portal.v1.Workspace/CreateImage",
4157
+ create_image_request,
4158
+ CreateImageResponse,
4159
+ timeout=timeout,
4160
+ deadline=deadline,
4161
+ metadata=metadata,
4162
+ )
4163
+
3994
4164
  async def health(
3995
4165
  self,
3996
4166
  health_request: "HealthRequest",
@@ -4262,23 +4432,6 @@ class MaterializeStub(betterproto.ServiceStub):
4262
4432
  metadata=metadata,
4263
4433
  )
4264
4434
 
4265
- async def save_disk_materialization(
4266
- self,
4267
- save_disk_materialization_request: "SaveDiskMaterializationRequest",
4268
- *,
4269
- timeout: Optional[float] = None,
4270
- deadline: Optional["Deadline"] = None,
4271
- metadata: Optional["MetadataLike"] = None
4272
- ) -> "SaveDiskMaterializationResponse":
4273
- return await self._unary_unary(
4274
- "/portal.v1.Materialize/SaveDiskMaterialization",
4275
- save_disk_materialization_request,
4276
- SaveDiskMaterializationResponse,
4277
- timeout=timeout,
4278
- deadline=deadline,
4279
- metadata=metadata,
4280
- )
4281
-
4282
4435
  async def new_ingress(
4283
4436
  self,
4284
4437
  new_ingress_request: "NewIngressRequest",
@@ -5724,6 +5877,31 @@ class WorkspaceBase(ServiceBase):
5724
5877
  ) -> "UpdateEntityTypeConfigurationsResponse":
5725
5878
  raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
5726
5879
 
5880
+ async def get_images(
5881
+ self, get_images_request: "GetImagesRequest"
5882
+ ) -> "GetImagesResponse":
5883
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
5884
+
5885
+ async def get_image(
5886
+ self, get_image_request: "GetImageRequest"
5887
+ ) -> "GetImageResponse":
5888
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
5889
+
5890
+ async def update_image(
5891
+ self, update_image_request: "UpdateImageRequest"
5892
+ ) -> "UpdateImageResponse":
5893
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
5894
+
5895
+ async def delete_image(
5896
+ self, delete_image_request: "DeleteImageRequest"
5897
+ ) -> "DeleteImageResponse":
5898
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
5899
+
5900
+ async def create_image(
5901
+ self, create_image_request: "CreateImageRequest"
5902
+ ) -> "CreateImageResponse":
5903
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
5904
+
5727
5905
  async def health(self, health_request: "HealthRequest") -> "HealthResponse":
5728
5906
  raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
5729
5907
 
@@ -6131,6 +6309,41 @@ class WorkspaceBase(ServiceBase):
6131
6309
  response = await self.update_entity_type_configurations(request)
6132
6310
  await stream.send_message(response)
6133
6311
 
6312
+ async def __rpc_get_images(
6313
+ self, stream: "grpclib.server.Stream[GetImagesRequest, GetImagesResponse]"
6314
+ ) -> None:
6315
+ request = await stream.recv_message()
6316
+ response = await self.get_images(request)
6317
+ await stream.send_message(response)
6318
+
6319
+ async def __rpc_get_image(
6320
+ self, stream: "grpclib.server.Stream[GetImageRequest, GetImageResponse]"
6321
+ ) -> None:
6322
+ request = await stream.recv_message()
6323
+ response = await self.get_image(request)
6324
+ await stream.send_message(response)
6325
+
6326
+ async def __rpc_update_image(
6327
+ self, stream: "grpclib.server.Stream[UpdateImageRequest, UpdateImageResponse]"
6328
+ ) -> None:
6329
+ request = await stream.recv_message()
6330
+ response = await self.update_image(request)
6331
+ await stream.send_message(response)
6332
+
6333
+ async def __rpc_delete_image(
6334
+ self, stream: "grpclib.server.Stream[DeleteImageRequest, DeleteImageResponse]"
6335
+ ) -> None:
6336
+ request = await stream.recv_message()
6337
+ response = await self.delete_image(request)
6338
+ await stream.send_message(response)
6339
+
6340
+ async def __rpc_create_image(
6341
+ self, stream: "grpclib.server.Stream[CreateImageRequest, CreateImageResponse]"
6342
+ ) -> None:
6343
+ request = await stream.recv_message()
6344
+ response = await self.create_image(request)
6345
+ await stream.send_message(response)
6346
+
6134
6347
  async def __rpc_health(
6135
6348
  self, stream: "grpclib.server.Stream[HealthRequest, HealthResponse]"
6136
6349
  ) -> None:
@@ -6452,6 +6665,36 @@ class WorkspaceBase(ServiceBase):
6452
6665
  UpdateEntityTypeConfigurationsRequest,
6453
6666
  UpdateEntityTypeConfigurationsResponse,
6454
6667
  ),
6668
+ "/portal.v1.Workspace/GetImages": grpclib.const.Handler(
6669
+ self.__rpc_get_images,
6670
+ grpclib.const.Cardinality.UNARY_UNARY,
6671
+ GetImagesRequest,
6672
+ GetImagesResponse,
6673
+ ),
6674
+ "/portal.v1.Workspace/GetImage": grpclib.const.Handler(
6675
+ self.__rpc_get_image,
6676
+ grpclib.const.Cardinality.UNARY_UNARY,
6677
+ GetImageRequest,
6678
+ GetImageResponse,
6679
+ ),
6680
+ "/portal.v1.Workspace/UpdateImage": grpclib.const.Handler(
6681
+ self.__rpc_update_image,
6682
+ grpclib.const.Cardinality.UNARY_UNARY,
6683
+ UpdateImageRequest,
6684
+ UpdateImageResponse,
6685
+ ),
6686
+ "/portal.v1.Workspace/DeleteImage": grpclib.const.Handler(
6687
+ self.__rpc_delete_image,
6688
+ grpclib.const.Cardinality.UNARY_UNARY,
6689
+ DeleteImageRequest,
6690
+ DeleteImageResponse,
6691
+ ),
6692
+ "/portal.v1.Workspace/CreateImage": grpclib.const.Handler(
6693
+ self.__rpc_create_image,
6694
+ grpclib.const.Cardinality.UNARY_UNARY,
6695
+ CreateImageRequest,
6696
+ CreateImageResponse,
6697
+ ),
6455
6698
  "/portal.v1.Workspace/Health": grpclib.const.Handler(
6456
6699
  self.__rpc_health,
6457
6700
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -6619,11 +6862,6 @@ class MaterializeBase(ServiceBase):
6619
6862
  ) -> "RebootMaterializationResponse":
6620
6863
  raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
6621
6864
 
6622
- async def save_disk_materialization(
6623
- self, save_disk_materialization_request: "SaveDiskMaterializationRequest"
6624
- ) -> "SaveDiskMaterializationResponse":
6625
- raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
6626
-
6627
6865
  async def new_ingress(
6628
6866
  self, new_ingress_request: "NewIngressRequest"
6629
6867
  ) -> "NewIngressResponse":
@@ -6697,14 +6935,6 @@ class MaterializeBase(ServiceBase):
6697
6935
  response = await self.reboot_materialization(request)
6698
6936
  await stream.send_message(response)
6699
6937
 
6700
- async def __rpc_save_disk_materialization(
6701
- self,
6702
- stream: "grpclib.server.Stream[SaveDiskMaterializationRequest, SaveDiskMaterializationResponse]",
6703
- ) -> None:
6704
- request = await stream.recv_message()
6705
- response = await self.save_disk_materialization(request)
6706
- await stream.send_message(response)
6707
-
6708
6938
  async def __rpc_new_ingress(
6709
6939
  self, stream: "grpclib.server.Stream[NewIngressRequest, NewIngressResponse]"
6710
6940
  ) -> None:
@@ -6770,12 +7000,6 @@ class MaterializeBase(ServiceBase):
6770
7000
  RebootMaterializationRequest,
6771
7001
  RebootMaterializationResponse,
6772
7002
  ),
6773
- "/portal.v1.Materialize/SaveDiskMaterialization": grpclib.const.Handler(
6774
- self.__rpc_save_disk_materialization,
6775
- grpclib.const.Cardinality.UNARY_UNARY,
6776
- SaveDiskMaterializationRequest,
6777
- SaveDiskMaterializationResponse,
6778
- ),
6779
7003
  "/portal.v1.Materialize/NewIngress": grpclib.const.Handler(
6780
7004
  self.__rpc_new_ingress,
6781
7005
  grpclib.const.Cardinality.UNARY_UNARY,
@@ -841,6 +841,11 @@ class FacilityProperties(betterproto.Message):
841
841
  what the default rlz tag constraint should be when using the facility
842
842
  """
843
843
 
844
+ custom_image_support: bool = betterproto.bool_field(3)
845
+ """Non-key-value properties"""
846
+
847
+ standard_images: List[str] = betterproto.string_field(4)
848
+
844
849
 
845
850
  @dataclass(eq=False, repr=False)
846
851
  class Proc(betterproto.Message):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mergetbapi
3
- Version: 1.3.27
3
+ Version: 1.3.28
4
4
  Summary: Client interface to the MergeTB API
5
5
  Home-page: https://gitlab.com/mergetb/api
6
6
  Author: Brian Kocoloski
File without changes
File without changes
File without changes
File without changes