2022-11-13 13:21:12 +00:00
"""
2023-11-22 17:26:20 +00:00
Garage Administration API v0 + garage - v0 .9 .0
2022-11-13 13:21:12 +00:00
Administrate your Garage cluster programatically , including status , layout , keys , buckets , and maintainance tasks . * Disclaimer : The API is not stable yet , hence its v0 tag . The API can change at any time , and changes can include breaking backward compatibility . Read the changelog and upgrade your scripts before upgrading . Additionnaly , this specification is very early stage and can contain bugs , especially on error return codes / types that are not tested yet . Do not expect a well finished and polished product ! * # noqa: E501
2023-11-22 17:26:20 +00:00
The version of the OpenAPI document : v0 .9 .0
2022-11-13 13:21:12 +00:00
Generated by : https : / / openapi - generator . tech
"""
import re # noqa: F401
import sys # noqa: F401
from garage_admin_sdk . api_client import ApiClient , Endpoint as _Endpoint
from garage_admin_sdk . model_utils import ( # noqa: F401
check_allowed_values ,
check_validations ,
date ,
datetime ,
file_type ,
none_type ,
validate_and_convert_types
)
from garage_admin_sdk . model . add_node200_response_inner import AddNode200ResponseInner
2023-11-28 12:34:00 +00:00
from garage_admin_sdk . model . get_health200_response import GetHealth200Response
2022-11-13 13:21:12 +00:00
from garage_admin_sdk . model . get_nodes200_response import GetNodes200Response
class NodesApi ( object ) :
""" NOTE: This class is auto generated by OpenAPI Generator
Ref : https : / / openapi - generator . tech
Do not edit the class manually .
"""
def __init__ ( self , api_client = None ) :
if api_client is None :
api_client = ApiClient ( )
self . api_client = api_client
self . add_node_endpoint = _Endpoint (
settings = {
' response_type ' : ( [ AddNode200ResponseInner ] , ) ,
' auth ' : [
' bearerAuth '
] ,
' endpoint_path ' : ' /connect ' ,
' operation_id ' : ' add_node ' ,
' http_method ' : ' POST ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
' request_body ' ,
] ,
' required ' : [
' request_body ' ,
] ,
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
' request_body ' :
( [ str ] , ) ,
} ,
' attribute_map ' : {
} ,
' location_map ' : {
' request_body ' : ' body ' ,
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
' accept ' : [
' application/json '
] ,
' content_type ' : [
' application/json '
]
} ,
api_client = api_client
)
2023-11-28 12:34:00 +00:00
self . get_health_endpoint = _Endpoint (
settings = {
' response_type ' : ( GetHealth200Response , ) ,
' auth ' : [
' bearerAuth '
] ,
' endpoint_path ' : ' /health ' ,
' operation_id ' : ' get_health ' ,
' http_method ' : ' GET ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
] ,
' required ' : [ ] ,
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
} ,
' attribute_map ' : {
} ,
' location_map ' : {
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
' accept ' : [
' application/json '
] ,
' content_type ' : [ ] ,
} ,
api_client = api_client
)
2022-11-13 13:21:12 +00:00
self . get_nodes_endpoint = _Endpoint (
settings = {
' response_type ' : ( GetNodes200Response , ) ,
' auth ' : [
' bearerAuth '
] ,
' endpoint_path ' : ' /status ' ,
' operation_id ' : ' get_nodes ' ,
' http_method ' : ' GET ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
] ,
' required ' : [ ] ,
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
} ,
' attribute_map ' : {
} ,
' location_map ' : {
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
' accept ' : [
' application/json '
] ,
' content_type ' : [ ] ,
} ,
api_client = api_client
)
def add_node (
self ,
request_body ,
* * kwargs
) :
2023-11-28 12:34:00 +00:00
""" Connect a new node # noqa: E501
2022-11-13 13:21:12 +00:00
Instructs this Garage node to connect to other Garage nodes at specified ` < node_id > @ < net_address > ` . ` node_id ` is generated automatically on node start . # noqa: E501
This method makes a synchronous HTTP request by default . To make an
asynchronous HTTP request , please pass async_req = True
>> > thread = api . add_node ( request_body , async_req = True )
>> > result = thread . get ( )
Args :
request_body ( [ str ] ) :
Keyword Args :
_return_http_data_only ( bool ) : response data without head status
code and headers . Default is True .
_preload_content ( bool ) : if False , the urllib3 . HTTPResponse object
will be returned without reading / decoding response data .
Default is True .
_request_timeout ( int / float / tuple ) : timeout setting for this request . If
one number provided , it will be total request timeout . It can also
be a pair ( tuple ) of ( connection , read ) timeouts .
Default is None .
_check_input_type ( bool ) : specifies if type checking
should be done one the data sent to the server .
Default is True .
_check_return_type ( bool ) : specifies if type checking
should be done one the data received from the server .
Default is True .
_spec_property_naming ( bool ) : True if the variable names in the input data
are serialized names , as specified in the OpenAPI document .
False if the variable names in the input data
are pythonic names , e . g . snake case ( default )
_content_type ( str / None ) : force body content - type .
Default is None and content - type will be predicted by allowed
content - types and body .
_host_index ( int / None ) : specifies the index of the server
that we want to use .
Default is read from the configuration .
_request_auths ( list ) : set to override the auth_settings for an a single
request ; this effectively ignores the authentication
in the spec for a single request .
Default is None
async_req ( bool ) : execute request asynchronously
Returns :
[ AddNode200ResponseInner ]
If the method is called asynchronously , returns the request
thread .
"""
kwargs [ ' async_req ' ] = kwargs . get (
' async_req ' , False
)
kwargs [ ' _return_http_data_only ' ] = kwargs . get (
' _return_http_data_only ' , True
)
kwargs [ ' _preload_content ' ] = kwargs . get (
' _preload_content ' , True
)
kwargs [ ' _request_timeout ' ] = kwargs . get (
' _request_timeout ' , None
)
kwargs [ ' _check_input_type ' ] = kwargs . get (
' _check_input_type ' , True
)
kwargs [ ' _check_return_type ' ] = kwargs . get (
' _check_return_type ' , True
)
kwargs [ ' _spec_property_naming ' ] = kwargs . get (
' _spec_property_naming ' , False
)
kwargs [ ' _content_type ' ] = kwargs . get (
' _content_type ' )
kwargs [ ' _host_index ' ] = kwargs . get ( ' _host_index ' )
kwargs [ ' _request_auths ' ] = kwargs . get ( ' _request_auths ' , None )
kwargs [ ' request_body ' ] = \
request_body
return self . add_node_endpoint . call_with_http_info ( * * kwargs )
2023-11-28 12:34:00 +00:00
def get_health (
self ,
* * kwargs
) :
""" Cluster health report # noqa: E501
Returns the global status of the cluster , the number of connected nodes ( over the number of known ones ) , the number of healthy storage nodes ( over the declared ones ) , and the number of healthy partitions ( over the total ) . # noqa: E501
This method makes a synchronous HTTP request by default . To make an
asynchronous HTTP request , please pass async_req = True
>> > thread = api . get_health ( async_req = True )
>> > result = thread . get ( )
Keyword Args :
_return_http_data_only ( bool ) : response data without head status
code and headers . Default is True .
_preload_content ( bool ) : if False , the urllib3 . HTTPResponse object
will be returned without reading / decoding response data .
Default is True .
_request_timeout ( int / float / tuple ) : timeout setting for this request . If
one number provided , it will be total request timeout . It can also
be a pair ( tuple ) of ( connection , read ) timeouts .
Default is None .
_check_input_type ( bool ) : specifies if type checking
should be done one the data sent to the server .
Default is True .
_check_return_type ( bool ) : specifies if type checking
should be done one the data received from the server .
Default is True .
_spec_property_naming ( bool ) : True if the variable names in the input data
are serialized names , as specified in the OpenAPI document .
False if the variable names in the input data
are pythonic names , e . g . snake case ( default )
_content_type ( str / None ) : force body content - type .
Default is None and content - type will be predicted by allowed
content - types and body .
_host_index ( int / None ) : specifies the index of the server
that we want to use .
Default is read from the configuration .
_request_auths ( list ) : set to override the auth_settings for an a single
request ; this effectively ignores the authentication
in the spec for a single request .
Default is None
async_req ( bool ) : execute request asynchronously
Returns :
GetHealth200Response
If the method is called asynchronously , returns the request
thread .
"""
kwargs [ ' async_req ' ] = kwargs . get (
' async_req ' , False
)
kwargs [ ' _return_http_data_only ' ] = kwargs . get (
' _return_http_data_only ' , True
)
kwargs [ ' _preload_content ' ] = kwargs . get (
' _preload_content ' , True
)
kwargs [ ' _request_timeout ' ] = kwargs . get (
' _request_timeout ' , None
)
kwargs [ ' _check_input_type ' ] = kwargs . get (
' _check_input_type ' , True
)
kwargs [ ' _check_return_type ' ] = kwargs . get (
' _check_return_type ' , True
)
kwargs [ ' _spec_property_naming ' ] = kwargs . get (
' _spec_property_naming ' , False
)
kwargs [ ' _content_type ' ] = kwargs . get (
' _content_type ' )
kwargs [ ' _host_index ' ] = kwargs . get ( ' _host_index ' )
kwargs [ ' _request_auths ' ] = kwargs . get ( ' _request_auths ' , None )
return self . get_health_endpoint . call_with_http_info ( * * kwargs )
2022-11-13 13:21:12 +00:00
def get_nodes (
self ,
* * kwargs
) :
2023-11-28 12:34:00 +00:00
""" Describe cluster # noqa: E501
2022-11-13 13:21:12 +00:00
2023-11-22 17:26:20 +00:00
Returns the cluster ' s current status, including: - ID of the node being queried and its version of the Garage daemon - Live nodes - Currently configured cluster layout - Staged changes to the cluster layout *Capacity is given in bytes* # noqa: E501
2022-11-13 13:21:12 +00:00
This method makes a synchronous HTTP request by default . To make an
asynchronous HTTP request , please pass async_req = True
>> > thread = api . get_nodes ( async_req = True )
>> > result = thread . get ( )
Keyword Args :
_return_http_data_only ( bool ) : response data without head status
code and headers . Default is True .
_preload_content ( bool ) : if False , the urllib3 . HTTPResponse object
will be returned without reading / decoding response data .
Default is True .
_request_timeout ( int / float / tuple ) : timeout setting for this request . If
one number provided , it will be total request timeout . It can also
be a pair ( tuple ) of ( connection , read ) timeouts .
Default is None .
_check_input_type ( bool ) : specifies if type checking
should be done one the data sent to the server .
Default is True .
_check_return_type ( bool ) : specifies if type checking
should be done one the data received from the server .
Default is True .
_spec_property_naming ( bool ) : True if the variable names in the input data
are serialized names , as specified in the OpenAPI document .
False if the variable names in the input data
are pythonic names , e . g . snake case ( default )
_content_type ( str / None ) : force body content - type .
Default is None and content - type will be predicted by allowed
content - types and body .
_host_index ( int / None ) : specifies the index of the server
that we want to use .
Default is read from the configuration .
_request_auths ( list ) : set to override the auth_settings for an a single
request ; this effectively ignores the authentication
in the spec for a single request .
Default is None
async_req ( bool ) : execute request asynchronously
Returns :
GetNodes200Response
If the method is called asynchronously , returns the request
thread .
"""
kwargs [ ' async_req ' ] = kwargs . get (
' async_req ' , False
)
kwargs [ ' _return_http_data_only ' ] = kwargs . get (
' _return_http_data_only ' , True
)
kwargs [ ' _preload_content ' ] = kwargs . get (
' _preload_content ' , True
)
kwargs [ ' _request_timeout ' ] = kwargs . get (
' _request_timeout ' , None
)
kwargs [ ' _check_input_type ' ] = kwargs . get (
' _check_input_type ' , True
)
kwargs [ ' _check_return_type ' ] = kwargs . get (
' _check_return_type ' , True
)
kwargs [ ' _spec_property_naming ' ] = kwargs . get (
' _spec_property_naming ' , False
)
kwargs [ ' _content_type ' ] = kwargs . get (
' _content_type ' )
kwargs [ ' _host_index ' ] = kwargs . get ( ' _host_index ' )
kwargs [ ' _request_auths ' ] = kwargs . get ( ' _request_auths ' , None )
return self . get_nodes_endpoint . call_with_http_info ( * * kwargs )