package com.huawei.demo;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.gaussdb.v3.GaussDBClient;
import com.huaweicloud.sdk.gaussdb.v3.model.CreateDatabaseUserList;
import com.huaweicloud.sdk.gaussdb.v3.model.CreateDatabaseUserRequest;
import com.huaweicloud.sdk.gaussdb.v3.model.CreateGaussMySqlDatabaseUserRequest;
import com.huaweicloud.sdk.gaussdb.v3.model.CreateGaussMySqlDatabaseUserResponse;
import com.huaweicloud.sdk.gaussdb.v3.model.ListGaussMySqlDatabaseUserRequest;
import com.huaweicloud.sdk.gaussdb.v3.model.ListGaussMySqlDatabaseUserResponse;
import com.huaweicloud.sdk.gaussdb.v3.region.GaussDBRegion;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collections;
public class DatabaseUserDemo {
private static final Logger logger = LoggerFactory.getLogger(DatabaseUserDemo.class.getName());
public static void main(String[] args) {
String ak = "<YOUR AK>";
String sk = "<YOUR SK>";
String instanceId = "<YOUR INSTANCE_ID>";
String regionId = "<YOUR REGION_ID>";
ICredential auth = new BasicCredentials()
.withAk(ak)
.withSk(sk);
GaussDBClient client = GaussDBClient.newBuilder()
.withCredential(auth)
.withRegion(GaussDBRegion.valueOf(regionId))
.build();
listDatabaseUser(client, instanceId);
String username = "<Your USER_NAME>";
String password = "<YOUR PASSWORD>";
createDatabaseUser(client, instanceId, username, password);
listDatabaseUser(client, instanceId);
}
private static void listDatabaseUser(GaussDBClient client, String instanceId) {
ListGaussMySqlDatabaseUserRequest request = new ListGaussMySqlDatabaseUserRequest();
request.withInstanceId(instanceId);
try {
ListGaussMySqlDatabaseUserResponse response = client.listGaussMySqlDatabaseUser(request);
logger.info(response.toString());
} catch (ConnectionException e) {
logger.error("ConnectionException", e);
} catch (RequestTimeoutException e) {
logger.error("RequestTimeoutException ", e);
} catch (ServiceResponseException e) {
logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg());
}
}
private static void createDatabaseUser(GaussDBClient client, String instanceId, String username, String password) {
CreateGaussMySqlDatabaseUserRequest request = new CreateGaussMySqlDatabaseUserRequest();
CreateDatabaseUserRequest body = new CreateDatabaseUserRequest();
CreateDatabaseUserList users = new CreateDatabaseUserList().
withName(username).
withPassword(password);
body.withUsers(Collections.singletonList(users));
request.withInstanceId(instanceId);
request.withBody(body);
try {
CreateGaussMySqlDatabaseUserResponse response = client.createGaussMySqlDatabaseUser(request);
logger.info(response.toString());
} catch (ConnectionException e) {
logger.error("ConnectionException", e);
} catch (RequestTimeoutException e) {
logger.error("RequestTimeoutException ", e);
} catch (ServiceResponseException e) {
logger.error("httpStatusCode: {}, errorCode: {}, errorMsg: {}", e.getHttpStatusCode(), e.getErrorCode(), e.getErrorMsg());
}
}
}