2022-09-12 15:02:35 +00:00
"""
2022-11-12 21:38:56 +00:00
Garage Administration API v0 + garage - v0 .8 .0
2022-09-12 15:02:35 +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
2022-11-12 21:38:56 +00:00
The version of the OpenAPI document : v0 .8 .0
2022-09-12 15:02:35 +00:00
Generated by : https : / / openapi - generator . tech
"""
import re # noqa: F401
import sys # noqa: F401
2022-09-13 14:00:03 +00:00
from garage_admin_sdk . api_client import ApiClient , Endpoint as _Endpoint
from garage_admin_sdk . model_utils import ( # noqa: F401
2022-09-12 15:02:35 +00:00
check_allowed_values ,
check_validations ,
date ,
datetime ,
file_type ,
none_type ,
validate_and_convert_types
)
2022-09-13 14:00:03 +00:00
from garage_admin_sdk . model . cluster_layout import ClusterLayout
from garage_admin_sdk . model . layout_version import LayoutVersion
from garage_admin_sdk . model . node_cluster_info import NodeClusterInfo
2022-09-12 15:02:35 +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
2022-09-13 14:10:52 +00:00
self . add_layout_endpoint = _Endpoint (
2022-09-12 15:02:35 +00:00
settings = {
' response_type ' : None ,
2022-09-12 15:13:43 +00:00
' auth ' : [
' bearerAuth '
] ,
2022-09-13 14:10:52 +00:00
' endpoint_path ' : ' /layout ' ,
' operation_id ' : ' add_layout ' ,
2022-09-12 15:02:35 +00:00
' http_method ' : ' POST ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
2022-09-13 14:10:52 +00:00
' request_body ' ,
2022-09-12 15:02:35 +00:00
] ,
2022-09-14 13:45:21 +00:00
' required ' : [
' request_body ' ,
] ,
2022-09-12 15:02:35 +00:00
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
2022-09-13 14:10:52 +00:00
' request_body ' :
( { str : ( NodeClusterInfo , ) } , ) ,
2022-09-12 15:02:35 +00:00
} ,
' attribute_map ' : {
} ,
' location_map ' : {
2022-09-13 14:10:52 +00:00
' request_body ' : ' body ' ,
2022-09-12 15:02:35 +00:00
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
' accept ' : [ ] ,
' content_type ' : [
' application/json '
]
} ,
api_client = api_client
)
2022-09-13 14:10:52 +00:00
self . apply_layout_endpoint = _Endpoint (
2022-09-12 15:02:35 +00:00
settings = {
2022-09-13 14:10:52 +00:00
' response_type ' : None ,
2022-09-12 15:13:43 +00:00
' auth ' : [
' bearerAuth '
] ,
2022-09-13 14:10:52 +00:00
' endpoint_path ' : ' /layout/apply ' ,
' operation_id ' : ' apply_layout ' ,
' http_method ' : ' POST ' ,
2022-09-12 15:02:35 +00:00
' servers ' : None ,
} ,
params_map = {
' all ' : [
2022-09-13 14:10:52 +00:00
' layout_version ' ,
2022-09-12 15:02:35 +00:00
] ,
2022-09-14 13:45:21 +00:00
' required ' : [
' layout_version ' ,
] ,
2022-09-12 15:02:35 +00:00
' nullable ' : [
] ,
' enum ' : [
] ,
' validation ' : [
]
} ,
root_map = {
' validations ' : {
} ,
' allowed_values ' : {
} ,
' openapi_types ' : {
2022-09-13 14:10:52 +00:00
' layout_version ' :
( LayoutVersion , ) ,
2022-09-12 15:02:35 +00:00
} ,
' attribute_map ' : {
} ,
' location_map ' : {
2022-09-13 14:10:52 +00:00
' layout_version ' : ' body ' ,
2022-09-12 15:02:35 +00:00
} ,
' collection_format_map ' : {
}
} ,
headers_map = {
2022-09-13 14:10:52 +00:00
' accept ' : [ ] ,
' content_type ' : [
2022-09-12 15:02:35 +00:00
' application/json '
2022-09-13 14:10:52 +00:00
]
2022-09-12 15:02:35 +00:00
} ,
api_client = api_client
)
2022-09-13 14:10:52 +00:00
self . get_layout_endpoint = _Endpoint (
2022-09-12 15:02:35 +00:00
settings = {
2022-09-13 14:10:52 +00:00
' response_type ' : ( ClusterLayout , ) ,
2022-09-12 15:13:43 +00:00
' auth ' : [
' bearerAuth '
] ,
2022-09-12 15:02:35 +00:00
' endpoint_path ' : ' /layout ' ,
2022-09-13 14:10:52 +00:00
' operation_id ' : ' get_layout ' ,
' http_method ' : ' GET ' ,
2022-09-12 15:02:35 +00:00
' 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 = {
2022-09-13 14:10:52 +00:00
' accept ' : [
2022-09-12 15:02:35 +00:00
' application/json '
2022-09-13 14:10:52 +00:00
] ,
' content_type ' : [ ] ,
2022-09-12 15:02:35 +00:00
} ,
api_client = api_client
)
2022-09-13 14:10:52 +00:00
self . revert_layout_endpoint = _Endpoint (
2022-09-12 15:02:35 +00:00
settings = {
' response_type ' : None ,
2022-09-12 15:13:43 +00:00
' auth ' : [
' bearerAuth '
] ,
2022-09-12 15:02:35 +00:00
' endpoint_path ' : ' /layout/revert ' ,
2022-09-13 14:10:52 +00:00
' operation_id ' : ' revert_layout ' ,
2022-09-12 15:02:35 +00:00
' http_method ' : ' POST ' ,
' servers ' : None ,
} ,
params_map = {
' all ' : [
' layout_version ' ,
] ,
2022-09-14 13:45:21 +00:00
' required ' : [
' layout_version ' ,
] ,
2022-09-12 15:02:35 +00:00
' 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
)
2022-09-13 14:10:52 +00:00
def add_layout (
2022-09-12 15:02:35 +00:00
self ,
2022-09-14 13:45:21 +00:00
request_body ,
2022-09-12 15:02:35 +00:00
* * kwargs
) :
2022-09-13 14:10:52 +00:00
""" Send modifications to the cluster layout # noqa: E501
2022-09-12 15:02:35 +00:00
2022-09-23 18:59:23 +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 . Note that setting the capacity to ` null ` will configure the node as a gateway . # noqa: E501
2022-09-12 15:02:35 +00:00
This method makes a synchronous HTTP request by default . To make an
asynchronous HTTP request , please pass async_req = True
2022-09-14 13:45:21 +00:00
>> > thread = api . add_layout ( request_body , async_req = True )
2022-09-12 15:02:35 +00:00
>> > result = thread . get ( )
2022-09-14 13:45:21 +00:00
Args :
request_body ( { str : ( NodeClusterInfo , ) } ) : To add a new node to the layout or to change the configuration of an existing node , simply set the values you want . To remove a node , set it to ` null ` instead of passing a configuration 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-09-12 15:02:35 +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 :
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 )
2022-09-14 13:45:21 +00:00
kwargs [ ' request_body ' ] = \
request_body
2022-09-13 14:10:52 +00:00
return self . add_layout_endpoint . call_with_http_info ( * * kwargs )
2022-09-12 15:02:35 +00:00
2022-09-13 14:10:52 +00:00
def apply_layout (
2022-09-12 15:02:35 +00:00
self ,
2022-09-14 13:45:21 +00:00
layout_version ,
2022-09-12 15:02:35 +00:00
* * kwargs
) :
2022-09-13 14:10:52 +00:00
""" Apply staged layout # noqa: E501
2022-09-12 15:02:35 +00:00
2022-09-13 14:10:52 +00:00
Applies to the cluster the layout changes currently registered as staged layout changes . # noqa: E501
2022-09-12 15:02:35 +00:00
This method makes a synchronous HTTP request by default . To make an
asynchronous HTTP request , please pass async_req = True
2022-09-14 13:45:21 +00:00
>> > thread = api . apply_layout ( layout_version , async_req = True )
2022-09-12 15:02:35 +00:00
>> > result = thread . get ( )
2022-09-14 13:45:21 +00:00
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 .
2022-09-12 15:02:35 +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 :
2022-09-13 14:10:52 +00:00
None
2022-09-12 15:02:35 +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 )
2022-09-14 13:45:21 +00:00
kwargs [ ' layout_version ' ] = \
layout_version
2022-09-13 14:10:52 +00:00
return self . apply_layout_endpoint . call_with_http_info ( * * kwargs )
2022-09-12 15:02:35 +00:00
2022-09-13 14:10:52 +00:00
def get_layout (
2022-09-12 15:02:35 +00:00
self ,
* * kwargs
) :
2022-09-13 14:10:52 +00:00
""" Details on the current and staged layout # noqa: E501
2022-09-12 15:02:35 +00:00
2022-09-13 14:10:52 +00:00
Returns the cluster ' s current layout, including: - Currently configured cluster layout - Staged changes to the cluster layout *The info returned by this endpoint is a subset of the info returned by `GET /status`.* # noqa: E501
2022-09-12 15:02:35 +00:00
This method makes a synchronous HTTP request by default . To make an
asynchronous HTTP request , please pass async_req = True
2022-09-13 14:10:52 +00:00
>> > thread = api . get_layout ( async_req = True )
2022-09-12 15:02:35 +00:00
>> > 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 :
2022-09-13 14:10:52 +00:00
ClusterLayout
2022-09-12 15:02:35 +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 )
2022-09-13 14:10:52 +00:00
return self . get_layout_endpoint . call_with_http_info ( * * kwargs )
2022-09-12 15:02:35 +00:00
2022-09-13 14:10:52 +00:00
def revert_layout (
2022-09-12 15:02:35 +00:00
self ,
2022-09-14 13:45:21 +00:00
layout_version ,
2022-09-12 15:02:35 +00:00
* * 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
2022-09-14 13:45:21 +00:00
>> > thread = api . revert_layout ( layout_version , async_req = True )
2022-09-12 15:02:35 +00:00
>> > result = thread . get ( )
2022-09-14 13:45:21 +00:00
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 .
2022-09-12 15:02:35 +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 :
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 )
2022-09-14 13:45:21 +00:00
kwargs [ ' layout_version ' ] = \
layout_version
2022-09-13 14:10:52 +00:00
return self . revert_layout_endpoint . call_with_http_info ( * * kwargs )
2022-09-12 15:02:35 +00:00