mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-06 18:51:13 +00:00
use v1 apis instead of beta
This commit is contained in:
parent
69ce33641d
commit
429f01689e
@ -7,7 +7,6 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/resource"
|
"github.com/hashicorp/terraform/helper/resource"
|
||||||
computeBeta "google.golang.org/api/compute/v0.beta"
|
|
||||||
"google.golang.org/api/compute/v1"
|
"google.golang.org/api/compute/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -31,15 +30,6 @@ type ComputeOperationWaiter struct {
|
|||||||
Zone string
|
Zone string
|
||||||
}
|
}
|
||||||
|
|
||||||
type ComputeOperationWaiterBeta struct {
|
|
||||||
Service *computeBeta.Service
|
|
||||||
Op *computeBeta.Operation
|
|
||||||
Project string
|
|
||||||
Region string
|
|
||||||
Type ComputeOperationWaitType
|
|
||||||
Zone string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (w *ComputeOperationWaiter) RefreshFunc() resource.StateRefreshFunc {
|
func (w *ComputeOperationWaiter) RefreshFunc() resource.StateRefreshFunc {
|
||||||
return func() (interface{}, string, error) {
|
return func() (interface{}, string, error) {
|
||||||
var op *compute.Operation
|
var op *compute.Operation
|
||||||
@ -70,36 +60,6 @@ func (w *ComputeOperationWaiter) RefreshFunc() resource.StateRefreshFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *ComputeOperationWaiterBeta) RefreshFunc() resource.StateRefreshFunc {
|
|
||||||
return func() (interface{}, string, error) {
|
|
||||||
var op *computeBeta.Operation
|
|
||||||
var err error
|
|
||||||
|
|
||||||
switch w.Type {
|
|
||||||
case ComputeOperationWaitGlobal:
|
|
||||||
op, err = w.Service.GlobalOperations.Get(
|
|
||||||
w.Project, w.Op.Name).Do()
|
|
||||||
case ComputeOperationWaitRegion:
|
|
||||||
op, err = w.Service.RegionOperations.Get(
|
|
||||||
w.Project, w.Region, w.Op.Name).Do()
|
|
||||||
case ComputeOperationWaitZone:
|
|
||||||
op, err = w.Service.ZoneOperations.Get(
|
|
||||||
w.Project, w.Zone, w.Op.Name).Do()
|
|
||||||
default:
|
|
||||||
return nil, "bad-type", fmt.Errorf(
|
|
||||||
"Invalid wait type: %#v", w.Type)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, "", err
|
|
||||||
}
|
|
||||||
|
|
||||||
log.Printf("[DEBUG] Got %q when asking for operation %q", op.Status, w.Op.Name)
|
|
||||||
|
|
||||||
return op, op.Status, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (w *ComputeOperationWaiter) Conf() *resource.StateChangeConf {
|
func (w *ComputeOperationWaiter) Conf() *resource.StateChangeConf {
|
||||||
return &resource.StateChangeConf{
|
return &resource.StateChangeConf{
|
||||||
Pending: []string{"PENDING", "RUNNING"},
|
Pending: []string{"PENDING", "RUNNING"},
|
||||||
@ -108,18 +68,9 @@ func (w *ComputeOperationWaiter) Conf() *resource.StateChangeConf {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *ComputeOperationWaiterBeta) Conf() *resource.StateChangeConf {
|
|
||||||
return &resource.StateChangeConf{
|
|
||||||
Pending: []string{"PENDING", "RUNNING"},
|
|
||||||
Target: []string{"DONE"},
|
|
||||||
Refresh: w.RefreshFunc(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ComputeOperationError wraps compute.OperationError and implements the
|
// ComputeOperationError wraps compute.OperationError and implements the
|
||||||
// error interface so it can be returned.
|
// error interface so it can be returned.
|
||||||
type ComputeOperationError compute.OperationError
|
type ComputeOperationError compute.OperationError
|
||||||
type ComputeOperationErrorBeta computeBeta.OperationError
|
|
||||||
|
|
||||||
func (e ComputeOperationError) Error() string {
|
func (e ComputeOperationError) Error() string {
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
@ -131,16 +82,6 @@ func (e ComputeOperationError) Error() string {
|
|||||||
return buf.String()
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e ComputeOperationErrorBeta) Error() string {
|
|
||||||
var buf bytes.Buffer
|
|
||||||
|
|
||||||
for _, err := range e.Errors {
|
|
||||||
buf.WriteString(err.Message + "\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
func computeOperationWaitGlobal(config *Config, op *compute.Operation, project string, activity string) error {
|
func computeOperationWaitGlobal(config *Config, op *compute.Operation, project string, activity string) error {
|
||||||
return computeOperationWaitGlobalTime(config, op, project, activity, 4)
|
return computeOperationWaitGlobalTime(config, op, project, activity, 4)
|
||||||
}
|
}
|
||||||
@ -170,31 +111,6 @@ func computeOperationWaitGlobalTime(config *Config, op *compute.Operation, proje
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func computeOperationWaitGlobalBeta(config *Config, op *computeBeta.Operation, project string, activity string) error {
|
|
||||||
w := &ComputeOperationWaiterBeta{
|
|
||||||
Service: config.clientComputeBeta,
|
|
||||||
Op: op,
|
|
||||||
Project: project,
|
|
||||||
Type: ComputeOperationWaitGlobal,
|
|
||||||
}
|
|
||||||
|
|
||||||
state := w.Conf()
|
|
||||||
state.Delay = 10 * time.Second
|
|
||||||
state.Timeout = 4 * time.Minute
|
|
||||||
state.MinTimeout = 2 * time.Second
|
|
||||||
opRaw, err := state.WaitForState()
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("Error waiting for %s: %s", activity, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
op = opRaw.(*computeBeta.Operation)
|
|
||||||
if op.Error != nil {
|
|
||||||
return ComputeOperationErrorBeta(*op.Error)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func computeOperationWaitRegion(config *Config, op *compute.Operation, project string, region, activity string) error {
|
func computeOperationWaitRegion(config *Config, op *compute.Operation, project string, region, activity string) error {
|
||||||
w := &ComputeOperationWaiter{
|
w := &ComputeOperationWaiter{
|
||||||
Service: config.clientCompute,
|
Service: config.clientCompute,
|
||||||
@ -221,32 +137,6 @@ func computeOperationWaitRegion(config *Config, op *compute.Operation, project s
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func computeOperationWaitRegionBeta(config *Config, op *computeBeta.Operation, project string, region, activity string) error {
|
|
||||||
w := &ComputeOperationWaiterBeta{
|
|
||||||
Service: config.clientComputeBeta,
|
|
||||||
Op: op,
|
|
||||||
Project: project,
|
|
||||||
Type: ComputeOperationWaitRegion,
|
|
||||||
Region: region,
|
|
||||||
}
|
|
||||||
|
|
||||||
state := w.Conf()
|
|
||||||
state.Delay = 10 * time.Second
|
|
||||||
state.Timeout = 4 * time.Minute
|
|
||||||
state.MinTimeout = 2 * time.Second
|
|
||||||
opRaw, err := state.WaitForState()
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("Error waiting for %s: %s", activity, err)
|
|
||||||
}
|
|
||||||
|
|
||||||
op = opRaw.(*computeBeta.Operation)
|
|
||||||
if op.Error != nil {
|
|
||||||
return ComputeOperationErrorBeta(*op.Error)
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func computeOperationWaitZone(config *Config, op *compute.Operation, project string, zone, activity string) error {
|
func computeOperationWaitZone(config *Config, op *compute.Operation, project string, zone, activity string) error {
|
||||||
return computeOperationWaitZoneTime(config, op, project, zone, 4, activity)
|
return computeOperationWaitZoneTime(config, op, project, zone, 4, activity)
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@ import (
|
|||||||
"golang.org/x/oauth2/google"
|
"golang.org/x/oauth2/google"
|
||||||
"golang.org/x/oauth2/jwt"
|
"golang.org/x/oauth2/jwt"
|
||||||
"google.golang.org/api/cloudresourcemanager/v1"
|
"google.golang.org/api/cloudresourcemanager/v1"
|
||||||
computeBeta "google.golang.org/api/compute/v0.beta"
|
|
||||||
"google.golang.org/api/compute/v1"
|
"google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/container/v1"
|
"google.golang.org/api/container/v1"
|
||||||
"google.golang.org/api/dns/v1"
|
"google.golang.org/api/dns/v1"
|
||||||
@ -32,7 +31,6 @@ type Config struct {
|
|||||||
Region string
|
Region string
|
||||||
|
|
||||||
clientCompute *compute.Service
|
clientCompute *compute.Service
|
||||||
clientComputeBeta *computeBeta.Service
|
|
||||||
clientContainer *container.Service
|
clientContainer *container.Service
|
||||||
clientDns *dns.Service
|
clientDns *dns.Service
|
||||||
clientPubsub *pubsub.Service
|
clientPubsub *pubsub.Service
|
||||||
@ -104,13 +102,6 @@ func (c *Config) loadAndValidate() error {
|
|||||||
}
|
}
|
||||||
c.clientCompute.UserAgent = userAgent
|
c.clientCompute.UserAgent = userAgent
|
||||||
|
|
||||||
log.Printf("[INFO] Instantiating GCE beta client...")
|
|
||||||
c.clientComputeBeta, err = computeBeta.New(client)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
c.clientComputeBeta.UserAgent = userAgent
|
|
||||||
|
|
||||||
log.Printf("[INFO] Instantiating GKE client...")
|
log.Printf("[INFO] Instantiating GKE client...")
|
||||||
c.clientContainer, err = container.New(client)
|
c.clientContainer, err = container.New(client)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -4,12 +4,11 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/hashcode"
|
"github.com/hashicorp/terraform/helper/hashcode"
|
||||||
"github.com/hashicorp/terraform/helper/schema"
|
"github.com/hashicorp/terraform/helper/schema"
|
||||||
"google.golang.org/api/compute/v0.beta"
|
"google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -100,12 +99,6 @@ func resourceComputeBackendService() *schema.Resource {
|
|||||||
Computed: true,
|
Computed: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
"load_balancing_scheme": &schema.Schema{
|
|
||||||
Type: schema.TypeString,
|
|
||||||
Optional: true,
|
|
||||||
ForceNew: true,
|
|
||||||
},
|
|
||||||
|
|
||||||
"port_name": &schema.Schema{
|
"port_name": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
@ -192,22 +185,13 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{
|
|||||||
service.EnableCDN = v.(bool)
|
service.EnableCDN = v.(bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := d.GetOk("load_balancing_scheme"); ok {
|
|
||||||
service.LoadBalancingScheme = v.(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
if v, ok := d.GetOk("region"); ok {
|
|
||||||
service.Region = v.(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
project, err := getProject(d, config)
|
project, err := getProject(d, config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Fprintf(os.Stderr, "[DEBUG] Creating new Backend Service: %#v", service)
|
|
||||||
log.Printf("[DEBUG] Creating new Backend Service: %#v", service)
|
log.Printf("[DEBUG] Creating new Backend Service: %#v", service)
|
||||||
op, err := config.clientComputeBeta.BackendServices.Insert(
|
op, err := config.clientCompute.BackendServices.Insert(
|
||||||
project, &service).Do()
|
project, &service).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error creating backend service: %s", err)
|
return fmt.Errorf("Error creating backend service: %s", err)
|
||||||
@ -217,7 +201,7 @@ func resourceComputeBackendServiceCreate(d *schema.ResourceData, meta interface{
|
|||||||
|
|
||||||
d.SetId(service.Name)
|
d.SetId(service.Name)
|
||||||
|
|
||||||
err = computeOperationWaitGlobalBeta(config, op, project, "Creating Backend Service")
|
err = computeOperationWaitGlobal(config, op, project, "Creating Backend Service")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -233,7 +217,7 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{})
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
service, err := config.clientComputeBeta.BackendServices.Get(
|
service, err := config.clientCompute.BackendServices.Get(
|
||||||
project, d.Id()).Do()
|
project, d.Id()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||||
@ -254,7 +238,6 @@ func resourceComputeBackendServiceRead(d *schema.ResourceData, meta interface{})
|
|||||||
d.Set("session_affinity", service.SessionAffinity)
|
d.Set("session_affinity", service.SessionAffinity)
|
||||||
d.Set("timeout_sec", service.TimeoutSec)
|
d.Set("timeout_sec", service.TimeoutSec)
|
||||||
d.Set("fingerprint", service.Fingerprint)
|
d.Set("fingerprint", service.Fingerprint)
|
||||||
d.Set("load_balancing_scheme", service.LoadBalancingScheme)
|
|
||||||
d.Set("self_link", service.SelfLink)
|
d.Set("self_link", service.SelfLink)
|
||||||
|
|
||||||
d.Set("backend", flattenBackends(service.Backends))
|
d.Set("backend", flattenBackends(service.Backends))
|
||||||
@ -304,16 +287,12 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{
|
|||||||
service.SessionAffinity = d.Get("session_affinity").(string)
|
service.SessionAffinity = d.Get("session_affinity").(string)
|
||||||
}
|
}
|
||||||
|
|
||||||
if v, ok := d.GetOk("load_balancing_scheme"); ok {
|
|
||||||
service.LoadBalancingScheme = v.(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
if d.HasChange("enable_cdn") {
|
if d.HasChange("enable_cdn") {
|
||||||
service.EnableCDN = d.Get("enable_cdn").(bool)
|
service.EnableCDN = d.Get("enable_cdn").(bool)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] Updating existing Backend Service %q: %#v", d.Id(), service)
|
log.Printf("[DEBUG] Updating existing Backend Service %q: %#v", d.Id(), service)
|
||||||
op, err := config.clientComputeBeta.BackendServices.Update(
|
op, err := config.clientCompute.BackendServices.Update(
|
||||||
project, d.Id(), &service).Do()
|
project, d.Id(), &service).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error updating backend service: %s", err)
|
return fmt.Errorf("Error updating backend service: %s", err)
|
||||||
@ -321,7 +300,7 @@ func resourceComputeBackendServiceUpdate(d *schema.ResourceData, meta interface{
|
|||||||
|
|
||||||
d.SetId(service.Name)
|
d.SetId(service.Name)
|
||||||
|
|
||||||
err = computeOperationWaitGlobalBeta(config, op, project, "Updating Backend Service")
|
err = computeOperationWaitGlobal(config, op, project, "Updating Backend Service")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -338,13 +317,13 @@ func resourceComputeBackendServiceDelete(d *schema.ResourceData, meta interface{
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] Deleting backend service %s", d.Id())
|
log.Printf("[DEBUG] Deleting backend service %s", d.Id())
|
||||||
op, err := config.clientComputeBeta.BackendServices.Delete(
|
op, err := config.clientCompute.BackendServices.Delete(
|
||||||
project, d.Id()).Do()
|
project, d.Id()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error deleting backend service: %s", err)
|
return fmt.Errorf("Error deleting backend service: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = computeOperationWaitGlobalBeta(config, op, project, "Deleting Backend Service")
|
err = computeOperationWaitGlobal(config, op, project, "Deleting Backend Service")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/hashicorp/terraform/helper/acctest"
|
"github.com/hashicorp/terraform/helper/acctest"
|
||||||
"github.com/hashicorp/terraform/helper/resource"
|
"github.com/hashicorp/terraform/helper/resource"
|
||||||
"github.com/hashicorp/terraform/terraform"
|
"github.com/hashicorp/terraform/terraform"
|
||||||
"google.golang.org/api/compute/v0.beta"
|
"google.golang.org/api/compute/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAccComputeBackendService_basic(t *testing.T) {
|
func TestAccComputeBackendService_basic(t *testing.T) {
|
||||||
@ -122,7 +122,7 @@ func testAccCheckComputeBackendServiceDestroy(s *terraform.State) error {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err := config.clientComputeBeta.BackendServices.Get(
|
_, err := config.clientCompute.BackendServices.Get(
|
||||||
config.Project, rs.Primary.ID).Do()
|
config.Project, rs.Primary.ID).Do()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return fmt.Errorf("Backend service still exists")
|
return fmt.Errorf("Backend service still exists")
|
||||||
@ -145,7 +145,7 @@ func testAccCheckComputeBackendServiceExists(n string, svc *compute.BackendServi
|
|||||||
|
|
||||||
config := testAccProvider.Meta().(*Config)
|
config := testAccProvider.Meta().(*Config)
|
||||||
|
|
||||||
found, err := config.clientComputeBeta.BackendServices.Get(
|
found, err := config.clientCompute.BackendServices.Get(
|
||||||
config.Project, rs.Primary.ID).Do()
|
config.Project, rs.Primary.ID).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -221,39 +221,11 @@ func TestAccComputeBackendService_withSessionAffinity(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestAccComputeBackendService_withInternalLoadBalancing(t *testing.T) {
|
|
||||||
serviceName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
|
|
||||||
checkName := fmt.Sprintf("tf-test-%s", acctest.RandString(10))
|
|
||||||
var svc compute.BackendService
|
|
||||||
|
|
||||||
// config := testAccProvider.Meta().(*Config)
|
|
||||||
|
|
||||||
resource.Test(t, resource.TestCase{
|
|
||||||
PreCheck: func() { testAccPreCheck(t) },
|
|
||||||
Providers: testAccProviders,
|
|
||||||
CheckDestroy: testAccCheckComputeBackendServiceDestroy,
|
|
||||||
Steps: []resource.TestStep{
|
|
||||||
resource.TestStep{
|
|
||||||
Config: testAccComputeBackendService_withInternalLoadBalancing(
|
|
||||||
serviceName, checkName, "us-central1"),
|
|
||||||
Check: resource.ComposeTestCheckFunc(
|
|
||||||
testAccCheckComputeBackendServiceExists(
|
|
||||||
"google_compute_backend_service.foobar", &svc),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
if svc.LoadBalancingScheme != "INTERNAL" {
|
|
||||||
t.Errorf("Expected LoadBalancingScheme == INTERNAL, got %q", svc.EnableCDN)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccComputeBackendService_basic(serviceName, checkName string) string {
|
func testAccComputeBackendService_basic(serviceName, checkName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "google_compute_backend_service" "foobar" {
|
resource "google_compute_backend_service" "foobar" {
|
||||||
name = "%s"
|
name = "%s"
|
||||||
health_checks = ["${google_compute_http_health_check.zero.name}"]
|
health_checks = ["${google_compute_http_health_check.zero.self_link}"]
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "google_compute_http_health_check" "zero" {
|
resource "google_compute_http_health_check" "zero" {
|
||||||
@ -282,25 +254,6 @@ resource "google_compute_http_health_check" "zero" {
|
|||||||
`, serviceName, checkName)
|
`, serviceName, checkName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAccComputeBackendService_withInternalLoadBalancing(serviceName, checkName, region string) string {
|
|
||||||
|
|
||||||
return fmt.Sprintf(`
|
|
||||||
resource "google_compute_backend_service" "foobar" {
|
|
||||||
name = "%s"
|
|
||||||
health_checks = ["${google_compute_http_health_check.zero.self_link}"]
|
|
||||||
load_balancing_scheme = "INTERNAL"
|
|
||||||
region = "%s"
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "google_compute_http_health_check" "zero" {
|
|
||||||
name = "%s"
|
|
||||||
request_path = "/"
|
|
||||||
check_interval_sec = 1
|
|
||||||
timeout_sec = 1
|
|
||||||
}
|
|
||||||
`, serviceName, region, checkName)
|
|
||||||
}
|
|
||||||
|
|
||||||
func testAccComputeBackendService_basicModified(serviceName, checkOne, checkTwo string) string {
|
func testAccComputeBackendService_basicModified(serviceName, checkOne, checkTwo string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "google_compute_backend_service" "foobar" {
|
resource "google_compute_backend_service" "foobar" {
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/schema"
|
"github.com/hashicorp/terraform/helper/schema"
|
||||||
"google.golang.org/api/compute/v0.beta"
|
"google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -69,6 +69,7 @@ func resourceComputeForwardingRule() *schema.Resource {
|
|||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
ForceNew: true,
|
ForceNew: true,
|
||||||
|
Computed: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
"port_range": &schema.Schema{
|
"port_range": &schema.Schema{
|
||||||
@ -77,6 +78,13 @@ func resourceComputeForwardingRule() *schema.Resource {
|
|||||||
ForceNew: true,
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"ports": &schema.Schema{
|
||||||
|
Type: schema.TypeSet,
|
||||||
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
|
Optional: true,
|
||||||
|
Set: schema.HashString,
|
||||||
|
},
|
||||||
|
|
||||||
"project": &schema.Schema{
|
"project": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
@ -100,6 +108,7 @@ func resourceComputeForwardingRule() *schema.Resource {
|
|||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
ForceNew: true,
|
ForceNew: true,
|
||||||
|
Computed: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -118,6 +127,12 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ps := d.Get("ports").(*schema.Set).List()
|
||||||
|
ports := make([]string, 0, len(ps))
|
||||||
|
for _, v := range ps {
|
||||||
|
ports = append(ports, v.(string))
|
||||||
|
}
|
||||||
|
|
||||||
frule := &compute.ForwardingRule{
|
frule := &compute.ForwardingRule{
|
||||||
BackendService: d.Get("backend_service").(string),
|
BackendService: d.Get("backend_service").(string),
|
||||||
IPAddress: d.Get("ip_address").(string),
|
IPAddress: d.Get("ip_address").(string),
|
||||||
@ -127,12 +142,13 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{
|
|||||||
Name: d.Get("name").(string),
|
Name: d.Get("name").(string),
|
||||||
Network: d.Get("network").(string),
|
Network: d.Get("network").(string),
|
||||||
PortRange: d.Get("port_range").(string),
|
PortRange: d.Get("port_range").(string),
|
||||||
|
Ports: ports,
|
||||||
Subnetwork: d.Get("subnetwork").(string),
|
Subnetwork: d.Get("subnetwork").(string),
|
||||||
Target: d.Get("target").(string),
|
Target: d.Get("target").(string),
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] ForwardingRule insert request: %#v", frule)
|
log.Printf("[DEBUG] ForwardingRule insert request: %#v", frule)
|
||||||
op, err := config.clientComputeBeta.ForwardingRules.Insert(
|
op, err := config.clientCompute.ForwardingRules.Insert(
|
||||||
project, region, frule).Do()
|
project, region, frule).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error creating ForwardingRule: %s", err)
|
return fmt.Errorf("Error creating ForwardingRule: %s", err)
|
||||||
@ -141,7 +157,7 @@ func resourceComputeForwardingRuleCreate(d *schema.ResourceData, meta interface{
|
|||||||
// It probably maybe worked, so store the ID now
|
// It probably maybe worked, so store the ID now
|
||||||
d.SetId(frule.Name)
|
d.SetId(frule.Name)
|
||||||
|
|
||||||
err = computeOperationWaitRegionBeta(config, op, project, region, "Creating Fowarding Rule")
|
err = computeOperationWaitRegion(config, op, project, region, "Creating Fowarding Rule")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -167,13 +183,13 @@ func resourceComputeForwardingRuleUpdate(d *schema.ResourceData, meta interface{
|
|||||||
if d.HasChange("target") {
|
if d.HasChange("target") {
|
||||||
target_name := d.Get("target").(string)
|
target_name := d.Get("target").(string)
|
||||||
target_ref := &compute.TargetReference{Target: target_name}
|
target_ref := &compute.TargetReference{Target: target_name}
|
||||||
op, err := config.clientComputeBeta.ForwardingRules.SetTarget(
|
op, err := config.clientCompute.ForwardingRules.SetTarget(
|
||||||
project, region, d.Id(), target_ref).Do()
|
project, region, d.Id(), target_ref).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error updating target: %s", err)
|
return fmt.Errorf("Error updating target: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = computeOperationWaitRegionBeta(config, op, project, region, "Updating Forwarding Rule")
|
err = computeOperationWaitRegion(config, op, project, region, "Updating Forwarding Rule")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -199,7 +215,7 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{})
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
frule, err := config.clientComputeBeta.ForwardingRules.Get(
|
frule, err := config.clientCompute.ForwardingRules.Get(
|
||||||
project, region, d.Id()).Do()
|
project, region, d.Id()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||||
@ -220,6 +236,7 @@ func resourceComputeForwardingRuleRead(d *schema.ResourceData, meta interface{})
|
|||||||
d.Set("load_balancing_scheme", frule.LoadBalancingScheme)
|
d.Set("load_balancing_scheme", frule.LoadBalancingScheme)
|
||||||
d.Set("network", frule.Network)
|
d.Set("network", frule.Network)
|
||||||
d.Set("port_range", frule.PortRange)
|
d.Set("port_range", frule.PortRange)
|
||||||
|
d.Set("ports", frule.Ports)
|
||||||
d.Set("project", project)
|
d.Set("project", project)
|
||||||
d.Set("region", region)
|
d.Set("region", region)
|
||||||
d.Set("subnetwork", frule.Subnetwork)
|
d.Set("subnetwork", frule.Subnetwork)
|
||||||
@ -244,13 +261,13 @@ func resourceComputeForwardingRuleDelete(d *schema.ResourceData, meta interface{
|
|||||||
|
|
||||||
// Delete the ForwardingRule
|
// Delete the ForwardingRule
|
||||||
log.Printf("[DEBUG] ForwardingRule delete request")
|
log.Printf("[DEBUG] ForwardingRule delete request")
|
||||||
op, err := config.clientComputeBeta.ForwardingRules.Delete(
|
op, err := config.clientCompute.ForwardingRules.Delete(
|
||||||
project, region, d.Id()).Do()
|
project, region, d.Id()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error deleting ForwardingRule: %s", err)
|
return fmt.Errorf("Error deleting ForwardingRule: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = computeOperationWaitRegionBeta(config, op, project, region, "Deleting Forwarding Rule")
|
err = computeOperationWaitRegion(config, op, project, region, "Deleting Forwarding Rule")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -61,7 +61,7 @@ func TestAccComputeForwardingRule_internalLoadBalancing(t *testing.T) {
|
|||||||
CheckDestroy: testAccCheckComputeForwardingRuleDestroy,
|
CheckDestroy: testAccCheckComputeForwardingRuleDestroy,
|
||||||
Steps: []resource.TestStep{
|
Steps: []resource.TestStep{
|
||||||
resource.TestStep{
|
resource.TestStep{
|
||||||
Config: testAccComputeForwardingRule_internalLoadBalancing(serviceName, checkName, ruleName),
|
Config: testAccComputeForwardingRule_internalLoadBalancing(serviceName, "us-central1", checkName, ruleName),
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
testAccCheckComputeForwardingRuleExists(
|
testAccCheckComputeForwardingRuleExists(
|
||||||
"google_compute_forwarding_rule.foobar"),
|
"google_compute_forwarding_rule.foobar"),
|
||||||
@ -154,13 +154,14 @@ resource "google_compute_forwarding_rule" "foobar" {
|
|||||||
`, addrName, poolName, ruleName)
|
`, addrName, poolName, ruleName)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testAccComputeForwardingRule_internalLoadBalancing(serviceName, checkName, ruleName string) string {
|
func testAccComputeForwardingRule_internalLoadBalancing(serviceName, region, checkName, ruleName string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "google_compute_region_backend_service" "foobar-bs" {
|
resource "google_compute_region_backend_service" "foobar-bs" {
|
||||||
name = "%s"
|
name = "%s"
|
||||||
description = "Resource created for Terraform acceptance testing"
|
description = "Resource created for Terraform acceptance testing"
|
||||||
health_checks = ["${google_compute_health_check.zero.self_link}"]
|
health_checks = ["${google_compute_health_check.zero.self_link}"]
|
||||||
load_balancing_scheme = "INTERNAL"
|
load_balancing_scheme = "INTERNAL"
|
||||||
|
region = "%s"
|
||||||
}
|
}
|
||||||
resource "google_compute_health_check" "zero" {
|
resource "google_compute_health_check" "zero" {
|
||||||
name = "%s"
|
name = "%s"
|
||||||
@ -177,6 +178,7 @@ resource "google_compute_forwarding_rule" "foobar" {
|
|||||||
name = "%s"
|
name = "%s"
|
||||||
load_balancing_scheme = "INTERNAL"
|
load_balancing_scheme = "INTERNAL"
|
||||||
backend_service = "${google_compute_region_backend_service.foobar-bs.self_link}"
|
backend_service = "${google_compute_region_backend_service.foobar-bs.self_link}"
|
||||||
|
ports = ["80"]
|
||||||
}
|
}
|
||||||
`, serviceName, checkName, ruleName)
|
`, serviceName, region, checkName, ruleName)
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,11 @@ import (
|
|||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
|
||||||
"regexp"
|
"regexp"
|
||||||
|
|
||||||
"github.com/hashicorp/terraform/helper/hashcode"
|
"github.com/hashicorp/terraform/helper/hashcode"
|
||||||
"github.com/hashicorp/terraform/helper/schema"
|
"github.com/hashicorp/terraform/helper/schema"
|
||||||
"google.golang.org/api/compute/v0.beta"
|
"google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -196,10 +195,9 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Fprintf(os.Stderr, "[DEBUG] Creating new Region Backend Service: %#v", service) // DO NOT SUBMIT
|
|
||||||
log.Printf("[DEBUG] Creating new Region Backend Service: %#v", service)
|
log.Printf("[DEBUG] Creating new Region Backend Service: %#v", service)
|
||||||
|
|
||||||
op, err := config.clientComputeBeta.RegionBackendServices.Insert(
|
op, err := config.clientCompute.RegionBackendServices.Insert(
|
||||||
project, region, &service).Do()
|
project, region, &service).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error creating backend service: %s", err)
|
return fmt.Errorf("Error creating backend service: %s", err)
|
||||||
@ -209,7 +207,7 @@ func resourceComputeRegionBackendServiceCreate(d *schema.ResourceData, meta inte
|
|||||||
|
|
||||||
d.SetId(service.Name)
|
d.SetId(service.Name)
|
||||||
|
|
||||||
err = computeOperationWaitGlobalBeta(config, op, project, "Creating Backend Service")
|
err = computeOperationWaitRegion(config, op, project, region, "Creating Region Backend Service")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -230,7 +228,7 @@ func resourceComputeRegionBackendServiceRead(d *schema.ResourceData, meta interf
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
service, err := config.clientComputeBeta.RegionBackendServices.Get(
|
service, err := config.clientCompute.RegionBackendServices.Get(
|
||||||
project, region, d.Id()).Do()
|
project, region, d.Id()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
if gerr, ok := err.(*googleapi.Error); ok && gerr.Code == 404 {
|
||||||
@ -310,7 +308,7 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] Updating existing Backend Service %q: %#v", d.Id(), service)
|
log.Printf("[DEBUG] Updating existing Backend Service %q: %#v", d.Id(), service)
|
||||||
op, err := config.clientComputeBeta.RegionBackendServices.Update(
|
op, err := config.clientCompute.RegionBackendServices.Update(
|
||||||
project, region, d.Id(), &service).Do()
|
project, region, d.Id(), &service).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error updating backend service: %s", err)
|
return fmt.Errorf("Error updating backend service: %s", err)
|
||||||
@ -318,7 +316,7 @@ func resourceComputeRegionBackendServiceUpdate(d *schema.ResourceData, meta inte
|
|||||||
|
|
||||||
d.SetId(service.Name)
|
d.SetId(service.Name)
|
||||||
|
|
||||||
err = computeOperationWaitGlobalBeta(config, op, project, "Updating Backend Service")
|
err = computeOperationWaitRegion(config, op, project, region, "Updating Backend Service")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -340,13 +338,13 @@ func resourceComputeRegionBackendServiceDelete(d *schema.ResourceData, meta inte
|
|||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("[DEBUG] Deleting backend service %s", d.Id())
|
log.Printf("[DEBUG] Deleting backend service %s", d.Id())
|
||||||
op, err := config.clientComputeBeta.RegionBackendServices.Delete(
|
op, err := config.clientCompute.RegionBackendServices.Delete(
|
||||||
project, region, d.Id()).Do()
|
project, region, d.Id()).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("Error deleting backend service: %s", err)
|
return fmt.Errorf("Error deleting backend service: %s", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = computeOperationWaitGlobalBeta(config, op, project, "Deleting Backend Service")
|
err = computeOperationWaitRegion(config, op, project, region, "Deleting Backend Service")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -355,61 +353,6 @@ func resourceComputeRegionBackendServiceDelete(d *schema.ResourceData, meta inte
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// func expandBackends(configured []interface{}) []*compute.Backend {
|
|
||||||
// backends := make([]*compute.Backend, 0, len(configured))
|
|
||||||
|
|
||||||
// for _, raw := range configured {
|
|
||||||
// data := raw.(map[string]interface{})
|
|
||||||
|
|
||||||
// b := compute.Backend{
|
|
||||||
// Group: data["group"].(string),
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if v, ok := data["balancing_mode"]; ok {
|
|
||||||
// b.BalancingMode = v.(string)
|
|
||||||
// }
|
|
||||||
// if v, ok := data["capacity_scaler"]; ok {
|
|
||||||
// b.CapacityScaler = v.(float64)
|
|
||||||
// }
|
|
||||||
// if v, ok := data["description"]; ok {
|
|
||||||
// b.Description = v.(string)
|
|
||||||
// }
|
|
||||||
// if v, ok := data["max_rate"]; ok {
|
|
||||||
// b.MaxRate = int64(v.(int))
|
|
||||||
// }
|
|
||||||
// if v, ok := data["max_rate_per_instance"]; ok {
|
|
||||||
// b.MaxRatePerInstance = v.(float64)
|
|
||||||
// }
|
|
||||||
// if v, ok := data["max_utilization"]; ok {
|
|
||||||
// b.MaxUtilization = v.(float64)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// backends = append(backends, &b)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return backends
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func flattenBackends(backends []*compute.Backend) []map[string]interface{} {
|
|
||||||
// result := make([]map[string]interface{}, 0, len(backends))
|
|
||||||
|
|
||||||
// for _, b := range backends {
|
|
||||||
// data := make(map[string]interface{})
|
|
||||||
|
|
||||||
// data["balancing_mode"] = b.BalancingMode
|
|
||||||
// data["capacity_scaler"] = b.CapacityScaler
|
|
||||||
// data["description"] = b.Description
|
|
||||||
// data["group"] = b.Group
|
|
||||||
// data["max_rate"] = b.MaxRate
|
|
||||||
// data["max_rate_per_instance"] = b.MaxRatePerInstance
|
|
||||||
// data["max_utilization"] = b.MaxUtilization
|
|
||||||
|
|
||||||
// result = append(result, data)
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return result
|
|
||||||
// }
|
|
||||||
|
|
||||||
func resourceGoogleComputeRegionBackendServiceBackendHash(v interface{}) int {
|
func resourceGoogleComputeRegionBackendServiceBackendHash(v interface{}) int {
|
||||||
if v == nil {
|
if v == nil {
|
||||||
return 0
|
return 0
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"github.com/hashicorp/terraform/helper/acctest"
|
"github.com/hashicorp/terraform/helper/acctest"
|
||||||
"github.com/hashicorp/terraform/helper/resource"
|
"github.com/hashicorp/terraform/helper/resource"
|
||||||
"github.com/hashicorp/terraform/terraform"
|
"github.com/hashicorp/terraform/terraform"
|
||||||
"google.golang.org/api/compute/v0.beta"
|
"google.golang.org/api/compute/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestAccComputeRegionBackendService_basic(t *testing.T) {
|
func TestAccComputeRegionBackendService_basic(t *testing.T) {
|
||||||
@ -122,7 +122,7 @@ func testAccCheckComputeRegionBackendServiceDestroy(s *terraform.State) error {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err := config.clientComputeBeta.RegionBackendServices.Get(
|
_, err := config.clientCompute.RegionBackendServices.Get(
|
||||||
config.Project, config.Region, rs.Primary.ID).Do()
|
config.Project, config.Region, rs.Primary.ID).Do()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
return fmt.Errorf("Backend service still exists")
|
return fmt.Errorf("Backend service still exists")
|
||||||
@ -145,7 +145,7 @@ func testAccCheckComputeRegionBackendServiceExists(n string, svc *compute.Backen
|
|||||||
|
|
||||||
config := testAccProvider.Meta().(*Config)
|
config := testAccProvider.Meta().(*Config)
|
||||||
|
|
||||||
found, err := config.clientComputeBeta.RegionBackendServices.Get(
|
found, err := config.clientCompute.RegionBackendServices.Get(
|
||||||
config.Project, config.Region, rs.Primary.ID).Do()
|
config.Project, config.Region, rs.Primary.ID).Do()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -259,6 +259,7 @@ resource "google_compute_region_backend_service" "foobar" {
|
|||||||
name = "%s"
|
name = "%s"
|
||||||
health_checks = ["${google_compute_health_check.zero.self_link}"]
|
health_checks = ["${google_compute_health_check.zero.self_link}"]
|
||||||
load_balancing_scheme = "INTERNAL"
|
load_balancing_scheme = "INTERNAL"
|
||||||
|
region = "%s"
|
||||||
}
|
}
|
||||||
|
|
||||||
resource "google_compute_health_check" "zero" {
|
resource "google_compute_health_check" "zero" {
|
||||||
|
@ -150,15 +150,8 @@ func resourceStorageObjectAclRead(d *schema.ResourceData, meta interface{}) erro
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, v := range res.Items {
|
for _, v := range res.Items {
|
||||||
role := ""
|
role := v.Role
|
||||||
entity := ""
|
entity := v.Entity
|
||||||
for key, val := range v.(map[string]interface{}) {
|
|
||||||
if key == "role" {
|
|
||||||
role = val.(string)
|
|
||||||
} else if key == "entity" {
|
|
||||||
entity = val.(string)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if _, in := re_local_map[entity]; in {
|
if _, in := re_local_map[entity]; in {
|
||||||
role_entity = append(role_entity, fmt.Sprintf("%s:%s", role, entity))
|
role_entity = append(role_entity, fmt.Sprintf("%s:%s", role, entity))
|
||||||
log.Printf("[DEBUG]: saving re %s-%s", role, entity)
|
log.Printf("[DEBUG]: saving re %s-%s", role, entity)
|
||||||
|
Loading…
Reference in New Issue
Block a user