This topic describes how to use obshell-sdk-go to modify the attributes of a specified tenant replica. You can modify multiple replicas at a time.
Note
We recommend that you first read Get started with obshell-sdk-go to learn how to use obshell-sdk-go.
Considerations
Make sure that obshell is running.
Make sure that the tenant exists and is in the NORMAL state.
The node corresponding to the client must be initialized.
Sample code
package main
import (
"fmt"
"github.com/oceanbase/obshell-sdk-go/services"
)
func main() {
// Create a client instance with the node address '10.10.10.1' and port 2886.
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
if err != nil {
fmt.Print(err)
return
}
req := client.V1().NewModifyTenantReplicasRequest("t1", []v1.ZoneParam{
{
Name: "zone2",
UnitConfigName: "s2",
},
})
if _, err := client.V1().ModifyTenantReplicasSyncWithRequest(req); err != nil {
fmt.Print(err)
return
}
}
package main
import (
"fmt"
"github.com/oceanbase/obshell-sdk-go/services"
"github.com/oceanbase/obshell-sdk-go/services/v1"
)
func main() {
// Create a client instance with the node address '10.10.10.1' and port 2886.
client, err := services.NewClientWithPassword("10.10.10.1", 2886, "****")
if err != nil {
fmt.Print(err)
return
}
req := client.V1().NewModifyTenantReplicasRequest("t1", []v1.ZoneParam{
{
Name: "zone2",
UnitConfigName: "s2",
},
})
dag, err := client.V1().ModifyTenantReplicasWithRequest(req)
if err != nil {
fmt.Print(err)
return
}
// Wait for the task to succeed.
if dag != nil && dag.GenericDTO != nil {
if _, err = client.V1().WaitDagSucceed(dag.GenericID); err != nil {
fmt.Print(err)
return
}
}
}
References
For more information about the API for modifying a tenant replica, see Modify a tenant replica.
For more information about how to request API methods by using obshell-sdk-python, see Modify a tenant replica.