2626from __future__ import annotations
2727
2828from abc import abstractmethod
29+ from datetime import datetime
2930from typing import TYPE_CHECKING , Tuple , Dict , List
3031
31- from fabric_mb .message_bus .messages .poa_avro import PoaAvro
3232from fabric_mb .message_bus .messages .result_avro import ResultAvro
3333from fabric_mb .message_bus .messages .result_delegation_avro import ResultDelegationAvro
3434from fabric_mb .message_bus .messages .result_poa_avro import ResultPoaAvro
3838from fabric_mb .message_bus .messages .result_slice_avro import ResultSliceAvro
3939from fabric_mb .message_bus .messages .result_string_avro import ResultStringAvro
4040from fabric_mb .message_bus .messages .slice_avro import SliceAvro
41+ from fim .user import GraphFormat
4142
4243from fabric_cf .actor .core .apis .abc_management_object import ABCManagementObject
4344from fabric_cf .actor .core .container .maintenance import Site
@@ -237,7 +238,8 @@ def get_sites(self, *, caller: AuthToken, site: str) -> ResultSitesAvro:
237238 def get_reservations (self , * , caller : AuthToken , states : List [int ] = None ,
238239 slice_id : ID = None , rid : ID = None , oidc_claim_sub : str = None ,
239240 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 :
241243 """
242244 Get Reservations
243245 @param states states
@@ -251,12 +253,16 @@ def get_reservations(self, *, caller: AuthToken, states: List[int] = None,
251253 @param node_id node id
252254 Obtains all reservations with error information in case of failure
253255 @param caller caller
256+ @param host host
257+ @param ip_subnet ip subnet
258+
254259 @return returns list of the reservations
255260 """
256261
257262 def get_slices (self , * , slice_id : ID , caller : AuthToken , slice_name : str = None , email : str = None ,
258263 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 :
260266 """
261267 Obtains all slices.
262268 @param slice_id slice id
@@ -268,13 +274,73 @@ def get_slices(self, *, slice_id: ID, caller: AuthToken, slice_name: str = None,
268274 @param offset offset
269275 @param caller caller
270276 @param user_id user_id
277+ @param search: search term applied
278+ @param exact_match: Exact Match for Search term
271279 @return returns list of slices
272280 """
273281
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+
274324 def remove_slice (self , * , slice_id : ID , caller : AuthToken ) -> ResultAvro :
275325 """
276326 Removes the specified slice
277327 @param slice_id slice id
278328 @param caller caller
279329 @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
280346 """
0 commit comments