opentelekomcloud

package
v1.19.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2020 License: MPL-2.0 Imports: 192 Imported by: 0

Documentation

Overview

This set of code handles all functions required to configure addresses on an opentelekomcloud_compute_bms_server_v2 datasource.

This is a complicated task because it's not possible to obtain all information in a single API call. In fact, it even traverses multiple OpenTelekomCloud services.

The end result, from the user's point of view, is a structured set of understandable network information within the instance resource.

This set of code handles all functions required to configure networking on an opentelekomcloud_compute_instance_v2 resource.

This is a complicated task because it's not possible to obtain all information in a single API call. In fact, it even traverses multiple OpenTelekomCloud services.

The end result, from the user's point of view, is a structured set of understandable network information within the instance resource.

This set of code handles all functions required to configure networking on an opentelekomcloud_compute_instance_v2 resource.

This is a complicated task because it's not possible to obtain all information in a single API call. In fact, it even traverses multiple OpenTelekomCloud services.

The end result, from the user's point of view, is a structured set of understandable network information within the instance resource.

Index

Constants

View Source
const (
	WaitingForEnableState = "1"
	EnabledState          = "2"
	DisabledState         = "3"
	PendingDeletionState  = "4"
)
View Source
const (
	PoolID   = "0a2228f2-7f8a-45f1-8e09-9039e1d09975"
	PoolName = "admin_external_net"
)

Variables

View Source
var BandWidthChargeMode = [1]string{"traffic"}
View Source
var BandWidthShareType = [1]string{"PER"}
View Source
var ContainerFormats = [9]string{"ami", "ari", "aki", "bare", "ovf"}
View Source
var DiskFormats = [9]string{"ami", "ari", "aki", "vhd", "vmdk", "raw", "qcow2", "vdi", "iso"}
View Source
var DiskTypes = [2]string{"DATA", "SYS"}
View Source
var HealthAuditMethods = [2]string{"ELB_AUDIT", "NOVA_AUDIT"}
View Source
var HealthAuditTime = [4]int{5, 15, 60, 180}
View Source
var IpTypes = [1]string{"5_bgp"}
View Source
var PolicyActions = [3]string{"ADD", "REMOVE", "SET"}
View Source
var PolicyTypes = [3]string{"ALARM", "SCHEDULED", "RECURRENCE"}
View Source
var ProtocolFormats = []string{"HTTP", "TCP", "HTTPS", "SSL", "UDP"}
View Source
var REDACT_HEADERS = []string{"x-auth-token", "x-auth-key", "x-service-token",
	"x-storage-token", "x-account-meta-temp-url-key", "x-account-meta-temp-url-key-2",
	"x-container-meta-temp-url-key", "x-container-meta-temp-url-key-2", "set-cookie",
	"x-subject-token"}

List of headers that need to be redacted

View Source
var RecurrenceTypes = [3]string{"Daily", "Weekly", "Monthly"}
View Source
var Specs = [4]string{"1", "2", "3", "4"}
View Source
var TerminatePolices = [4]string{"OLD_CONFIG_OLD_INSTANCE", "OLD_CONFIG_NEW_INSTANCE", "OLD_INSTANCE", "NEW_INSTANCE"}
View Source
var VolumeTypes = [2]string{"SATA", "SSD"}

Functions

func AddValueSpecs

func AddValueSpecs(body map[string]interface{}) map[string]interface{}

AddValueSpecs expands the 'value_specs' object and removes 'value_specs' from the request body.

func BmsServerV2StateRefreshFunc added in v1.4.0

func BmsServerV2StateRefreshFunc(client *golangsdk.ServiceClient, instanceID string) resource.StateRefreshFunc

ServerV2StateRefreshFunc returns a resource.StateRefreshFunc that is used to watch an OpenTelekomCloud instance.

func BuildRequest

func BuildRequest(opts interface{}, parent string) (map[string]interface{}, error)

BuildRequest takes an opts struct and builds a request body for Gophercloud to execute

func BytesToString added in v1.2.0

func BytesToString(b []byte) string

func CheckDeleted

func CheckDeleted(d *schema.ResourceData, err error, msg string) error

CheckDeleted checks the error to see if it's a 404 (Not Found) and, if so, sets the resource ID to the empty string instead of throwing an error.

func ClusterStateRefreshFunc added in v1.3.0

func ClusterStateRefreshFunc(client *golangsdk.ServiceClient, clusterID string) resource.StateRefreshFunc

func CreateServerTags added in v1.1.0

func CreateServerTags(client *golangsdk.ServiceClient, server_id string, taglist []string) (*tags.Tags, error)

func DcsInstancesV1StateRefreshFunc added in v1.5.0

func DcsInstancesV1StateRefreshFunc(client *golangsdk.ServiceClient, instanceID string) resource.StateRefreshFunc

func DeleteServerTags added in v1.1.0

func DeleteServerTags(client *golangsdk.ServiceClient, server_id string) error

func DmsInstancesV1StateRefreshFunc added in v1.17.0

func DmsInstancesV1StateRefreshFunc(client *golangsdk.ServiceClient, instanceID string) resource.StateRefreshFunc

func ExtractValFromNid

func ExtractValFromNid(s string) (bool, string)

func ExtractValSFromNid

func ExtractValSFromNid(s string) (string, string)

func FloatingIPV2StateRefreshFunc

func FloatingIPV2StateRefreshFunc(computeClient *golangsdk.ServiceClient, d *schema.ResourceData) resource.StateRefreshFunc

func FormatHeaders

func FormatHeaders(headers http.Header, seperator string) string

FormatHeaders processes a headers object plus a deliminator, returning a string

func FormatNidFromValS

func FormatNidFromValS(asu string, id string) string

func GetAccountInfo

func GetAccountInfo(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) (string, string, error)

func GetCredentials

func GetCredentials(c *Config) (*awsCredentials.Credentials, error)

This function is responsible for reading credentials from the environment in the case that they're not explicitly specified in the Terraform configuration.

func GetNetworkName added in v1.1.0

func GetNetworkName(d *schema.ResourceData) string

func GetProjectName added in v1.19.0

func GetProjectName(d *schema.ResourceData, config *Config) string

GetProjectName returns the project name that was specified in the resource.

func GetRegion

func GetRegion(d *schema.ResourceData, config *Config) string

GetRegion returns the region that was specified in the resource. If a region was not set, the provider-level region is checked. The provider-level region can either be set by the region argument or by OS_REGION_NAME.

func GetServerTags added in v1.1.0

func GetServerTags(client *golangsdk.ServiceClient, server_id string) (*tags.Tags, error)

func InstanceStateRefreshFunc added in v1.1.0

func InstanceStateRefreshFunc(client *golangsdk.ServiceClient, instanceID string) resource.StateRefreshFunc

func JobStateRefreshFunc added in v1.3.0

func JobStateRefreshFunc(client *golangsdk.ServiceClient, jobID string) resource.StateRefreshFunc

func MapResourceProp added in v1.1.0

func MapResourceProp(d *schema.ResourceData, prop string) map[string]interface{}

MapResourceProp converts ResourceData property into a map

func MapValueSpecs

func MapValueSpecs(d *schema.ResourceData) map[string]string

MapValueSpecs converts ResourceData into a map

func Provider

func Provider() terraform.ResourceProvider

Provider returns a schema.Provider for OpenTelekomCloud.

func RedactHeaders

func RedactHeaders(headers http.Header) (processedHeaders []string)

RedactHeaders processes a headers object, returning a redacted list

func SecGroupV2StateRefreshFunc

func SecGroupV2StateRefreshFunc(computeClient *golangsdk.ServiceClient, d *schema.ResourceData) resource.StateRefreshFunc

func ServerV2StateRefreshFunc

func ServerV2StateRefreshFunc(client *golangsdk.ServiceClient, instanceID string) resource.StateRefreshFunc

ServerV2StateRefreshFunc returns a resource.StateRefreshFunc that is used to watch an OpenTelekomCloud instance.

func UpdateResourceTags added in v1.18.0

func UpdateResourceTags(conn *golangsdk.ServiceClient, d *schema.ResourceData, resourceType, id string) error

UpdateResourceTags is a helper to update the tags for a resource. It expects the tags field to be named "tags"

func ValidateInsensitiveStringList

func ValidateInsensitiveStringList(v interface{}, k string, l []string) (ws []string, errors []error)

Not currently used.

func ValidateIntRange

func ValidateIntRange(v interface{}, k string, l int, h int) (ws []string, errors []error)

func ValidateProtocolFormat

func ValidateProtocolFormat(v interface{}, k string) (ws []string, errors []error)

func ValidateStringList

func ValidateStringList(v interface{}, k string, l []string) (ws []string, errors []error)

func VolumeV2StateRefreshFunc

func VolumeV2StateRefreshFunc(client *golangsdk.ServiceClient, volumeID string) resource.StateRefreshFunc

VolumeV2StateRefreshFunc returns a resource.StateRefreshFunc that is used to watch an OpenTelekomCloud volume.

func WebsiteDomainUrl

func WebsiteDomainUrl(region string) string

Types

type Condition added in v1.17.0

type Condition struct {
	KeyPrefixEquals             string `json:"KeyPrefixEquals,omitempty"`
	HttpErrorCodeReturnedEquals string `json:"HttpErrorCodeReturnedEquals,omitempty"`
}

type Config

type Config struct {
	AccessKey        string
	SecretKey        string
	CACertFile       string
	ClientCertFile   string
	ClientKeyFile    string
	Cloud            string
	DomainID         string
	DomainName       string
	EndpointType     string
	IdentityEndpoint string
	Insecure         bool
	Password         string
	Region           string
	Swauth           bool
	TenantID         string
	TenantName       string
	Token            string
	SecurityToken    string
	Username         string
	UserID           string
	AgencyName       string
	AgencyDomainName string
	DelegatedProject string
	MaxRetries       int

	HwClient *golangsdk.ProviderClient

	DomainClient *golangsdk.ProviderClient
	// contains filtered or unexported fields
}

func (*Config) LoadAndValidate

func (c *Config) LoadAndValidate() error

func (*Config) MrsV1Client added in v1.3.0

func (c *Config) MrsV1Client(region string) (*golangsdk.ServiceClient, error)

func (*Config) SmnV2Client added in v1.1.0

func (c *Config) SmnV2Client(projectName string) (*golangsdk.ServiceClient, error)

type EIPCreateOpts added in v1.1.0

type EIPCreateOpts struct {
	eips.ApplyOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

EIPCreateOpts represents the attributes used when creating a new eip.

type FirewallGroup

FirewallGroup is an OpenTelekomCloud firewall group.

type FirewallGroupCreateOpts

type FirewallGroupCreateOpts struct {
	firewall_groups.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

FirewallGroupCreateOpts represents the attributes used when creating a new firewall.

func (FirewallGroupCreateOpts) ToFirewallCreateMap

func (opts FirewallGroupCreateOpts) ToFirewallCreateMap() (map[string]interface{}, error)

ToFirewallCreateMap casts a CreateOptsExt struct to a map. It overrides firewalls.ToFirewallCreateMap to add the ValueSpecs field.

type FirewallGroupUpdateOpts

type FirewallGroupUpdateOpts struct {
	firewall_groups.UpdateOptsBuilder
}

FirewallUpdateOpts

func (FirewallGroupUpdateOpts) ToFirewallUpdateMap

func (opts FirewallGroupUpdateOpts) ToFirewallUpdateMap() (map[string]interface{}, error)

type FloatingIPCreateOpts

type FloatingIPCreateOpts struct {
	floatingips.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

FloatingIPCreateOpts represents the attributes used when creating a new floating ip.

func (FloatingIPCreateOpts) ToFloatingIPCreateMap

func (opts FloatingIPCreateOpts) ToFloatingIPCreateMap() (map[string]interface{}, error)

ToFloatingIPCreateMap casts a CreateOpts struct to a map. It overrides floatingips.ToFloatingIPCreateMap to add the ValueSpecs field.

type Group added in v1.2.0

type Group struct {
	ID string
}

type InstanceAddresses

type InstanceAddresses struct {
	NetworkName  string
	InstanceNICs []InstanceNIC
}

InstanceAddresses is a collection of InstanceNICs, grouped by the network name. An instance/server could have multiple NICs on the same network.

type InstanceNIC

type InstanceNIC struct {
	FixedIPv4 string
	FixedIPv6 string
	MAC       string
}

InstanceNIC is a structured representation of a golangsdk servers.Server virtual NIC.

type InstanceNICS added in v1.2.0

type InstanceNICS struct {
	FixedIPv4 string
	FixedIPv6 string
}

InstanceNICS is a structured representation of a Gophercloud servers.Server virtual NIC.

type InstanceNetwork

type InstanceNetwork struct {
	UUID          string
	Name          string
	Port          string
	FixedIP       string
	AccessNetwork bool
}

InstanceNetwork represents a collection of network information that a Terraform instance needs to satisfy all network information requirements.

type InstanceNetworks added in v1.2.0

type InstanceNetworks struct {
	UUID          string
	Name          string
	Port          string
	FixedIP       string
	AccessNetwork bool
}

InstanceNetwork represents a collection of network information that a Terraform instance needs to satisfy all network information requirements.

type InstancesAddress added in v1.2.0

type InstancesAddress struct {
	NetworkName  string
	InstanceNICs []InstanceNICS
}

InstanceAddresses is a collection of InstanceNICs, grouped by the network name. An instance/server could have multiple NICs on the same network.

type KeyPairCreateOpts

type KeyPairCreateOpts struct {
	keypairs.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

KeyPairCreateOpts represents the attributes used when creating a new keypair.

func (KeyPairCreateOpts) ToKeyPairCreateMap

func (opts KeyPairCreateOpts) ToKeyPairCreateMap() (map[string]interface{}, error)

ToKeyPairCreateMap casts a CreateOpts struct to a map. It overrides keypairs.ToKeyPairCreateMap to add the ValueSpecs field.

type LogRoundTripper

type LogRoundTripper struct {
	Rt         http.RoundTripper
	OsDebug    bool
	MaxRetries int
}

LogRoundTripper satisfies the http.RoundTripper interface and is used to customize the default http client RoundTripper to allow for logging.

func (*LogRoundTripper) RoundTrip

func (lrt *LogRoundTripper) RoundTrip(request *http.Request) (*http.Response, error)

RoundTrip performs a round-trip HTTP request and logs relevant information about it.

type Network added in v1.2.0

type Network struct {
	ID string
}

type NetworkCreateOpts

type NetworkCreateOpts struct {
	networks.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

NetworkCreateOpts represents the attributes used when creating a new network.

func (NetworkCreateOpts) ToNetworkCreateMap

func (opts NetworkCreateOpts) ToNetworkCreateMap() (map[string]interface{}, error)

ToNetworkCreateMap casts a CreateOpts struct to a map. It overrides networks.ToNetworkCreateMap to add the ValueSpecs field.

type PolicyCreateOpts

type PolicyCreateOpts struct {
	policies.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

PolicyCreateOpts represents the attributes used when creating a new firewall policy.

func (PolicyCreateOpts) ToFirewallPolicyCreateMap

func (opts PolicyCreateOpts) ToFirewallPolicyCreateMap() (map[string]interface{}, error)

ToPolicyCreateMap casts a CreateOpts struct to a map. It overrides policies.ToFirewallPolicyCreateMap to add the ValueSpecs field.

type PortCreateOpts

type PortCreateOpts struct {
	ports.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

PortCreateOpts represents the attributes used when creating a new port.

func (PortCreateOpts) ToPortCreateMap

func (opts PortCreateOpts) ToPortCreateMap() (map[string]interface{}, error)

ToPortCreateMap casts a CreateOpts struct to a map. It overrides ports.ToPortCreateMap to add the ValueSpecs field.

type RecordSetCreateOpts

type RecordSetCreateOpts struct {
	recordsets.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

RecordSetCreateOpts represents the attributes used when creating a new DNS record set.

func (RecordSetCreateOpts) ToRecordSetCreateMap

func (opts RecordSetCreateOpts) ToRecordSetCreateMap() (map[string]interface{}, error)

ToRecordSetCreateMap casts a CreateOpts struct to a map. It overrides recordsets.ToRecordSetCreateMap to add the ValueSpecs field.

type Redirect added in v1.17.0

type Redirect struct {
	Protocol             string `json:"Protocol,omitempty"`
	HostName             string `json:"HostName,omitempty"`
	ReplaceKeyPrefixWith string `json:"ReplaceKeyPrefixWith,omitempty"`
	ReplaceKeyWith       string `json:"ReplaceKeyWith,omitempty"`
	HttpRedirectCode     string `json:"HttpRedirectCode,omitempty"`
}

type RouterCreateOpts

type RouterCreateOpts struct {
	routers.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

RouterCreateOpts represents the attributes used when creating a new router.

func (RouterCreateOpts) ToRouterCreateMap

func (opts RouterCreateOpts) ToRouterCreateMap() (map[string]interface{}, error)

ToRouterCreateMap casts a CreateOpts struct to a map. It overrides routers.ToRouterCreateMap to add the ValueSpecs field.

type RuleCreateOpts

type RuleCreateOpts struct {
	rules.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

RuleCreateOpts represents the attributes used when creating a new firewall rule.

func (RuleCreateOpts) ToRuleCreateMap

func (opts RuleCreateOpts) ToRuleCreateMap() (map[string]interface{}, error)

ToRuleCreateMap casts a CreateOpts struct to a map. It overrides rules.ToRuleCreateMap to add the ValueSpecs field.

type S3Website

type S3Website struct {
	Endpoint, Domain string
}

func WebsiteEndpoint

func WebsiteEndpoint(bucket string, region string) *S3Website

type ServerAddress added in v1.2.0

type ServerAddress struct {
	NetworkName string
	ServerNICS  []ServerNICS
}

ServerAddress is a collection of ServerNICS, grouped by the network name. An instance/server could have multiple NICs on the same network.

type ServerGroupCreateOpts

type ServerGroupCreateOpts struct {
	servergroups.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

ServerGroupCreateOpts represents the attributes used when creating a new router.

func (ServerGroupCreateOpts) ToServerGroupCreateMap

func (opts ServerGroupCreateOpts) ToServerGroupCreateMap() (map[string]interface{}, error)

ToServerGroupCreateMap casts a CreateOpts struct to a map. It overrides routers.ToServerGroupCreateMap to add the ValueSpecs field.

type ServerNICS added in v1.2.0

type ServerNICS struct {
	IP      string
	MAC     string
	Type    string
	Version float64
}

ServerNICS is a structured representation of a Gophercloud servers.Server virtual NIC.

type ServerNetwork added in v1.2.0

type ServerNetwork struct {
	UUID          string
	Name          string
	Port          string
	FixedIP       string
	AccessNetwork bool
}

ServerNetwork represents a collection of network information that a Terraform instance needs to satisfy all network information requirements.

type SubnetCreateOpts

type SubnetCreateOpts struct {
	subnets.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

SubnetCreateOpts represents the attributes used when creating a new subnet.

func (SubnetCreateOpts) ToSubnetCreateMap

func (opts SubnetCreateOpts) ToSubnetCreateMap() (map[string]interface{}, error)

ToSubnetCreateMap casts a CreateOpts struct to a map. It overrides subnets.ToSubnetCreateMap to add the ValueSpecs field.

type SubnetIP added in v1.5.0

type SubnetIP struct {
	ID  string
	IPs int
}

type VpnEndpointGroupCreateOpts added in v1.14.0

type VpnEndpointGroupCreateOpts struct {
	endpointgroups.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

VpnEndpointGroupCreateOpts represents the attributes used when creating a new endpoint group.

type VpnIKEPolicyCreateOpts added in v1.14.0

type VpnIKEPolicyCreateOpts struct {
	ikepolicies.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

VpnIKEPolicyCreateOpts represents the attributes used when creating a new IKE policy.

type VpnIKEPolicyLifetimeCreateOpts added in v1.14.0

type VpnIKEPolicyLifetimeCreateOpts struct {
	ikepolicies.LifetimeCreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

VpnIKEPolicyLifetimeCreateOpts represents the attributes used when creating a new lifetime for an IKE policy.

type VpnIPSecPolicyCreateOpts added in v1.14.0

type VpnIPSecPolicyCreateOpts struct {
	ipsecpolicies.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

VpnIPSecPolicyCreateOpts represents the attributes used when creating a new IPSec policy.

type VpnServiceCreateOpts added in v1.14.0

type VpnServiceCreateOpts struct {
	services.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

VpnServiceCreateOpts represents the attributes used when creating a new VPN service.

type VpnSiteConnectionCreateOpts added in v1.14.0

type VpnSiteConnectionCreateOpts struct {
	siteconnections.CreateOpts
	ValueSpecs map[string]string `json:"value_specs,omitempty"`
}

VpnSiteConnectionCreateOpts represents the attributes used when creating a new IPSec site connection.

type WebsiteRoutingRule added in v1.17.0

type WebsiteRoutingRule struct {
	Condition Condition `json:"Condition,omitempty"`
	Redirect  Redirect  `json:"Redirect"`
}

type ZoneCreateOpts

type ZoneCreateOpts struct {
	zones.CreateOpts
	ValueSpecs map[string]interface{} `json:"value_specs,omitempty"`
}

ZoneCreateOpts represents the attributes used when creating a new DNS zone.

func (ZoneCreateOpts) ToZoneCreateMap

func (opts ZoneCreateOpts) ToZoneCreateMap() (map[string]interface{}, error)

ToZoneCreateMap casts a CreateOpts struct to a map. It overrides zones.ToZoneCreateMap to add the ValueSpecs field.

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL