Metadata-Version: 2.1
Name: pyorchestratorclient
Version: 3.2.4.1
Summary: A simple Orchestrator API client
Home-page: https://github.com/ejortegau/python-orchestrator-client
Author: Eduardo J. Ortega U.
Author-email: github435@example.com
License: UNKNOWN
Project-URL: Bug Tracker, https://github.com/ejortegau/python-orchestrator-client/issues
Description: # python-orchestrator-client
        
        A simple Python Orchestrator (https://github.com/github/orchestrator) client.
        
        It ensures that the commands to be sent to Orchestrator API are valid, and that the number of arguments matches what the
        API expects. This is achieved via the definition of all endpoints and their arguments. The configuration is under
        `pyorchestratorclient/endpoints.py` and has been generated from Orchestrator's
        [source code](https://github.com/github/orchestrator/blob/master/go/http/api.go) using 
        `scripts/orchestrator_api_conf.sh`. You can generate your own to ensure its contents match what your Orchestrator
        version supports, if required. 
        
        ## Usage:
        
        ```python
        In [1]: from pyorchestratorclient import OrchestratorClient
        
        In [2]: o = OrchestratorClient('http://localhost:3000')  # Orchestrator URL
        
        In [3]: o.clusters()
        Out[3]: ['deceive:20516']
        
        In [4]: o.relocate('deceive', '20518', 'deceive', '20516')  # Call with methods
        Out[4]: 
        {'Code': 'OK',
         'Details': {'AllowTLS': False,
          'AncestryUUID': '00020516-1111-1111-1111-111111111111,00020518-3333-3333-3333-333333333333',
          'BinlogRowImage': 'FULL',
          'Binlog_format': 'ROW',
          'ClusterName': 'deceive:20516',
          ...
          'Version': '8.0.15',
          'VersionComment': 'MySQL Community Server - GPL'},
         'Message': 'Instance deceive:20518 relocated below deceive:20516'}
        
        In [5]: o.check_global_recoveries()  # Notice that dashes in HTTP API are translated to underscores for the python client
        Out[5]: {'Code': 'OK', 'Details': 'enabled', 'Message': 'Global recoveries enabled'}
        
        In [6]: o.clusters("ssfd")  # Validation of expected number of arguments                                                                                                                                                                   
        ---------------------------------------------------------------------------
        OrchestratorClientError                   Traceback (most recent call last)
        <ipython-input-7-0494111cc886> in <module>
        ----> 1 o.clusters("ssfd")
        
        ~/git/python-orchestrator-client/pyorchestratorclient/__init__.py in _method_mapper(*args, **kwargs)
            151     def __getattr__(self, item):
            152         def _method_mapper(*args, **kwargs):
        --> 153             return self.run(item.replace("_", "-"), *args, *kwargs)
            154 
            155         if item.replace("_", "-") in self.commands.keys():
        
        ~/git/python-orchestrator-client/pyorchestratorclient/__init__.py in run(self, cmd, *args)
            110                 sample = ", ".join(usage).strip().strip(",")
            111                 usages.append(f"[{sample}]")
        --> 112             raise OrchestratorClientError(
            113                 f"Specified number of arguments for command {cmd} ({len(args)})"
            114                 f" does not match expected number of arguments for it "
        
        OrchestratorClientError: Specified number of arguments for command clusters (1) does not match expected number of arguments for it ([0]). Check that your call is correct.
        
        In [7]: o.something()  # Validation of supported methods                                                                                                                                                                    
        ---------------------------------------------------------------------------
        AttributeError                            Traceback (most recent call last)
        <ipython-input-10-3a11b5057530> in <module>
        ----> 1 o.something()
        
        ~/git/python-orchestrator-client/pyorchestratorclient/__init__.py in __getattr__(self, item)
            155         if item.replace("_", "-") in self.commands.keys():
            156             return _method_mapper
        --> 157         raise AttributeError(f"No such attribute or method: {item}")
            158 
            159 
        
        AttributeError: No such attribute or method: something
        
        In [11]: 
        
        ```
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.8
Description-Content-Type: text/markdown
