| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 |
- # -*- coding: utf-8 -*-
- # Copyright (c) 2014 Baidu.com, Inc. All Rights Reserved
- #
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- # except in compliance with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software distributed under the
- # License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- # either express or implied. See the License for the specific language governing permissions
- # and limitations under the License.
- """
- This module provides a client class for DDC.
- """
- import copy
- import json
- from baidubce import utils
- from baidubce.auth import bce_v1_signer
- from baidubce.bce_base_client import BceBaseClient
- from baidubce.http import bce_http_client
- from baidubce.http import handler
- from baidubce.http import http_methods
- from baidubce.utils import required
- class DdcClient(BceBaseClient):
- """
- Ddc base sdk client
- """
- version = '/v1'
- prefix = '/ddc'
- def __init__(self, config=None):
- """
- :type config: baidubce.BceClientConfiguration
- :param config:
- """
- BceBaseClient.__init__(self, config)
-
- @required(instance_id=(str), db_name=(str), table_name=(str))
- def lazydrop_create_hard_link(self, instance_id=None, db_name=None, table_name=None, config=None):
- """
- Create hard link.
- :param instance_id:
- The id of instance
- :type instance_id: string
- :param db_name:
- The database name
- :type db_name: string
- :param table_name:
- The table name
- :type table_name: string
- :param config:
- :type config: baidubce.BceClientConfiguration
- :return:
- :rtype baidubce.bce_response.BceResponse
- """
- path = DdcClient.version + DdcClient.prefix\
- + "/instance/" + instance_id + "/database/" + db_name + "/table/link"
- body = {}
- if table_name is not None:
- body['tableName'] = table_name
-
- return self._send_request(http_methods.POST, path, body=json.dumps(body), config=config)
-
- @required(instance_id=(str), db_name=(str), table_name=(str))
- def lazydrop_delete_hard_link(self, instance_id=None, db_name=None, table_name=None, config=None):
- """
- Delete hard link.
- :param instance_id:
- The id of instance
- :type instance_id: string
- :param db_name:
- The database name
- :type db_name: string
- :param table_name:
- The table name
- :type table_name: string
- :param config:
- :type config: baidubce.BceClientConfiguration
- :return:
- :rtype baidubce.bce_response.BceResponse
- """
- path = DdcClient.version + DdcClient.prefix\
- + "/instance/" + instance_id + "/database/" + db_name + "/table/" + table_name + "/link"
-
- return self._send_request(http_methods.DELETE, path, config=config)
-
- @required(instance_id=(str), log_type=(str), datetime=(str))
- def list_log_by_instance_id(self, instance_id=None, log_type=None, datetime=None, config=None):
- """
- Delete hard link.
- :param instance_id:
- The id of instance
- :type instance_id: string
- :param log_type:
- LogType
- :type log_type: string
- :param datetime:
- Datetime
- :type datetime: string
- :param config:
- :type config: baidubce.BceClientConfiguration
- :return:
- :rtype baidubce.bce_response.BceResponse
- """
- path = '/v2' + DdcClient.prefix + '/instance/' + instance_id + '/logs'
- params = {}
- if log_type is not None:
- params['logType'] = log_type
-
- if datetime is not None:
- params['datetime'] = datetime
- return self._send_request(http_methods.GET, path, params=params, config=config)
-
- @required(instance_id=(str), log_id=(str))
- def get_log_by_id(self, instance_id=None, log_id=None, download_valid_time_in_sec=None, config=None):
- """
- Delete hard link.
- :param instance_id:
- The id of instance
- :type instance_id: string
- :param log_id:
- LogId
- :type log_id: string
- :param download_valid_time_in_sec:
- downloadValidTimeInSec
- :type download_valid_time_in_sec: Integer
- :param config:
- :type config: baidubce.BceClientConfiguration
- :return:
- :rtype baidubce.bce_response.BceResponse
- """
- path = DdcClient.version + DdcClient.prefix + "/instance/" + instance_id + "/logs/" + log_id
- params = {}
- if download_valid_time_in_sec is not None:
- params['downloadValidTimeInSec'] = download_valid_time_in_sec
- return self._send_request(http_methods.GET, path, params=params, config=config)
-
- @staticmethod
- def _get_path(prefix=None):
- """
- :type prefix: string
- :param prefix: path prefix
- """
- if prefix is None:
- prefix = DdcClient.prefix
- return utils.append_uri(DdcClient.version, prefix)
- def _merge_config(self, config):
- """
- :type config: baidubce.BceClientConfiguration
- :param config:
- :return:
- """
- if config is None:
- return self.config
- else:
- new_config = copy.copy(self.config)
- new_config.merge_non_none_values(config)
- return new_config
- def _send_request(self, http_method, path, body=None, headers=None, params=None,
- config=None, body_parser=None):
- """
- :param http_method:
- :param path:
- :param body:
- :param headers:
- :param params:
- :type config: baidubce.BceClientConfiguration
- :param config:
- :param body_parser:
- :return: baidubce.BceResponse
- """
- config = self._merge_config(config)
- if body_parser is None:
- body_parser = handler.parse_json
- if headers is None:
- headers = {b'Accept': b'*/*', b'Content-Type': b'application/json;charset=utf-8'}
- return bce_http_client.send_request(config, bce_v1_signer.sign,
- [handler.parse_error, body_parser],
- http_method, path.encode(), body, headers, params)
|