Skip to content

Commit

Permalink
feat(elb): import elb 10sp2 resource, unit teset and
Browse files Browse the repository at this point in the history
docs
  • Loading branch information
Zhukun-Huawei committed Dec 25, 2023
1 parent 1be36a6 commit 90194fd
Show file tree
Hide file tree
Showing 8 changed files with 568 additions and 22 deletions.
34 changes: 20 additions & 14 deletions docs/data-sources/lb_certificate_v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,40 +4,46 @@ subcategory: "Elastic Load Balance (ELB)"

# flexibleengine_lb_certificate_v2

flexibleengine_lb_certificate_v2 provides details about a specific Certificate.
Use this data source to get the certificates in FlexibleEngine Elastic Load Balance (ELB).

## Example Usage

The following example shows how one might accept a certificate name as a variable to fetch this data source.

```hcl
variable "cert_name" {}
variable "certificate_name" {}
data "flexibleengine_lb_certificate_v2" "by_name" {
name = var.cert_name
data "flexibleengine_lb_certificate_v2" "test" {
name = var.certificate_name
type = "server"
}
```

## Argument Reference

The arguments of this data source act as filters for querying the available Certificates in the current region.
The given filters must match exactly one Certificate whose data will be exported as attributes.
The following arguments are supported:

* `name` - (Required, String) The name of certificate. The value is case sensitive and does not supports fuzzy matching.

* `id` - (Optional, String) The id of the specific Certificate to retrieve.
-> **NOTE:** The certificate name is not unique. Only returns the last created one when matched multiple certificates.

* `name` - (Optional, String) Human-readable name for the Certificate. Does not have to be unique.
* `region` - (Optional, String) The region in which to obtain the ELB certificate.
If omitted, the provider-level region will be used.

* `description` - (Optional, String) Human-readable description for the Certificate.
* `type` - (Optional, String) Specifies the certificate type. The default value is `server`. The value can be one of the
following:
+ `server`: indicates the server certificate.
+ `client`: indicates the CA certificate.

* `domain` - (Optional, String) The domain of the Certificate.
* `description` - Human-readable description for the Certificate.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `private_key` - The private encrypted key of the Certificate, PEM format.
* `id` - The certificate ID in UUID format.

* `domain` - The domain of the Certificate. This parameter is valid only when `type` is "server".

* `certificate` - The public encrypted key of the Certificate, PEM format.
* `expiration` - Indicates the time when the certificate expires.

* `update_time` - Indicates the update time.

Expand Down
44 changes: 44 additions & 0 deletions docs/data-sources/lb_certificates_v2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
---
subcategory: "Elastic Load Balance (ELB)"
---

# flexibleengine_lb_certificate_v2

Use this data source to get the certificate details in FlexibleEngine Elastic Load Balance (ELB).

## Example Usage

The following example shows how one might accept a certificate name as a variable to fetch this data source.

```hcl
variable "cert_name" {}
data "flexibleengine_lb_certificate_v2" "by_name" {
name = var.cert_name
}
```

## Argument Reference

The arguments of this data source act as filters for querying the available Certificates in the current region.
The given filters must match exactly one Certificate whose data will be exported as attributes.

* `id` - (Optional, String) The id of the specific Certificate to retrieve.

* `name` - (Optional, String) Human-readable name for the Certificate. Does not have to be unique.

* `description` - (Optional, String) Human-readable description for the Certificate.

* `domain` - (Optional, String) The domain of the Certificate.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `private_key` - The private encrypted key of the Certificate, PEM format.

* `certificate` - The public encrypted key of the Certificate, PEM format.

* `update_time` - Indicates the update time.

* `create_time` - Indicates the creation time.
72 changes: 72 additions & 0 deletions docs/data-sources/lb_listeners.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
---
subcategory: "Elastic Load Balance (ELB)"
---

# flexibleengine_lb_listeners

Use this data source to query the list of ELB listeners.

## Example Usage

```hcl
variable "protocol" {}
data "flexibleengine_lb_listeners" "test" {
protocol = var.protocol
}
```

## Argument Reference

The following arguments are supported:

* `region` - (Optional, String) Specifies the region in which to query the data source.
If omitted, the provider-level region will be used.

* `name` - (Optional, String) The listener name.

* `protocol` - (Optional, String) The listener protocol.
The valid values are **TCP**, **UDP**, **HTTP** and **TERMINATED_HTTPS**.

* `protocol_port` - (Optional, String) The front-end listening port of the listener.
The valid value is range from `1` to `65535`.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `id` - The resource ID.

* `listeners` - Listener list.
The [listeners](#listeners_listeners) structure is documented below.

<a name="listeners_listeners"></a>
The `listeners` block supports:

* `id` - The ELB listener ID.

* `name` - The listener name.

* `protocol` - The listener protocol.

* `protocol_port` - The front-end listening port of the listener.

* `default_pool_id` - The ID of the default pool with which the ELB listener is associated.

* `description` - The description of the ELB listener.

* `connection_limit` - The maximum number of connections allowed for the listener.

* `http2_enable` - Whether the ELB listener uses HTTP/2.

* `default_tls_container_ref` - The ID of the server certificate used by the listener.

* `sni_container_refs` - List of the SNI certificate (server certificates with a domain name) IDs used by the listener.

* `loadbalancers` - Listener list.
The [loadbalancers](#listeners_loadbalancers) structure is documented below.

<a name="listeners_loadbalancers"></a>
The `loadbalancers` block supports:

* `id` - The ELB loadbalancer ID.
49 changes: 49 additions & 0 deletions docs/resources/lb_logtank_v3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
subcategory: "Dedicated Load Balance (Dedicated ELB)"
---

# flexibleengine_lb_logtank_v3

Manage an LB logtank resource within FlexibleEngine.

## Example Usage

```hcl
variable "loadbalancer_id" {}
variable "group_id" {}
variable "topic_id" {}
resource "flexibleengine_lb_logtank_v3" "test" {
loadbalancer_id = var.loadbalancer_id
log_group_id = var.group_id
log_topic_id = var.topic_id
}
```

## Argument Reference

The following arguments are supported:

* `region` - (Optional, String, ForceNew) The region in which to create the logtank resource.
If omitted, the provider-level region will be used. Changing this creates a new logtank.

* `loadbalancer_id` - (Required, String, ForceNew) Specifies the ID of a loadbalancer. Changing this
creates a new logtank.

* `log_group_id` - (Required, String) Specifies the ID of a log group. It is provided by other service.

* `log_topic_id` - (Required, String) Specifies the ID of the subscribe topic.

## Attribute Reference

In addition to all arguments above, the following attributes are exported:

* `id` - The logtank ID.

## Import

LB logtank can be imported using the logtank ID, e.g.

```bash
terraform import flexibleengine_lb_logtank_v3.test 2f148a75-acd3-4ce7-8f63-d5c9fadab3a0
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
package acceptance

import (
"fmt"
"testing"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/acctest"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
"github.com/huaweicloud/terraform-provider-huaweicloud/huaweicloud/services/acceptance"
)

func TestAccDataSourceLBCertificateV2_basic(t *testing.T) {
name := fmt.Sprintf("cert-%s", acctest.RandString(6))
dataSourceName := "data.flexibleengine_lb_certificate_v2.cert_1"
dc := acceptance.InitDataSourceCheck(dataSourceName)

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: TestAccProviderFactories,
Steps: []resource.TestStep{
{
Config: testAccLBCertificateSourceV2_conf(name),
Check: resource.ComposeTestCheckFunc(
dc.CheckResourceExists(),
resource.TestCheckResourceAttr(dataSourceName, "name", name),
resource.TestCheckResourceAttr(dataSourceName, "type", "server"),
resource.TestCheckResourceAttrSet(dataSourceName, "domain"),
resource.TestCheckResourceAttrSet(dataSourceName, "description"),
),
},
},
})
}

func testAccLBCertificateSourceV2_conf(name string) string {
return fmt.Sprintf(`
data "flexibleengine_lb_certificate_v2" "cert_1" {
name = flexibleengine_elb_certificate.certificate_1.name
depends_on = [flexibleengine_elb_certificate.certificate_1]
}
resource "flexibleengine_elb_certificate" "certificate_1" {
name = "%s"
description = "terraform test certificate"
domain = "www.elb.com"
type = "server"
private_key = <<EOT
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x
qEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1
UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15
MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ
M3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5
13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA
DRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx
Nwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg
iMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/
rh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN
1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H
yDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P
RoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA
vABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc
Uk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC
aKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK
Hdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf
75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs
uvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF
Up7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD
79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve
yHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4
2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2
ep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl
nEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1
-----END RSA PRIVATE KEY-----
EOT
certificate = <<EOT
-----BEGIN CERTIFICATE-----
MIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV
BAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw
CQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j
b20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4
eDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE
CwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN
2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld
iE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb
3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz
Q8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5
mf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID
AQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw
FoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B
AQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0
83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG
r4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY
c8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA
i34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic
i1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==
-----END CERTIFICATE-----
EOT
}
`, name)
}
Loading

0 comments on commit 90194fd

Please sign in to comment.