Skip to main content

OBShell SDK is a powerful and easy-to-use Python library that provides developers with simple method calls to interact with the OBShell. OBShell SDK allows for quick integration, enabling developers to efficiently implement features and focus on creating value in their applications.

Project description

license English doc Chinese doc

English | Chinese

OBShell-SDK-Python is an SDK provided by theOceanBase Community to facilitate developers with quick access to OBShell services, allowing them to conveniently call OBShell interfaces using this SDK.

Install

pip install obshell

Quick Start

Please ensure that OBShell is running when using it.

Create a Client

Create a specified version client.

from obshell import ClientV1
from obshell.auth import PasswordAuth

def main():
    client = ClientV1("11.11.11.1", 2886, PasswordAuth("****"))

Create client_set.

from obshell import ClientSet
from obshell.auth import PasswordAuth

def main():
    client = ClientSet("11.11.11.1", 2886, PasswordAuth("****"))

Deploy Cluster

OBShell-SDK-Python provides two types of methods to deploy an OBShell cluster: the first immediately returns after successfully making a request to the OBShell API, and the second waits for the OBShell task to complete after the API request is successful before returning. The former executes the task asynchronously, while the latter executes the task synchronously.

Deploy a 1-1-1 cluster:

  • Asynchronous Task Execution
from obshell import ClientSet
from obshell.auth import PasswordAuth
def main():
    client = ClientSet("11.11.11.1", 2886, PasswordAuth("****"))

    # join master
    dag = client.v1.join("11.11.11.1", 2886, "zone1")
    client.v1.wait_dag_succeed(dag.generic_id)
    # join follower
    dag = client.v1.join("11.11.11.2", 2886, "zone2")
    client.v1.wait_dag_succeed(dag.generic_id)
    dag = client.v1.join("11.11.11.3", 2886, "zone3")
    client.v1.wait_dag_succeed(dag.generic_id)

    # configure observer
    configs = {
        "datafile_size": "24G", "log_disk_size": "24G", 
        "cpu_count": "16", "memory_limit": "16G", "system_memory": "8G", 
        "enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
    dag = client.v1.config_observer(configs, "GLOBAL", [])
    client.v1.wait_dag_succeed(dag.generic_id)

    # configure obcluster
    dag = client.v1.config_obcluster_sync("test-sdk", 11, "****")
    client.v1.wait_dag_succeed(dag.generic_id)

    # initialize obcluster
    dag = client.v1.init_sync()
    client.v1.wait_dag_succeed(dag.generic_id)
    
    # get the status of the cluster
    status = client.v1.get_status()
    print(status)
  • Synchronous Task Execution
from obshell import ClientSet
from obshell.auth import PasswordAuth

def main():
    client = ClientSet("11.11.11.1", 2886, PasswordAuth("****"))

    # join master
    client.v1.join_sync("11.11.11.1", 2886, "zone1")
    # join follower
    client.v1.join_sync("11.11.11.2", 2886, "zone2")
    client.v1.join_sync("11.11.11.3", 2886, "zone3")

    # configure observer
    configs = {
        "datafile_size": "24G", "log_disk_size": "24G", 
        "cpu_count": "16", "memory_limit": "16G", "system_memory": "8G", 
        "enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
    client.v1.config_observer_sync(configs, "GLOBAL", [])

    # configure obcluster
    client.v1.config_obcluster_sync("test-sdk", 11, "****")

    # initialize obcluster
    client.v1.init_sync()
    
    # get the status of the cluster
    status = client.v1.get_status()
    print(status)

Scale out

Scale out the agent '11.11.11.4' into the cluster where the agent '11.11.11.1' is located.

from obshell import ClientSet
from obshell.auth import PasswordAuth

def main():
    client = ClientSet("111.11.11.1", 2886, PasswordAuth("****"))

    # scale out
    configs = {
        "datafile_size": "24G", "log_disk_size": "24G", 
        "cpu_count": "16", "memory_limit": "16G", "system_memory": "8G", 
        "enable_syslog_recycle": "true", "enable_syslog_wf": "true"}
    client.v1.scale_out_sync("11.11.11.4", 2886, "zone3", configs)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

obshell-0.0.7.tar.gz (47.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

obshell-0.0.7-py3-none-any.whl (62.3 kB view details)

Uploaded Python 3

File details

Details for the file obshell-0.0.7.tar.gz.

File metadata

  • Download URL: obshell-0.0.7.tar.gz
  • Upload date:
  • Size: 47.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for obshell-0.0.7.tar.gz
Algorithm Hash digest
SHA256 4d187d6246d008d1c966795514602e796e7cf3185990be1b35f5d5d2d143108e
MD5 27c842ec383aad80a1a395a61c866ca9
BLAKE2b-256 a2df87dc1a633fd224e63e2cb8fa95b4372666a17921851cc5e332a6967e57ce

See more details on using hashes here.

Provenance

The following attestation bundles were made for obshell-0.0.7.tar.gz:

Publisher: publish.yml on oceanbase/obshell-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file obshell-0.0.7-py3-none-any.whl.

File metadata

  • Download URL: obshell-0.0.7-py3-none-any.whl
  • Upload date:
  • Size: 62.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for obshell-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 7c9df1babfb64f6956e40f294162b0574b863940e849f75a20b4222a5cb8ba90
MD5 695341a1ab5c87ba5e73247ca92293d2
BLAKE2b-256 46554cc2a48f65d6f23c00c06737af3a2cf9434324e7cba81505caeab8aaa6cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for obshell-0.0.7-py3-none-any.whl:

Publisher: publish.yml on oceanbase/obshell-sdk-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page