Skip to content

Commit

Permalink
add new resource ram policy and user_policy_attachment
Browse files Browse the repository at this point in the history
  • Loading branch information
xiaozhu36 committed Dec 11, 2017
1 parent 1fdc4be commit e6665c0
Show file tree
Hide file tree
Showing 50 changed files with 4,106 additions and 332 deletions.
61 changes: 44 additions & 17 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,56 @@
## 0.1.1 (Unreleased)
## 1.0.0 (Unreleased)

IMPROVEMENTS:

- *New Resource:* _alicloud_oss_bucket_ [GH-10]
- *New Resource*: _alicloud_oss_bucket_object [GH-14]
- *New output_file* option for data sources: export data to a specified file [GH-29]
- resource/rds: add ability to change instance password [GH-17]
- resource/rds: Add ability to import existing RDS resources [GH-16]
- datasource/alicloud_zones: Add more options for filtering [GH-19]
- *New Resource:* _alicloud_ram_policy_ [GH-46]
- *New Resource*: _alicloud_ram_user_policy_attachment_ [GH-46]
- *New Resource* _alicloud_ram_user_ [GH-44]
- *New Datasource* _alicloud_ram_policies_ [GH-46]
- *New Datasource* _alicloud_ram_users_ [GH-44]

- Added support for importing:
- `alicloud_ram_policy` [GH-46]
- `alicloud_ram_user` [GH-44]


## 0.1.1 (December 11, 2017)

IMPROVEMENTS:

- *New Resource:* _alicloud_key_pair_ ([#27](https://github.com/terraform-providers/terraform-provider-alicloud/pull/27))
- *New Resource*: _alicloud_key_pair_attachment_ ([#28](https://github.com/terraform-providers/terraform-provider-alicloud/pull/28))
- *New Resource*: _alicloud_router_interface_ ([#40](https://github.com/terraform-providers/terraform-provider-alicloud/pull/40))
- *New Resource:* _alicloud_oss_bucket_ ([#10](https://github.com/terraform-providers/terraform-provider-alicloud/pull/10))
- *New Resource*: _alicloud_oss_bucket_object_ ([#14](https://github.com/terraform-providers/terraform-provider-alicloud/pull/14))
- *New Datasource* _alicloud_key_pairs_ ([#30](https://github.com/terraform-providers/terraform-provider-alicloud/pull/30))
- *New Datasource* _alicloud_vpcs_ ([#34](https://github.com/terraform-providers/terraform-provider-alicloud/pull/34))
- *New output_file* option for data sources: export data to a specified file ([#29](https://github.com/terraform-providers/terraform-provider-alicloud/pull/29))
- resource/instance:add new parameter `key_name` ([#31](https://github.com/terraform-providers/terraform-provider-alicloud/pull/31))
- resource/route_entry: new nexthop type 'RouterInterface' for route entry ([#41](https://github.com/terraform-providers/terraform-provider-alicloud/pull/41))
- resource/security_group_rule: Remove `cidr_ip` contribute "ConflictsWith" ([#39](https://github.com/terraform-providers/terraform-provider-alicloud/pull/39))
- resource/rds: add ability to change instance password ([#17](https://github.com/terraform-providers/terraform-provider-alicloud/pull/17))
- resource/rds: Add ability to import existing RDS resources ([#16](https://github.com/terraform-providers/terraform-provider-alicloud/pull/16))
- datasource/alicloud_zones: Add more options for filtering ([#19](https://github.com/terraform-providers/terraform-provider-alicloud/pull/19))
- Added support for importing:
- `alicloud_nat_gateway`
- `alicloud_ess_schedule`
- `alicloud_ess_scaling_group`
- `alicloud_instance`
- `alicloud_eip`
- `alicloud_disk`
- `alicloud_vpc` ([#32](https://github.com/terraform-providers/terraform-provider-alicloud/pull/32))
- `alicloud_route_entry` ([#33](https://github.com/terraform-providers/terraform-provider-alicloud/pull/33))
- `alicloud_nat_gateway` ([#26](https://github.com/terraform-providers/terraform-provider-alicloud/pull/26))
- `alicloud_ess_schedule` ([#25](https://github.com/terraform-providers/terraform-provider-alicloud/pull/25))
- `alicloud_ess_scaling_group` ([#24](https://github.com/terraform-providers/terraform-provider-alicloud/pull/24))
- `alicloud_instance` ([#23](https://github.com/terraform-providers/terraform-provider-alicloud/pull/23))
- `alicloud_eip` ([#22](https://github.com/terraform-providers/terraform-provider-alicloud/pull/22))
- `alicloud_disk` ([#21](https://github.com/terraform-providers/terraform-provider-alicloud/pull/21))

BUG FIXES:

- resource/disk_attachment: Fix issue attaching multiple disks and set disk_attachment's parameter 'device_name' as deprecated [GH-9]
- resource/rds: Fix diff error about rds security_ips [GH-13]
- resource/security_group_rule: Fix diff error when authorizing security group rules [GH-15]
- resource/disk_attachment: Fix issue attaching multiple disks and set disk_attachment's parameter 'device_name' as deprecated ([#9](https://github.com/terraform-providers/terraform-provider-alicloud/pull/9))
- resource/rds: Fix diff error about rds security_ips ([#13](https://github.com/terraform-providers/terraform-provider-alicloud/pull/13))
- resource/security_group_rule: Fix diff error when authorizing security group rules ([#15](https://github.com/terraform-providers/terraform-provider-alicloud/pull/15))
- resource/security_group_rule: Fix diff bug by modifying 'DestCidrIp' to 'DestGroupId' when running read ([#35](https://github.com/terraform-providers/terraform-provider-alicloud/pull/35))


## 0.1.0 (June 20, 2017)

NOTES:

* Same functionality as that of Terraform 0.9.8. Repacked as part of [Provider Splitout](https://www.hashicorp.com/blog/upcoming-provider-changes-in-terraform-0-10/)
* Same functionality as that of Terraform 0.9.8. Repacked as part of [Provider Splitout](https://www.hashicorp.com/blog/upcoming-provider-changes-in-terraform-0-10/)
68 changes: 62 additions & 6 deletions alicloud/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,17 @@ import (
"fmt"

"github.com/aliyun/aliyun-oss-go-sdk/oss"
"github.com/denverdino/aliyungo/cdn"
"github.com/denverdino/aliyungo/common"
"github.com/denverdino/aliyungo/dns"
"github.com/denverdino/aliyungo/ecs"
"github.com/denverdino/aliyungo/ess"
"github.com/denverdino/aliyungo/location"
"github.com/denverdino/aliyungo/ram"
"github.com/denverdino/aliyungo/rds"
"github.com/denverdino/aliyungo/slb"

"github.com/denverdino/aliyungo/cs"
"github.com/hashicorp/terraform/terraform"
"log"
"strings"
Expand All @@ -33,6 +38,10 @@ type AliyunClient struct {
vpcconn *ecs.Client
slbconn *slb.Client
ossconn *oss.Client
dnsconn *dns.Client
ramconn ram.RamClientInterface
csconn *cs.Client
cdnconn *cdn.CdnClient
}

// Client for AliyunClient
Expand Down Expand Up @@ -72,11 +81,27 @@ func (c *Config) Client() (*AliyunClient, error) {
if err != nil {
return nil, err
}

ossconn, err := c.ossConn()
if err != nil {
return nil, err
}
dnsconn, err := c.dnsConn()
if err != nil {
return nil, err
}
ramconn, err := c.ramConn()
if err != nil {
return nil, err
}
csconn, err := c.csConn()
if err != nil {
return nil, err
}
cdnconn, err := c.cdnConn()
if err != nil {
return nil, err
}

return &AliyunClient{
Region: c.Region,
ecsconn: ecsconn,
Expand All @@ -86,6 +111,10 @@ func (c *Config) Client() (*AliyunClient, error) {
rdsconn: rdsconn,
essconn: essconn,
ossconn: ossconn,
dnsconn: dnsconn,
ramconn: ramconn,
csconn: csconn,
cdnconn: cdnconn,
}, nil
}

Expand Down Expand Up @@ -116,9 +145,7 @@ func (c *Config) ecsConn() (*ecs.Client, error) {
client.SetBusinessInfo(BusinessInfoKey)
client.SetUserAgent(getUserAgent())

_, err := client.DescribeRegions()

if err != nil {
if _, err := client.DescribeRegions(); err != nil {
return nil, err
}

Expand Down Expand Up @@ -166,17 +193,46 @@ func (c *Config) ossConn() (*oss.Client, error) {
return nil, fmt.Errorf("Describe endpoint using region: %#v got an error: %#v.", c.Region, err)
}
endpointItem := endpoints.Endpoints.Endpoint
var endpoint string
if endpointItem == nil || len(endpointItem) <= 0 {
return nil, fmt.Errorf("Cannot find endpoint in the region: %#v", c.Region)
// return nil, fmt.Errorf("Cannot find endpoint in the region: %#v", c.Region")
log.Printf("Cannot find endpoint in the region: %#v", c.Region)
endpoint = ""
} else {
endpoint = strings.ToLower(endpointItem[0].Protocols.Protocols[0]) + "://" + endpointItem[0].Endpoint
}

endpoint := strings.ToLower(endpointItem[0].Protocols.Protocols[0]) + "://" + endpointItem[0].Endpoint
log.Printf("[DEBUG] Instantiate OSS client using endpoint: %#v", endpoint)
client, err := oss.New(endpoint, c.AccessKey, c.SecretKey, oss.UserAgent(getUserAgent()))

return client, err
}

func (c *Config) dnsConn() (*dns.Client, error) {
client := dns.NewClientNew(c.AccessKey, c.SecretKey)
client.SetBusinessInfo(BusinessInfoKey)
client.SetUserAgent(getUserAgent())
return client, nil
}

func (c *Config) ramConn() (ram.RamClientInterface, error) {
client := ram.NewClient(c.AccessKey, c.SecretKey)
return client, nil
}

func (c *Config) csConn() (*cs.Client, error) {
client := cs.NewClient(c.AccessKey, c.SecretKey)
client.SetUserAgent(getUserAgent())
return client, nil
}

func (c *Config) cdnConn() (*cdn.CdnClient, error) {
client := cdn.NewClient(c.AccessKey, c.SecretKey)
client.SetBusinessInfo(BusinessInfoKey)
client.SetUserAgent(getUserAgent())
return client, nil
}

func getUserAgent() string {
return fmt.Sprintf("HashiCorp-Terraform-v%s", terraform.VersionString())
}
Loading

0 comments on commit e6665c0

Please sign in to comment.