cloudasset

package
v0.9.1 Latest Latest
Warning

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

Go to latest
Published: Jun 5, 2019 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ResouceNameMap = map[string]ResourceMetadata{

	"cloudkms.googleapis.com/KeyRing":   {"google_kms_key_ring", "project"},
	"cloudkms.googleapis.com/CryptoKey": {"google_kms_crypto_key", "project"},

	"cloudresourcemanager.googleapis.com/Project": {"google_project", "project"},

	"compute.googleapis.com/Autoscaler":     {"google_compute_autoscaler", "project/zone"},
	"compute.googleapis.com/BackendService": {"google_compute_backend_service", "project"},
	"compute.googleapis.com/BackendBucket":  {"google_compute_backend_bucket", "project"},
	"compute.googleapis.com/Disk":           {"google_compute_disk", "project/zone"},
	"compute.googleapis.com/Firewall":       {"google_compute_firewall", "project"},

	"compute.googleapis.com/ForwardingRule":       {"google_compute_forwarding_rule", "project"},
	"compute.googleapis.com/GlobalForwardingRule": {"google_compute_global_forwarding_rule", "project"},
	"compute.googleapis.com/HealthCheck":          {"google_compute_health_check", "project"},
	"compute.googleapis.com/HttpHealthCheck":      {"google_compute_http_health_check", "project"},
	"compute.googleapis.com/Image":                {"google_compute_image", "project"},
	"compute.googleapis.com/Instance":             {"google_compute_instance", "project/zone"},
	"compute.googleapis.com/InstanceGroup":        {"google_compute_instance_group", "zone"},
	"compute.googleapis.com/InstanceGroupManager": {"google_compute_instance_group_manager", "project/zone"},
	"compute.googleapis.com/InstanceTemplate":     {"google_compute_instance_template", "project"},
	"compute.googleapis.com/Network":              {"google_compute_network", "project"},
	"compute.googleapis.com/Route":                {"google_compute_route", "project"},
	"compute.googleapis.com/Snapshot":             {"google_compute_snapshot", "project"},
	"compute.googleapis.com/SslCertificate":       {"google_compute_ssl_certificate", "project"},
	"compute.googleapis.com/Subnetwork":           {"google_compute_subnetwork", "region"},
	"compute.googleapis.com/TargetHttpProxy":      {"google_compute_target_http_proxy", "project"},
	"compute.googleapis.com/TargetHttpsProxy":     {"google_compute_target_https_proxy", "project"},

	"compute.googleapis.com/TargetPool": {"google_compute_target_pool", "project"},
	"compute.googleapis.com/UrlMap":     {"google_compute_url_map", "project"},

	"container.googleapis.com/Cluster": {"google_container_cluster", "location"},

	"storage.googleapis.com/Bucket": {"google_storage_bucket", "project"},

	"dns.googleapis.com/ManagedZone": {"google_dns_managed_zone", "project"},

	"dns.googleapis.com/Policy": {"google_dns_policy", "project"},

	"iam.googleapis.com/ServiceAccount": {"google_service_account", "project"},

	"pubsub.googleapis.com/Topic":        {"google_pubsub_topic", "project"},
	"pubsub.googleapis.com/Subscription": {"google_pubsub_subscription", "project"},

	"sqladmin.googleapis.com/Instance": {"google_sql_database_instance", "project"},
}

ResouceNameMap CloudAssetAPI AssetType -- Terraform Resource

Functions

func CreateCloudAsset

func CreateCloudAsset(credential, bucket, projectId, cloudAssetPrefix string) (string, error)

CreateCloudAsset create CloudAssetMetadata

func CreateFileForImport

func CreateFileForImport(meta_structs []Metadata, subCommand, defaultRegion, backendType, backendLocation, provider string) error

CreateFileForImport creates files for terraform import command

func InsertIntoBuffer

func InsertIntoBuffer(meta_struct *Metadata, buf *bytes.Buffer, resourceNameMap map[string]ResourceMetadata, funcMap template.FuncMap, subCommand string) error

InsertIntoBuffer meta_struct -> buffer

func IsDefaultFirewall

func IsDefaultFirewall(meta_struct Metadata) bool

func IsDefaultNetwork

func IsDefaultNetwork(meta_struct Metadata) bool

func IsDefaultRoute

func IsDefaultRoute(meta_struct Metadata) bool

func IsDefaultSubnetwork

func IsDefaultSubnetwork(meta_struct Metadata) bool

func IsServiceAccountDefault

func IsServiceAccountDefault(email string) bool

func ReadFileFromGCS

func ReadFileFromGCS(URI string) ([]byte, error)
	cmd := exec.Command("gsutil", "cat", gsUrl)
	cmd.Stdout = &stdout
	cmd.Stderr = &stderr
	err := cmd.Run()
	if err != nil {
		return nil, xerrors.Errorf("Error: %v \n%s", err, stderr.String())
	}
	return []byte(strings.TrimRight(stdout.String(), "\n")), nil
}

func ReadMetaFile

func ReadMetaFile(sourcefile string) ([]string, error)

ReadMetaFile reads CloudAssetAPI file and return Metadata[]string

Types

type Metadata

type Metadata struct {
	Name      string `json:"name"`
	AssetType string `json:"asset_type"`
	Resource  struct {
		Version              string `json:"version"`
		DiscoveryDocumentURI string `json:"discovery_document_uri"`
		DiscoveryName        string `json:"discovery_name"`
		Parent               string `json:"parent"`
		Data                 struct {
			ID        string `json:"id"`
			Name      string `json:"name"`
			ProjectId string `json:"projectid"`
			Region    string `json:"region"`
			Zone      string `json:"zone"`
			Email     string `json:"email"`
			Location  string `json:"location"`
		} `json:"data"`
	} `json:"resource"`
	ResourceMetadata `json:"resource_metadata"`
	DefaultRegion    string `json:"default_region"`
	BackendType      string `json:"backend_type "`
	BackendLocation  string `json:"backend_location"`
	Provider         string `json:"provider"`
}

Metadata is CloudAssetAPIMetadata Struct

func MetaByteToStruct

func MetaByteToStruct(bb [][]byte) ([]Metadata, error)

MetaStringToStruct convert String to Struct

func MetaStringToStruct

func MetaStringToStruct(ss []string) ([]Metadata, error)

MetaStringToStruct convert String to Struct

func RemoveDefaultResources

func RemoveDefaultResources(meta_structs []Metadata, defaultNetwork, defaultSubnetwork, defaultRoute, defaultFirewall string) []Metadata

RemoveDefaultResources default resources.

func TrimMetaStruct

func TrimMetaStruct(meta_structs []Metadata) []Metadata

type ResourceMetadata

type ResourceMetadata struct {
	Name         string
	ResourceType string
}

ResourceMetadata includes Resource Type

Jump to

Keyboard shortcuts

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