Source code for ucloud.services.udts.client

""" Code is generated by ucloud-model, DO NOT EDIT IT. """

import typing


from ucloud.core.client import Client
from ucloud.services.udts.schemas import apis


[docs]class UDTSClient(Client): def __init__( self, config: dict, transport=None, middleware=None, logger=None ): super(UDTSClient, self).__init__(config, transport, middleware, logger)
[docs] def check_udts_task( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """CheckUDTSTask - 对UDTS 任务提供预检查功能 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **MaxRetryCount** (str) - (Required) 重试次数,最大为 5。 默认为0 - **Name** (str) - (Required) task 名称,长度不能超过 128 - **Type** (str) - (Required) 任务类型,值为 transfer 或 integration, transfer 时任务为 数据迁移,integration 时任务为 数据集成。 - **Query** (str) - 废弃 - **Source** (list) - 见 **CheckUDTSTaskParamSource** 模型定义 - **Target** (dict) - 见 **CheckUDTSTaskParamTarget** 模型定义 **Response** - **Action** (str) - 操作名称 - **Data** (dict) - 见 **CheckUDTSTaskResult** 模型定义 - **Message** (str) - 返回消息 - **RetCode** (str) - 返回码 **Request Model** **CheckUDTSTaskParamSourceMySQLNodeSyncData** - **BinlogGTID** (str) - 增量时需要指定的 binlog gtid,可以通过 show master status 获取,或者全量+增量任务会自动设置 - **BinlogName** (str) - 增量时需要指定的 binlog name,可以通过 show master status 获取,或者全量+增量任务会自动设置 - **BinlogPos** (int) - 增量时需要指定的 binlog pos,可以通过 show master status 获取,或者全量+增量任务会自动设置 - **ServerID** (int) - 增量时需要指定的 serverID,不能和现有的 slave 重复,预检查时会检查该值 **CheckUDTSTaskParamSourceMySQLNodeQueryData** - **DBName** (str) - 数据集成时需要迁移的 DB 名 - **NewDBName** (str) - 数据集成时迁移后的 DB 名 **CheckUDTSTaskParamTargetMySQLNode** - **DataRegion** (str) - 目标数据库地域,比如 cn-bj2 - **Host** (str) - 目标数据库地址, 比如 10.9.37.212 - **Password** (str) - 目标数据库密码 - **Port** (int) - 目标数据库端口,比如 3306 - **SubnetId** (str) - 目标数据库子网 ID ,比如 subnet-zl44fktq - **User** (str) - 目标数据库用户名,比如 root - **VPCId** (str) - 目标数据库 VPC,比如 uvnet-1wz5rqte **CheckUDTSTaskParamSourceMySQLNode** - **DataRegion** (str) - 数据库地域,比如 cn-bj2 - **Database** (str) - 需要迁移的 DB 名称 - **Host** (str) - 源数据库地址, 比如 10.9.37.200 - **Password** (str) - 源 MySQL 密码 - **Port** (int) - 源 MySQL 端口,如 3306 - **QueryData** (list) - 见 **CheckUDTSTaskParamSourceMySQLNodeQueryData** 模型定义 - **SubnetId** (str) - 子网 ID - **SyncData** (dict) - 见 **CheckUDTSTaskParamSourceMySQLNodeSyncData** 模型定义 - **Table** (str) - 需要迁移的 table 名 - **User** (str) - 源 MySQL 用户名,如 root - **VPCId** (str) - VPC **CheckUDTSTaskParamTarget** - **DataType** (str) - 目标数据库类型,比如 mysql - **MySQLNode** (dict) - 见 **CheckUDTSTaskParamTargetMySQLNode** 模型定义 - **NWType** (str) - 目标 db 网络类型,目前进支持 user **CheckUDTSTaskParamSource** - **DataType** (str) - 数据库类型 - **Mode** (str) - // 任务类型,值可以是 full, incremental, full+incremental, bidirectional - **MySQLNode** (dict) - 见 **CheckUDTSTaskParamSourceMySQLNode** 模型定义 - **NWType** (str) - 源网络类型,可以是 public,user,dedicated_line **Response Model** **CheckResultItem** - **ErrMessage** (str) - - **State** (str) - 状态 **CheckResult** - **Config** (dict) - 见 **CheckResultItem** 模型定义 - **Connection** (dict) - 见 **CheckResultItem** 模型定义 - **Privileges** (dict) - 见 **CheckResultItem** 模型定义 **CheckUDTSTaskResult** - **Source** (dict) - 见 **CheckResult** 模型定义 - **Target** (dict) - 见 **CheckResult** 模型定义 """ # build request d = { "ProjectId": self.config.project_id, } req and d.update(req) d = apis.CheckUDTSTaskRequestSchema().dumps(d) resp = self.invoke("CheckUDTSTask", d, **kwargs) return apis.CheckUDTSTaskResponseSchema().loads(resp)
[docs] def create_udts_task( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """CreateUDTSTask - 创建UDTS任务 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **Name** (str) - (Required) task 名称,长度不能超过 128 - **Type** (str) - (Required) 任务类型,transfer(数据传输) 或 integration(数据集成) - **IsUnidirection** (str) - 暂时未使用该字段 - **MaxRetryCount** (str) - 重试次数,最大为 5。 默认为0 - **Query** (str) - 暂时未使用该字段 - **Remark** (str) - 备注信息,长度不能大于 255 - **Source** (list) - 见 **CreateUDTSTaskParamSource** 模型定义 - **Target** (dict) - 见 **CreateUDTSTaskParamTarget** 模型定义 **Response** - **Data** (dict) - - **Message** (str) - 返回消息 **Request Model** **CreateUDTSTaskParamSourceMySQLNodeQueryDataTableData** - **ExcludeTables** (bool) - 暂时未使用该字段 - **TableNames** (str) - 暂时未使用该字段 **CreateUDTSTaskParamSourceMySQLNodeQueryDataTableMaps** - **NewTableName** (str) - 数据集成时迁移后的 Table 名 - **TableName** (str) - 数据集成时需要迁移的 Table 名 **CreateUDTSTaskParamSourceMySQLNodeSyncData** - **BinlogGTID** (str) - 增量时需要指定的 binlog gtid,可以通过 show master status 获取,或者全量+增量任务会自动设置 - **BinlogName** (str) - 增量时需要指定的 binlog name,可以通过 show master status 获取,或者全量+增量任务会自动设置 - **BinlogPos** (int) - 增量时需要指定的 binlog pos,可以通过 show master status 获取,或者全量+增量任务会自动设置 - **ServerID** (int) - 增量时需要指定的 serverID,不能和现有的 slave 重复,预检查时会检查该值 **CreateUDTSTaskParamSourceMySQLNodeQueryData** - **DBName** (str) - 数据集成时需要迁移的 DB 名 - **NewDBName** (str) - 数据集成时迁移后的 DB 名 - **TableData** (dict) - 见 **CreateUDTSTaskParamSourceMySQLNodeQueryDataTableData** 模型定义 - **TableMaps** (list) - 见 **CreateUDTSTaskParamSourceMySQLNodeQueryDataTableMaps** 模型定义 **CreateUDTSTaskParamSourceMySQLNode** - **DataRegion** (str) - 数据库地域,比如 cn-bj2 - **Database** (str) - 需要迁移的 DB 名称 - **DupAction** (str) - 重复数据处理规则,数据集成时该参数才有效,值为 ignore或者replace - **Host** (str) - 源数据库地址 - **KeepExistData** (bool) - 是否保留原有数据,只有数据集成时该参数才有效 - **Password** (str) - 源数据库密码 - **Port** (int) - 源数据库端口 - **QueryData** (list) - 见 **CreateUDTSTaskParamSourceMySQLNodeQueryData** 模型定义 - **SubnetId** (str) - 源数据库子网 ID,当网络类型为 user 时需要填写 - **SyncData** (dict) - 见 **CreateUDTSTaskParamSourceMySQLNodeSyncData** 模型定义 - **Table** (str) - 需要迁移的 table 名 - **User** (str) - 源数据库用户名 - **VPCId** (str) - 源数据库 VPC ID,当网络类型为 user 时需要填写 **CreateUDTSTaskParamTargetMySQLNode** - **DataRegion** (str) - 目标数据库地域,比如 cn-bj2 - **Host** (str) - 目标数据库地址, 比如 10.9.37.212 - **NoBinlog** (bool) - 是否在全量过程中,临时禁用目标 MySQL 产生 binlog,在目标磁盘空间不足,或者需要获取更快的迁移速度时可以使用,该参数会破坏目标 MySQL 的高可用 - **Password** (str) - 目标数据库密码 - **Port** (int) - 目标数据库端口,比如 3306 - **SubnetId** (str) - 目标数据库子网 ID ,比如 subnet-zl44fktq - **User** (str) - 目标数据库用户名,比如 root - **VPCId** (str) - 目标数据库 VPC,比如 uvnet-1wz5rqte **CreateUDTSTaskParamSource** - **BandwidthLimit** (int) - 源端限速值,单位为 MB/s - **DataType** (str) - 数据库类型,比如 mysql - **Mode** (str) - 任务类型,值可以是 full, incremental, full+incremental, bidirectional - **MySQLNode** (dict) - 见 **CreateUDTSTaskParamSourceMySQLNode** 模型定义 - **NWType** (str) - 源网络类型,可以是 public,user,dedicated_line **CreateUDTSTaskParamTarget** - **BandwidthLimit** (str) - 目标端限速,单位为 MB/s - **DataType** (str) - 目标数据库类型,比如 mysql - **Mode** (str) - - **MySQLNode** (dict) - 见 **CreateUDTSTaskParamTargetMySQLNode** 模型定义 - **NWType** (str) - 目标 db 网络类型,目前仅支持 user """ # build request d = { "ProjectId": self.config.project_id, } req and d.update(req) d = apis.CreateUDTSTaskRequestSchema().dumps(d) # build options kwargs["max_retries"] = 0 # ignore retry when api is not idempotent resp = self.invoke("CreateUDTSTask", d, **kwargs) return apis.CreateUDTSTaskResponseSchema().loads(resp)
[docs] def get_udts_task_history( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """GetUDTSTaskHistory - 获取任务历史状态 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **TaskId** (str) - (Required) 任务短 id - **Type** (str) - 任务类型 **Response** - **Data** (list) - 见 **TaskHistoryItem** 模型定义 **Response Model** **TaskHistoryItem** - **AntID** (str) - 任务 ID - **AntState** (str) - 任务状态 - **CreateTime** (int) - 事件时间,值为 timestamp - **CreateTimeH** (str) - 事件时间,为可读的日期时间 """ # build request d = { "ProjectId": self.config.project_id, } req and d.update(req) d = apis.GetUDTSTaskHistoryRequestSchema().dumps(d) resp = self.invoke("GetUDTSTaskHistory", d, **kwargs) return apis.GetUDTSTaskHistoryResponseSchema().loads(resp)
[docs] def get_udts_task_status( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """GetUDTSTaskStatus - 查看服务状态 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list>`_ - **TaskId** (str) - (Required) 任务ID - **Type** (str) - 任务类型,值为 transfer 或 integration, transfer 时任务为 数据迁移,integration 时任务为 数据集成。 **Response** - **Data** (dict) - 见 **StatusData** 模型定义 - **Message** (str) - 返回信息 **Response Model** **SyncData** - **BinlogGTID** (str) - GTID - **BinlogName** (str) - Binlog 文件名, 长度不超过128字符 - **BinlogPos** (int) - Binlog Pos - **ServerId** (int) - 分配给UDTS task的server ID, 必须在MySQL集群中唯一 **Progress** - **CurCount** (int) - 已迁移条目数 - **CurDuration** (int) - 已耗时间(单位秒) - **Percentage** (float) - 完成进度 - **TotalCount** (int) - 总条目数 - **TotalDuration** (int) - 估算总耗时间(单位秒) **StatusData** - **CurRetryCount** (int) - 当前失败重试次数 - **FailedMessage** (str) - 当Status为Failed时, 显示失败原因 - **MaxRetryCount** (int) - 用户设置的最大失败重试次数 - **Progress** (dict) - 见 **Progress** 模型定义 - **Status** (str) - 任务状态, 状态有 Created:已创建,Checking:检查中,Dumping:转储中,Loading:加载中,Syncing:同步中,Synced:已同步,Done:完成,Failed:失败,Stopping:停止中,Stopped:停止,RetryPending:重试等待中,Starting:启动中,FailedUnrecoverable:异常,StoppedUnrecoverable:异常,Success:成功,Started:已启动 - **Sync** (dict) - 见 **SyncData** 模型定义 """ # build request d = { "ProjectId": self.config.project_id, } req and d.update(req) d = apis.GetUDTSTaskStatusRequestSchema().dumps(d) resp = self.invoke("GetUDTSTaskStatus", d, **kwargs) return apis.GetUDTSTaskStatusResponseSchema().loads(resp)
[docs] def list_udts_task( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """ListUDTSTask - 获取用户创建的 Task 信息 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **Limit** (str) - 请求数量,默认为 20 - **Offset** (str) - 偏移量,默认为 0 - **Type** (str) - 任务类型 **Response** - **Data** (list) - 见 **ListDataItem** 模型定义 - **Message** (str) - 返回信息 **Response Model** **Progress** - **CurCount** (int) - 已迁移条目数 - **CurDuration** (int) - 已耗时间(单位秒) - **Percentage** (float) - 完成进度 - **TotalCount** (int) - 总条目数 - **TotalDuration** (int) - 估算总耗时间(单位秒) **ListDataItem** - **CreateTime** (int) - 创建时间 - **CurRetryCount** (int) - 当前失败重试次数 - **MaxRetryCount** (int) - 最大失败重试次数 - **Name** (str) - 任务名称 - **Progress** (dict) - 见 **Progress** 模型定义 - **Status** (str) - 任务状态 - **TaskId** (str) - 任务 ID - **Type** (str) - 任务类型, full全量, incremental增量,full+incremental全量+增量。 """ # build request d = { "ProjectId": self.config.project_id, } req and d.update(req) d = apis.ListUDTSTaskRequestSchema().dumps(d) resp = self.invoke("ListUDTSTask", d, **kwargs) return apis.ListUDTSTaskResponseSchema().loads(resp)
[docs] def start_udts_task( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """StartUDTSTask - 启动UDTS服务 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **TaskId** (str) - (Required) 任务ID - **Type** (str) - 任务类型 **Response** - **Message** (str) - 返回信息 """ # build request d = { "ProjectId": self.config.project_id, } req and d.update(req) d = apis.StartUDTSTaskRequestSchema().dumps(d) resp = self.invoke("StartUDTSTask", d, **kwargs) return apis.StartUDTSTaskResponseSchema().loads(resp)
[docs] def stop_udts_task( self, req: typing.Optional[dict] = None, **kwargs ) -> dict: """StopUDTSTask - 停止UDTS任务 **Request** - **ProjectId** (str) - (Config) 项目ID。不填写为默认项目,子帐号必须填写。 请参考 `GetProjectList接口 <https://docs.ucloud.cn/api/summary/get_project_list.html>`_ - **TaskId** (str) - (Required) 任务 ID - **Type** (str) - 任务类型 **Response** - **Message** (str) - 返回信息 """ # build request d = { "ProjectId": self.config.project_id, } req and d.update(req) d = apis.StopUDTSTaskRequestSchema().dumps(d) resp = self.invoke("StopUDTSTask", d, **kwargs) return apis.StopUDTSTaskResponseSchema().loads(resp)