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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d187d6246d008d1c966795514602e796e7cf3185990be1b35f5d5d2d143108e
|
|
| MD5 |
27c842ec383aad80a1a395a61c866ca9
|
|
| BLAKE2b-256 |
a2df87dc1a633fd224e63e2cb8fa95b4372666a17921851cc5e332a6967e57ce
|
Provenance
The following attestation bundles were made for obshell-0.0.7.tar.gz:
Publisher:
publish.yml on oceanbase/obshell-sdk-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
obshell-0.0.7.tar.gz -
Subject digest:
4d187d6246d008d1c966795514602e796e7cf3185990be1b35f5d5d2d143108e - Sigstore transparency entry: 699253140
- Sigstore integration time:
-
Permalink:
oceanbase/obshell-sdk-python@75a572136a5bfa9e274f25c4ccc3ebd4a0265341 -
Branch / Tag:
refs/tags/v0.0.7 - Owner: https://github.com/oceanbase
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@75a572136a5bfa9e274f25c4ccc3ebd4a0265341 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c9df1babfb64f6956e40f294162b0574b863940e849f75a20b4222a5cb8ba90
|
|
| MD5 |
695341a1ab5c87ba5e73247ca92293d2
|
|
| BLAKE2b-256 |
46554cc2a48f65d6f23c00c06737af3a2cf9434324e7cba81505caeab8aaa6cd
|
Provenance
The following attestation bundles were made for obshell-0.0.7-py3-none-any.whl:
Publisher:
publish.yml on oceanbase/obshell-sdk-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
obshell-0.0.7-py3-none-any.whl -
Subject digest:
7c9df1babfb64f6956e40f294162b0574b863940e849f75a20b4222a5cb8ba90 - Sigstore transparency entry: 699253141
- Sigstore integration time:
-
Permalink:
oceanbase/obshell-sdk-python@75a572136a5bfa9e274f25c4ccc3ebd4a0265341 -
Branch / Tag:
refs/tags/v0.0.7 - Owner: https://github.com/oceanbase
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@75a572136a5bfa9e274f25c4ccc3ebd4a0265341 -
Trigger Event:
release
-
Statement type: