Skip to content

Commit

Permalink
Support enterprise security group in eni
Browse files Browse the repository at this point in the history
  • Loading branch information
duanliguo committed May 24, 2022
1 parent 174778d commit cae697b
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 26 deletions.
2 changes: 1 addition & 1 deletion bce/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ import (

// Constants and default values for the package bce
const (
SDK_VERSION = "0.9.116"
SDK_VERSION = "0.9.117"
URI_PREFIX = "/" // now support uri without prefix "v1" so just set root path
DEFAULT_DOMAIN = "baidubce.com"
DEFAULT_PROTOCOL = "http"
Expand Down
23 changes: 17 additions & 6 deletions services/eni/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,10 @@ func getClientToken() string {

func TestClient_CreateEni(t *testing.T) {
args := &CreateEniArgs{
Name: "hzb_3",
SubnetId: "sbn-5u7bv2e8mzwf",
InstanceId: "i-XA1jzMCk",
SecurityGroupIds: []string{
"g-enw8n4aib8nk",
Name: "enitest66",
SubnetId: "sbn-56s25qecigix",
EnterpriseSecurityGroupIds: []string{
"esg-rn49gxbin4x7",
},
PrivateIpSet: []PrivateIp{
{
Expand Down Expand Up @@ -153,7 +152,7 @@ func TestClient_ListEnis(t *testing.T) {
}

func TestClient_GetEniDetail(t *testing.T) {
result, err := ENI_CLIENT.GetEniDetail("eni-mmwvvbvfjch3")
result, err := ENI_CLIENT.GetEniDetail("eni-7c9yzhkfn9c2")
ExpectEqual(t.Errorf, nil, err)
r, err := json.Marshal(result)
fmt.Println(string(r))
Expand Down Expand Up @@ -276,6 +275,18 @@ func TestClient_UpdateEniSecurityGroup(t *testing.T) {
ExpectEqual(t.Errorf, nil, err)
}

func TestClient_UpdateEniEnterpriseSecurityGroup(t *testing.T) {
args := &UpdateEniEnterpriseSecurityGroupArgs{
EniId: "eni-7c9yzhkfn9c2",
ClientToken: getClientToken(),
EnterpriseSecurityGroupIds: []string{
"esg-e28mnj5vbrv5",
},
}
err := ENI_CLIENT.UpdateEniEnterpriseSecurityGroup(args)
ExpectEqual(t.Errorf, nil, err)
}

func TestClient_GetEniIPQuota(t *testing.T) {
args := &EniQuoteArgs{EniId: "eni-bd1ivf6ui4di"}
result, err := ENI_CLIENT.GetEniQuota(args)
Expand Down
22 changes: 22 additions & 0 deletions services/eni/eni.go
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,28 @@ func (c *Client) UpdateEniSecurityGroup(args *UpdateEniSecurityGroupArgs) error
return err
}

// UpdateEniEnterpriseSecurityGroup - update eni enterprise security group
//
// PARAMS:
// - args: the arguments to update eni enterprise security group
// RETURNS:
// - error: nil if success otherwise the specific error
func (c *Client) UpdateEniEnterpriseSecurityGroup(args *UpdateEniEnterpriseSecurityGroupArgs) error {
if args == nil {
return fmt.Errorf("The UpdateEniEnterpriseSecurityGroupArgs cannot be nil.")
}

err := bce.NewRequestBuilder(c).
WithURL(getURLForEniId(args.EniId)).
WithMethod(http.PUT).
WithQueryParam("bindEsg", "").
WithBody(args).
WithQueryParamFilter("clientToken", args.ClientToken).
Do()

return err
}

func (c *Client) GetEniQuota(args *EniQuoteArgs) (*EniQuoteInfo, error) {

result := &EniQuoteInfo{}
Expand Down
46 changes: 27 additions & 19 deletions services/eni/model.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@
package eni

type CreateEniArgs struct {
ClientToken string `json:"-"`
Name string `json:"name"`
SubnetId string `json:"subnetId"`
InstanceId string `json:"instanceId,omitempty"`
SecurityGroupIds []string `json:"securityGroupIds"`
PrivateIpSet []PrivateIp `json:"privateIpSet"`
Description string `json:"description,omitempty"`
ClientToken string `json:"-"`
Name string `json:"name"`
SubnetId string `json:"subnetId"`
InstanceId string `json:"instanceId,omitempty"`
SecurityGroupIds []string `json:"securityGroupIds"`
EnterpriseSecurityGroupIds []string `json:"enterpriseSecurityGroupIds"`
PrivateIpSet []PrivateIp `json:"privateIpSet"`
Description string `json:"description,omitempty"`
}

type CreateEniResult struct {
Expand Down Expand Up @@ -58,18 +59,19 @@ type ListEniResult struct {
}

type Eni struct {
EniId string `json:"eniId"`
Name string `json:"name"`
ZoneName string `json:"zoneName"`
Description string `json:"description"`
InstanceId string `json:"instanceId"`
MacAddress string `json:"macAddress"`
VpcId string `json:"vpcId"`
SubnetId string `json:"subnetId"`
Status string `json:"status"`
PrivateIpSet []PrivateIp `json:"privateIpSet"`
SecurityGroupIds []string `json:"securityGroupIds"`
CreatedTime string `json:"createdTime"`
EniId string `json:"eniId"`
Name string `json:"name"`
ZoneName string `json:"zoneName"`
Description string `json:"description"`
InstanceId string `json:"instanceId"`
MacAddress string `json:"macAddress"`
VpcId string `json:"vpcId"`
SubnetId string `json:"subnetId"`
Status string `json:"status"`
PrivateIpSet []PrivateIp `json:"privateIpSet"`
SecurityGroupIds []string `json:"securityGroupIds"`
EnterpriseSecurityGroupIds []string `json:"enterpriseSecurityGroupIds"`
CreatedTime string `json:"createdTime"`
}

type PrivateIp struct {
Expand Down Expand Up @@ -137,6 +139,12 @@ type UpdateEniSecurityGroupArgs struct {
SecurityGroupIds []string `json:"securityGroupIds"`
}

type UpdateEniEnterpriseSecurityGroupArgs struct {
EniId string `json:"-"`
ClientToken string `json:"-"`
EnterpriseSecurityGroupIds []string `json:"enterpriseSecurityGroupIds"`
}

type EniQuoteArgs struct {
EniId string `json:"-"`
InstanceId string `json:"-"`
Expand Down

0 comments on commit cae697b

Please sign in to comment.