當前位置: 首頁>>代碼示例>>Golang>>正文


Golang EC2.DetachInternetGateway方法代碼示例

本文整理匯總了Golang中github.com/mitchellh/goamz/ec2.EC2.DetachInternetGateway方法的典型用法代碼示例。如果您正苦於以下問題:Golang EC2.DetachInternetGateway方法的具體用法?Golang EC2.DetachInternetGateway怎麽用?Golang EC2.DetachInternetGateway使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/mitchellh/goamz/ec2.EC2的用法示例。


在下文中一共展示了EC2.DetachInternetGateway方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: resource_aws_internet_gateway_detach

func resource_aws_internet_gateway_detach(
	ec2conn *ec2.EC2,
	s *terraform.ResourceState) error {
	if s.Attributes["vpc_id"] == "" {
		return nil
	}

	log.Printf(
		"[INFO] Detaching Internet Gateway '%s' from VPC '%s'",
		s.ID,
		s.Attributes["vpc_id"])
	wait := true
	_, err := ec2conn.DetachInternetGateway(s.ID, s.Attributes["vpc_id"])
	if err != nil {
		ec2err, ok := err.(*ec2.Error)
		if ok {
			if ec2err.Code == "InvalidInternetGatewayID.NotFound" {
				err = nil
				wait = false
			} else if ec2err.Code == "Gateway.NotAttached" {
				err = nil
				wait = false
			}
		}

		if err != nil {
			return err
		}
	}

	delete(s.Attributes, "vpc_id")

	if !wait {
		return nil
	}

	// Wait for it to be fully detached before continuing
	log.Printf("[DEBUG] Waiting for internet gateway (%s) to detach", s.ID)
	stateConf := &resource.StateChangeConf{
		Pending: []string{"attached", "detaching", "available"},
		Target:  "detached",
		Refresh: IGAttachStateRefreshFunc(ec2conn, s.ID, "detached"),
		Timeout: 1 * time.Minute,
	}
	if _, err := stateConf.WaitForState(); err != nil {
		return fmt.Errorf(
			"Error waiting for internet gateway (%s) to detach: %s",
			s.ID, err)
	}

	return nil
}
開發者ID:GeorgeErickson,項目名稱:terraform-1,代碼行數:52,代碼來源:resource_aws_internet_gateway.go


注:本文中的github.com/mitchellh/goamz/ec2.EC2.DetachInternetGateway方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。