Coder Social home page Coder Social logo

wecube-plugins-huaweicloud's Introduction

HuaweiCloud插件

License

简介

HuaweiCloud插件对华为云原生资源(如ECS、ELB、EIP、NAT网关、安全组等)的生命周期管理接口进行业务封装,提供符合Wecube插件规范的插件接口.

HuaweiCloud插件的使用场景

在Wecube中注册该插件,即可通过Wecube的编排调用该插件的接口。插件支持的Huawei云资源如下图所示:

HuaweiCloud插件开发环境搭建

详情请查看HuaweiCloud插件开发环境搭建指引

开发环境搭建完成后,如果是linux用户,执行go build命令后,在当前目录下可看到wecube-plugins-huaweicloud的二进制程序,执行如下命令启动该程序,该程序启动后的默认端口为8083

./wecube-plugins-huaweicloud

程序启动后,可通过curl命令创建vpc来验证,命令如下其中your_access_key、your_secret_key、your_domain_id和your_project_id需要替换为用户自己华为云的对应参数。

curl -X POST \
  http://127.0.0.1:8083/huaweicloud/v1/vpc/create \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
	"inputs":[
		{
		"identity_params":"AccessKey={$your_access_key};SecretKey={$your_secret_key};DomainId={$your_domain_id}",
		 "cloud_params":"CloudApiDomainName=myhuaweicloud.com;ProjectId={$your_project_id};Region=cn-south-1",
		"guid": "1234",
		"name": "VPC-C",
		"cidr": "xxx.xxx.xxx.xxx/16"
		}
	]
}


如果看到如下返回,表示创建vpc成功

{
    "result_code": "0",
    "result_message": "success",
    "results": {
        "outputs": [
            {
                "errorCode": "0",
                "errorMessage": "",
                "guid": "1234",
                "id":"209e670a-95e2-4e73-81f8-7f931e5847a1"
            }
        ]
    }
}

HuaweiCloud编译和插件包制作

详情请查看HuaweiCloud插件包编译和制作指引

独立运行HuaweiCloud插件

HuaweiCloud插件包编译为docker镜像后,执行如下命令运行插件,其中IMAGE_TAG需要替换为HuaweiCloud插件docker镜像的tag

docker run -d -p 8083:8083 --restart=unless-stopped -v /etc/localtime:/etc/localtime  wecube-plugins-huaweicloud:{$IMAGE_TAG}

API使用说明

关于HuaweiCloud插件的API使用说明,请查看文档 HuaweiCloud插件API手册

License

QCloud插件是基于 Apache License 2.0 协议, 详情请参考LICENSE

社区

  • 如果您想得到最快的响应,请给我们提Issue或扫描下面的二维码,我们会第一时间反馈。

  • 联系我们:[email protected]

wecube-plugins-huaweicloud's People

Contributors

brankbao avatar haixinhuang avatar tylertang06 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wecube-plugins-huaweicloud's Issues

华为云创建包月云服务器无返回超时

华为云创建包月云服务器无返回超时,节点超时时间30分钟。
一次请求创建两台,一台包月,一台按需计费。等待30分钟请求无返回,实际云上创建成功一台按需计费的云主机,包月的主机未创建。
image
image
image

time="2020-04-01T02:47:36+08:00" level=info msg="action do with parameters = {[{{0032_0000000010} {SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880 CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c} 0032_0000000010 123456 5be19e6d-80ef-4e9d-96a2-ec1b8438065d 1C2G 50 a4ede0b8-5be4-467c-b483-c429e2a032fc dd8b3b56-cf4d-4e16-9c53-b4bbd4eb3ef8 172.16.0.2 hwhost2 Abcd1234 ap-southeast-1b postPaid 0 } {{0032_0000000011} {SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880 CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c} 0032_0000000011 123456 5be19e6d-80ef-4e9d-96a2-ec1b8438065d 1C2G 50 a4ede0b8-5be4-467c-b483-c429e2a032fc dd8b3b56-cf4d-4e16-9c53-b4bbd4eb3ef8 172.16.0.3 hwhost3 Abcd1234 ap-southeast-1b prePaid month 1 }]}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:123"
time="2020-04-01T02:47:37+08:00" level=info msg="get instancetype=s3.medium.2" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.getFlavorByHostType file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/vm.go:374"
time="2020-04-01T02:48:26+08:00" level=info msg="get instancetype=s3.medium.2" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.getFlavorByHostType file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/vm.go:374"

新加redis接口

创建接口:

  1. name,必填项
  2. engine,先不开出来,代码中写死redis
  3. version,必填项 取值为3.0、4.0或5.0。
  4. capabiliy:必选项目,取值2、4、8、16、32、64
  5. no_password_access 先不开放,代码中写死fasle
  6. password 可选值,不指定后台生成随机密码
  7. vpc_id必选项
  8. subnet_id必填项
  9. available_zones:必填项
  10. product_id:这个估计要像镜像id一样有个函数来查下可用值。
    11 private_ip:可选值
    12 charge_mode
    13 is auoto_pay :不开放出来,默认是true
  11. period_type
  12. period_num
    16.is_auto_renew:可选,默认为true
    17 enable_publicip,不开放,写死false,不提供公网访问能力

guid:
seed:

出参:

  1. password
  2. privateIP
  3. port:6379,写死
  4. id
    5 user name:可以访问的用户名

华为云香港区域创建NAT网关失败,network not found错误

华为云香港区域创建NAT网关失败,network not found错误。
image
time="2020-03-31T23:29:19+08:00" level=info msg="plguin[nat-gateway]-action[create] start..." func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:95"
time="2020-03-31T23:29:19+08:00" level=info msg="read parameters from http request = &{0xc0003e2020 false true {0 0} false false false 0x69be30}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:117"
time="2020-03-31T23:29:19+08:00" level=info msg="action do with parameters = {[{{0023_0000000016} {SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880 CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c} 0023_0000000016 HW-SF-APP a4ede0b8-5be4-467c-b483-c429e2a032fc 1b31b52b-80b9-461b-a8e3-4ae6f79dfb5c}]}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:123"
time="2020-03-31T23:29:19+08:00" level=info msg="all natGateway = {[{{0023_0000000016} {SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880 CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c} 0023_0000000016 HW-SF-APP a4ede0b8-5be4-467c-b483-c429e2a032fc 1b31b52b-80b9-461b-a8e3-4ae6f79dfb5c}]} are created" func="github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.(*NatCreateAction).Do" file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/nat.go:205"
time="2020-03-31T23:29:19+08:00" level=error msg="plguin[nat-gateway]-action[create] meet error = Resource not found: [POST https://nat.ap-southeast-1.myhuaweicloud.com/v2.0/nat_gateways], error message: {"NeutronError": {"message": "Network 1b31b52b-80b9-461b-a8e3-4ae6f79dfb5c could not be found.", "type": "NetworkNotFound", "detail": ""}}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process.func1 file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:85"
time="2020-03-31T23:29:19+08:00" level=info msg="write data to client response=&{ResultCode:1 ResultMsg:Resource not found: [POST https://nat.ap-southeast-1.myhuaweicloud.com/v2.0/nat_gateways], error message: {"NeutronError": {"message": "Network 1b31b52b-80b9-461b-a8e3-4ae6f79dfb5c could not be found.", "type": "NetworkNotFound", "detail": ""}} Results:0xc0003e2280}" func=main.routeDispatcher file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:58"
/home/app/wecube-plugins-huawecloud/logs #

创建lb target 报错create not found

创建lb target 报错create not found
image

插件log:
time="2020-04-03T00:27:38+08:00" level=info msg="path strings = [ huaweicloud v1 lb-target create]" func=main.parsePluginRequest file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:74"
time="2020-04-03T00:27:38+08:00" level=info msg="parsed request = {v1 huaweicloud lb-target create 0xc000330100}" func=main.parsePluginRequest file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:82"
time="2020-04-03T00:27:38+08:00" level=info msg="plguin[lb-target]-action[create] start..." func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:96"
time="2020-04-03T00:27:38+08:00" level=error msg="plguin[lb-target]-action[create] meet error = lbTarget plugin,action = create not found" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process.func1 file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:86"
time="2020-04-03T00:27:38+08:00" level=info msg="write data to client response=&{ResultCode:1 ResultMsg:lbTarget plugin,action = create not found Results:}" func=main.routeDispatcher file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:58"

wecube log:
INFO c.w.w.p.c.s.plugin.PluginInvocationRestClient - About to call http://10.0.2.12:20003/huaweicloud/v1/lb-target/create with parameters: PluginRequest [requestId=417ad594-5d14-4070-b67b-b31af7c3eff5, inputs=[{callbackParameter=0053_0000000002, lb_port=8081, protocol=, identity_params=SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880, guid=0053_0000000002, host_ids=, lb_id=9926a9a5-bc4f-45cf-838f-51572482c174, cloud_params=CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c, host_ports=8081, operator=umadmin}]]
INFO c.w.w.p.c.s.plugin.PluginInvocationRestClient - Plugin response: PluginResponse [resultCode=1, resultMessage=lbTarget plugin,action = create not found, resultData=null]
ERROR c.w.w.p.c.s.workflow.PluginInvocationProcessor - Plugin service processing failed with code:1
ERROR c.w.w.p.c.s.workflow.PluginInvocationService - system errors:lbTarget plugin,action = create not found
INFO c.w.w.p.c.s.w.PluginInvocationResultService - response plugin interface invocation:resultCode=1, toString()=procDefId=wecube1585844185154:1:7a482df9-74fd-11ea-bad2-0242ac120005, procDefKey=wecube1585844185154, procDefVersion=1, procInstId=dcf2668e-74fe-11ea-bad2-0242ac120005, procInstKey=rV1hp5nt2F4, nodeId=Task_1q4w9o8, nodeName=T1_Task_1q4w9o8, executionId=Task_1q4w9o8_ice1
INFO c.w.w.p.c.service.workflow.WorkflowEngineService - handling service invocation result,procInstId=dcf2668e-74fe-11ea-bad2-0242ac120005,procInstKey=rV1hp5nt2F4,executionId=Task_1q4w9o8_ice1,resultCode=1

华为云创建snat rule失败

V1.1.2版本创建snat rule返回失败, 在V1.1.1版本测试是成功的。云上创建成功的。

image
image

time="2020-04-01T01:59:01+08:00" level=info msg="path strings = [ huaweicloud v1 nat-gateway add-snat-rule]" func=main.parsePluginRequest file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:74"
time="2020-04-01T01:59:01+08:00" level=info msg="parsed request = {v1 huaweicloud nat-gateway add-snat-rule 0xc000068200}" func=main.parsePluginRequest file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:82"
time="2020-04-01T01:59:01+08:00" level=info msg="plguin[nat-gateway]-action[add-snat-rule] start..." func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:95"
time="2020-04-01T01:59:01+08:00" level=info msg="read parameters from http request = &{0xc00038e020 false true {0 0} false false false 0x69be30}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:117"
time="2020-04-01T01:59:01+08:00" level=info msg="action do with parameters = {[{{0062_0000000001} {SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880 CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c} 0062_0000000001 09bb3ae7-c49c-4906-9e7f-a42bc011dd7d dd8b3b56-cf4d-4e16-9c53-b4bbd4eb3ef8 58829c53-b314-463c-ad17-ac72fc46a8a1}]}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:123"
time="2020-04-01T01:59:04+08:00" level=error msg="create snat rule failed,err=json: cannot unmarshal number into Go struct field SnatRule.source_type of type string" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.addSnatRule file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/nat.go:404"
time="2020-04-01T01:59:04+08:00" level=info msg="all snat rule = {[{{0062_0000000001} {SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880 CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c} 0062_0000000001 09bb3ae7-c49c-4906-9e7f-a42bc011dd7d dd8b3b56-cf4d-4e16-9c53-b4bbd4eb3ef8 58829c53-b314-463c-ad17-ac72fc46a8a1}]} are created" func="github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.(*AddSnatRuleAction).Do" file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/nat.go:425"
time="2020-04-01T01:59:04+08:00" level=error msg="plguin[nat-gateway]-action[add-snat-rule] meet error = json: cannot unmarshal number into Go struct field SnatRule.source_type of type string" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process.func1 file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:85"
time="2020-04-01T01:59:04+08:00" level=info msg="write data to client response=&{ResultCode:1 ResultMsg:json: cannot unmarshal number into Go struct field SnatRule.source_type of type string Results:0xc00038e2e0}" func=main.routeDispatcher file="/go/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:58"

删云硬盘接口返回失败, 卸载了云主机但是没有删掉云硬盘

[root@hwhost3 wecube-plugins-huaweicloud]# curl -X POST \

http://127.0.0.1:8083/huaweicloud/v1/block-storage/umount-delete
-H 'cache-control: no-cache'
-H 'content-type: application/json'
-H 'postman-token: 645a73cc-2ce1-2738-c086-493a177db721'
-d '{
"inputs":[
{
"instance_guid":"0032_0000000010",
"mount_dir":"/data/test",
"seed":"123456",
"attach_id":"ca7fcfd4-9064-4440-873e-669c9bb74f98",
"volume_name":"/dev/vdb",
"cloud_params":"CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c",
"password":"{cipher_a}04122b0762c0b26cf210bf048f328310",
"instance_id":"6ded12b7-387c-46d7-b6dc-373717055173",
"identity_params":"SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880",
"az":"ap-southeast-1b",
"guid":"0036_0000000001",
"id":"ca7fcfd4-9064-4440-873e-669c9bb74f98"
}
]
}
'
{"resultCode":"1","resultMessage":"{"ErrorCode":"APIGW.0101","Message":"The API does not exist or has not been published in the environment"}","results":{"outputs":[{"errorCode":"1","errorMessage"[root@hwhost3 wecube-plugins-huaweicloud]#
image
time="2020-04-04T21:41:10+08:00" level=info msg="path strings = [ huaweicloud v1 block-storage umount-delete]" func=main.parsePluginRequest file="/data/gowork/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:74"
time="2020-04-04T21:41:10+08:00" level=info msg="parsed request = {v1 huaweicloud block-storage umount-delete 0xc0006340c0}" func=main.parsePluginRequest file="/data/gowork/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:82"
time="2020-04-04T21:41:10+08:00" level=info msg="plguin[block-storage]-action[umount-delete] start..." func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/data/gowork/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:96"
time="2020-04-04T21:41:10+08:00" level=info msg="read parameters from http request = &{0xc00021e020 false true {0 0} false false false 0x68c190}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/data/gowork/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:118"
time="2020-04-04T21:41:10+08:00" level=info msg="action do with parameters = {[{{} {SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880 CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c} 0036_0000000001 ap-southeast-1b ca7fcfd4-9064-4440-873e-669c9bb74f98 ca7fcfd4-9064-4440-873e-669c9bb74f98 6ded12b7-387c-46d7-b6dc-373717055173 0032_0000000010 123456 {cipher_a}04122b0762c0b26cf210bf048f328310 /data/test /dev/vdb}]}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process file="/data/gowork/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:124"
time="2020-04-04T21:41:17+08:00" level=error msg="plguin[block-storage]-action[umount-delete] meet error = {"ErrorCode":"APIGW.0101","Message":"The API does not exist or has not been published in the environment"}" func=github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins.Process.func1 file="/data/gowork/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/plugins/plugins.go:86"
time="2020-04-04T21:41:17+08:00" level=info msg="write data to client response=&{ResultCode:1 ResultMsg:{"ErrorCode":"APIGW.0101","Message":"The API does not exist or has not been published in the environment"} Results:{Outputs:[{CallBackParameter:{Parameter:} Result:{Code:1 Message:{"ErrorCode":"APIGW.0101","Message":"The API does not exist or has not been published in the environment"}} Guid:0036_0000000001}]}}" func=main.routeDispatcher file="/data/gowork/src/github.com/WeBankPartners/wecube-plugins-huaweicloud/main.go:58"
[root@hwhost3 logs]#

接口需支持重复创建和删除

lb target接口变更增加和变更删除接口会报错。
比如第一次创建了4个后端服务器, 第二次创建5个后端服务器(包含前面的4台),接口会报错, 第五台后端服务器没有创建。
删除也是类似的情况。

增加的时候如果已存在就给个message说已存在,返回成功。
删除的时候如果找不到就给个message说找不到,返回成功。

image

创建rds返回错误

创建rds包月机器,报错缺少参数 Mode
image

{"callbackParameter":"0033_0000000003",
"is_auto_renew":null,
"machine_spec":"1C1G",
"support_ha":"false",
"charge_type":"prePaid",
"volume_type":"ULTRAHIGH",
"seed":"123456",
"period_num":"1",
"vpc_id":"96aa95c6-7492-4a6a-8b04-ccc7db64bb1b",
"security_group_id":"11cf2d43-05f9-401e-8e5e-ebcdb8003e80",
"cloud_params":"CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-3;ProjectId=07c34b94508010ff2fb3c011b4a986e3",
"ha_replication_mode":null,
"enterprise_project_id":"",
"password":"Abcd1234",
"identity_params":"SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880",
"port":"3306",
"name":"hwdb02",
"az":"ap-southeast-3b",
"guid":"0033_0000000003",
"subnet_id":"bd69cb3e-f421-4d68-bf5e-b7bfd2b175b0",
"volume_size":"40",
"id":"",
"engine_version":"5.7",
"period_type":"month"}

lb target删除接口需支持删除监听器及后端服务器

删除接口增加监听器ID,在删除的接口里增加一个参数,来标记是否删除监听器,如果是Y,就是删除监听器(删除监听器,后端服务器也就全删除了)。如果是N,就是删除后端服务器,保留监听器.

新增接口增加监听器ID,ID有值就是只新增服务器。ID是空就是新增监听器和服务器。

在华为云香港区域创建1C1G规格的rds返回规格无效

在华为云香港区域创建1C1G规格的rds返回规格无效。

插件创建的1c1g是规格 rds.mysql.c2.medium.rr mode 为repeat
香港区域的规格rds.mysql.c2.medium.rr mode 为single
包老师建议接口改成不自动,把云上的参数开出来

Request:

{"callbackParameter":"0033_0000000002",
"is_auto_renew":"",
"machine_spec":"1C1G",
"charge_type":"postPaid",
"volume_type":"ULTRAHIGH",
"seed":"123456",
"period_num":"0",
"vpc_id":"a4ede0b8-5be4-467c-b483-c429e2a032fc",
"security_group_id":"f2cf64fc-6847-4a55-9039-44619ab290e1",
"cloud_params":"CloudApiDomainName=myhuaweicloud.com;Region=ap-southeast-1;ProjectId=07bfdaf7db8026f92f8dc01167f3a87c",
"engine_type":"MySQL",
"enterprise_project_id":"",
"password":"Abcd1234",
"identity_params":"SecretKey=1dYRU1DBVaYKSixG0kcw2kqIehgEGlEdT4nb7dLN;AccessKey=Y361GSQB7SZPTRBZVAWI;DomainId=07bfdaf7d00026f90f8ac01118d2e880",
"port":"3306",
"name":"hwdb01",
"az":"ap-southeast-1a",
"guid":"0033_0000000002",
"subnet_id":"dbb2d5f0-a99a-4789-addb-7bc5af578c3f",
"volume_size":"40",
"id":"",
"engine_version":"5.6",
"period_type":""}

Response:

{"callbackParameter":"0033_0000000002",
"errorMessage":"{"ErrorCode":"DBS.280239",
"Message":"Invalid specifications."}",
"errorCode":"1",
"guid":"0033_0000000002"}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.