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
)
2023-11-22 17:26:20 +00:00
from garage_admin_sdk . model . apply_layout200_response import ApplyLayout200Response
2022-11-13 13:21:12 +00:00
from garage_admin_sdk . model . cluster_layout import ClusterLayout
from garage_admin_sdk . model . layout_version import LayoutVersion
2023-11-22 17:26:20 +00:00
from garage_admin_sdk . model . node_role_change import NodeRoleChange
2022-11-13 13:21:12 +00:00
class LayoutApi ( 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_layout_endpoint = _Endpoint (
settings = {
2023-11-22 17:26:20 +00:00
' response_type ' : ( ClusterLayout , ) ,
2022-11-13 13:21:12 +00:00
' auth ' : [
' bearerAuth '
] ,
' endpoint_path ' : ' /layout ' ,
' operation_id ' : ' add_layout ' ,
' http_method ' : ' POST ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
2023-11-22 17:26:20 +00:00
' node_role_change ' ,
2022-11-13 13:21:12 +00:00
] ,
' required ' : [
2023-11-22 17:26:20 +00:00
' node_role_change ' ,
2022-11-13 13:21:12 +00:00
] ,
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
2023-11-22 17:26:20 +00:00
' node_role_change ' :
( [ NodeRoleChange ] , ) ,
2022-11-13 13:21:12 +00:00
} ,
' attribute_map ' : {
} ,
' location_map ' : {
2023-11-22 17:26:20 +00:00
' node_role_change ' : ' body ' ,
2022-11-13 13:21:12 +00:00
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
2023-11-22 17:26:20 +00:00
' accept ' : [
' application/json '
] ,
2022-11-13 13:21:12 +00:00
' content_type ' : [
' application/json '
]
} ,
api_client = api_client
)
self . apply_layout_endpoint = _Endpoint (
settings = {
2023-11-22 17:26:20 +00:00
' response_type ' : ( ApplyLayout200Response , ) ,
2022-11-13 13:21:12 +00:00
' auth ' : [
' bearerAuth '
] ,
' endpoint_path ' : ' /layout/apply ' ,
' operation_id ' : ' apply_layout ' ,
' http_method ' : ' POST ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
' layout_version ' ,
] ,
' required ' : [
' layout_version ' ,
] ,
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
' layout_version ' :
( LayoutVersion , ) ,
} ,
' attribute_map ' : {
} ,
' location_map ' : {
' layout_version ' : ' body ' ,
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
2023-11-22 17:26:20 +00:00
' accept ' : [
' application/json '
] ,
2022-11-13 13:21:12 +00:00
' content_type ' : [
' application/json '
]
} ,
api_client = api_client
)
self . get_layout_endpoint = _Endpoint (
settings = {
' response_type ' : ( ClusterLayout , ) ,
' auth ' : [
' bearerAuth '
] ,
' endpoint_path ' : ' /layout ' ,
' operation_id ' : ' get_layout ' ,
' 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
)
self . revert_layout_endpoint = _Endpoint (
settings = {
' response_type ' : None ,
' auth ' : [
' bearerAuth '
] ,
' endpoint_path ' : ' /layout/revert ' ,
' operation_id ' : ' revert_layout ' ,
' http_method ' : ' POST ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
' layout_version ' ,
] ,
' required ' : [
' layout_version ' ,
] ,
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
' layout_version ' :
( LayoutVersion , ) ,
} ,
' attribute_map ' : {
} ,
' location_map ' : {
' layout_version ' : ' body ' ,
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
' accept ' : [ ] ,
' content_type ' : [
' application/json '
]
} ,
api_client = api_client
)
def add_layout (
self ,
2023-11-22 17:26:20 +00:00
node_role_change ,
2022-11-13 13:21:12 +00:00
* * kwargs
) :
""" Send modifications to the cluster layout # noqa: E501
2023-11-22 17:26:20 +00:00
Send modifications to the cluster layout . These modifications will be included in the staged role changes , visible in subsequent calls of ` GET / layout ` . Once the set of staged changes is satisfactory , the user may call ` POST / layout / apply ` to apply the changed changes , or ` POST / layout / revert ` to clear all of the staged changes in the layout . Setting the capacity to ` null ` will configure the node as a gateway . Otherwise , capacity must be now set in bytes ( before Garage 0.9 it was arbitrary weights ) . For example to declare 100 GB , you must set ` capacity : 100000000000 ` . Garage uses internally the International System of Units ( SI ) , it assumes that 1 kB = 1000 bytes , and displays storage as kB , MB , GB ( and not KiB , MiB , GiB that assume 1 KiB = 1024 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
2023-11-22 17:26:20 +00:00
>> > thread = api . add_layout ( node_role_change , async_req = True )
2022-11-13 13:21:12 +00:00
>> > result = thread . get ( )
Args :
2023-11-22 17:26:20 +00:00
node_role_change ( [ NodeRoleChange ] ) : To add a new node to the layout or to change the configuration of an existing node , simply set the values you want ( ` zone ` , ` capacity ` , and ` tags ` ) . To remove a node , simply pass the ` remove : true ` field . This logic is represented in OpenAPI with a \" One Of \" object. Contrary to the CLI that may update only a subset of the fields capacity, zone and tags, when calling this API all of these values must be specified.
2022-11-13 13:21:12 +00:00
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 :
2023-11-22 17:26:20 +00:00
ClusterLayout
2022-11-13 13:21:12 +00:00
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 )
2023-11-22 17:26:20 +00:00
kwargs [ ' node_role_change ' ] = \
node_role_change
2022-11-13 13:21:12 +00:00
return self . add_layout_endpoint . call_with_http_info ( * * kwargs )
def apply_layout (
self ,
layout_version ,
* * kwargs
) :
""" Apply staged layout # noqa: E501
2023-11-22 17:26:20 +00:00
Applies to the cluster the layout changes currently registered as staged layout changes . * Note : do not try to parse the ` message ` field of the response , it is given as an array of string specifically because its format is not stable . * # 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 . apply_layout ( layout_version , async_req = True )
>> > result = thread . get ( )
Args :
layout_version ( LayoutVersion ) : Similarly to the CLI , the body must include the version of the new layout that will be created , which MUST be 1 + the value of the currently existing layout in the cluster .
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 :
2023-11-22 17:26:20 +00:00
ApplyLayout200Response
2022-11-13 13:21:12 +00:00
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 [ ' layout_version ' ] = \
layout_version
return self . apply_layout_endpoint . call_with_http_info ( * * kwargs )
def get_layout (
self ,
* * kwargs
) :
""" Details on the current and staged layout # noqa: E501
2023-11-22 17:26:20 +00:00
Returns the cluster ' s current layout, including: - Currently configured cluster layout - Staged changes to the cluster layout *Capacity is given in bytes* *The info returned by this endpoint is a subset of the info returned by `GET /status`.* # 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_layout ( 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 :
ClusterLayout
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_layout_endpoint . call_with_http_info ( * * kwargs )
def revert_layout (
self ,
layout_version ,
* * kwargs
) :
""" Clear staged layout # noqa: E501
Clears all of the staged layout changes . # noqa: E501
This method makes a synchronous HTTP request by default . To make an
asynchronous HTTP request , please pass async_req = True
>> > thread = api . revert_layout ( layout_version , async_req = True )
>> > result = thread . get ( )
Args :
layout_version ( LayoutVersion ) : Reverting the staged changes is done by incrementing the version number and clearing the contents of the staged change list . Similarly to the CLI , the body must include the incremented version number , which MUST be 1 + the value of the currently existing layout in the cluster .
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 :
None
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 [ ' layout_version ' ] = \
layout_version
return self . revert_layout_endpoint . call_with_http_info ( * * kwargs )