26
26
from __future__ import annotations
27
27
28
28
from abc import abstractmethod
29
+ from datetime import datetime
29
30
from typing import TYPE_CHECKING , Tuple , Dict , List
30
31
31
- from fabric_mb .message_bus .messages .poa_avro import PoaAvro
32
32
from fabric_mb .message_bus .messages .result_avro import ResultAvro
33
33
from fabric_mb .message_bus .messages .result_delegation_avro import ResultDelegationAvro
34
34
from fabric_mb .message_bus .messages .result_poa_avro import ResultPoaAvro
38
38
from fabric_mb .message_bus .messages .result_slice_avro import ResultSliceAvro
39
39
from fabric_mb .message_bus .messages .result_string_avro import ResultStringAvro
40
40
from fabric_mb .message_bus .messages .slice_avro import SliceAvro
41
+ from fim .user import GraphFormat
41
42
42
43
from fabric_cf .actor .core .apis .abc_management_object import ABCManagementObject
43
44
from fabric_cf .actor .core .container .maintenance import Site
@@ -237,7 +238,8 @@ def get_sites(self, *, caller: AuthToken, site: str) -> ResultSitesAvro:
237
238
def get_reservations (self , * , caller : AuthToken , states : List [int ] = None ,
238
239
slice_id : ID = None , rid : ID = None , oidc_claim_sub : str = None ,
239
240
email : str = None , rid_list : List [str ] = None , type : str = None ,
240
- site : str = None , node_id : str = None ) -> ResultReservationAvro :
241
+ site : str = None , node_id : str = None ,
242
+ host : str = None , ip_subnet : str = None ) -> ResultReservationAvro :
241
243
"""
242
244
Get Reservations
243
245
@param states states
@@ -251,12 +253,16 @@ def get_reservations(self, *, caller: AuthToken, states: List[int] = None,
251
253
@param node_id node id
252
254
Obtains all reservations with error information in case of failure
253
255
@param caller caller
256
+ @param host host
257
+ @param ip_subnet ip subnet
258
+
254
259
@return returns list of the reservations
255
260
"""
256
261
257
262
def get_slices (self , * , slice_id : ID , caller : AuthToken , slice_name : str = None , email : str = None ,
258
263
states : List [int ] = None , project : str = None , limit : int = None ,
259
- offset : int = None , user_id : str = None ) -> ResultSliceAvro :
264
+ offset : int = None , user_id : str = None , search : str = None ,
265
+ exact_match : bool = False ) -> ResultSliceAvro :
260
266
"""
261
267
Obtains all slices.
262
268
@param slice_id slice id
@@ -268,13 +274,73 @@ def get_slices(self, *, slice_id: ID, caller: AuthToken, slice_name: str = None,
268
274
@param offset offset
269
275
@param caller caller
270
276
@param user_id user_id
277
+ @param search: search term applied
278
+ @param exact_match: Exact Match for Search term
271
279
@return returns list of slices
272
280
"""
273
281
282
+ @abstractmethod
283
+ def increment_metrics (self , * , project_id : str , oidc_sub : str , slice_count : int = 1 ) -> bool :
284
+ """
285
+ Add or update metrics
286
+
287
+ @param project_id project id
288
+ @param oidc_sub oidc sub
289
+ @param slice_count slice_count
290
+
291
+ @return true or false
292
+
293
+ @throws Exception in case of error
294
+ """
295
+
296
+ @abstractmethod
297
+ def get_metrics (self , * , project_id : str , oidc_sub : str , excluded_projects : List [str ] = None ) -> list :
298
+ """
299
+ Get metrics
300
+
301
+ @param project_id project id
302
+ @param oidc_sub oidc sub
303
+ @param excluded_projects excluded_projects
304
+
305
+ @return list of metric information
306
+
307
+ @throws Exception in case of error
308
+ """
309
+
310
+ def get_slice_count (self , * , caller : AuthToken , email : str = None , states : List [int ] = None ,
311
+ project : str = None , user_id : str = None , excluded_projects : List [str ] = None ) -> int :
312
+ """
313
+ Obtains Slice count matching the filter criteria.
314
+
315
+ @param email email
316
+ @param project project id
317
+ @param states slice states
318
+ @param caller caller
319
+ @param user_id user_id
320
+ @param excluded_projects excluded_projects
321
+ @return returns number of slices
322
+ """
323
+
274
324
def remove_slice (self , * , slice_id : ID , caller : AuthToken ) -> ResultAvro :
275
325
"""
276
326
Removes the specified slice
277
327
@param slice_id slice id
278
328
@param caller caller
279
329
@return true for success; false otherwise
330
+ """
331
+
332
+ def build_broker_query_model (self , level_0_broker_query_model : str , level : int ,
333
+ graph_format : GraphFormat = GraphFormat .GRAPHML ,
334
+ start : datetime = None , end : datetime = None , includes : str = None ,
335
+ excludes : str = None ) -> str :
336
+ """
337
+ Build the BQM Model using current usage
338
+ @param level_0_broker_query_model Capacity Model
339
+ @param level: level of details
340
+ @param graph_format: Graph Format
341
+ @param start: start time
342
+ @param end: end time
343
+ @param includes: comma separated lists of sites to include
344
+ @param excludes: comma separated lists of sites to exclude
345
+ @return BQM
280
346
"""
0 commit comments