chore: update to name boundary (#17)
This commit is contained in:
1 parent
46c5491a54
commit
f6573a6277
20 files changed
+272
-207
No files matched your search
@@ -16,4 +16,4 @@ update-deps:
|
||||
GOPROXY=direct GOSUMDB=off go get -u
|
||||
|
||||
dev:
|
||||
go build -o ~/.terraform.d/plugins/terraform-provider-watchtower main.go
|
||||
go build -o ~/.terraform.d/plugins/terraform-provider-boundary main.go
|
||||
@@ -3,19 +3,21 @@ module github.com/hashicorp/terraform-provider-watchtower
|
||||
go 1.12
|
||||
|
||||
require (
|
||||
cloud.google.com/go v0.61.0 // indirect
|
||||
cloud.google.com/go v0.63.0 // indirect
|
||||
cloud.google.com/go/storage v1.10.0 // indirect
|
||||
github.com/agext/levenshtein v1.2.3 // indirect
|
||||
github.com/apparentlymart/go-cidr v1.1.0 // indirect
|
||||
github.com/aws/aws-sdk-go v1.33.12 // indirect
|
||||
github.com/aws/aws-sdk-go v1.34.2 // indirect
|
||||
github.com/corbym/gocrest v1.0.3 // indirect
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.14.6 // indirect
|
||||
github.com/hashicorp/boundary v0.0.0-20200811212500-4cfab0430733
|
||||
github.com/hashicorp/go-getter v1.4.1 // indirect
|
||||
github.com/hashicorp/go-plugin v1.3.0 // indirect
|
||||
github.com/hashicorp/go-retryablehttp v0.6.7 // indirect
|
||||
github.com/hashicorp/go-version v1.2.1 // indirect
|
||||
github.com/hashicorp/hcl/v2 v2.6.0 // indirect
|
||||
github.com/hashicorp/terraform-plugin-sdk v1.15.0
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20191119180714-d2e4933b9136 // indirect
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 // indirect
|
||||
github.com/hashicorp/watchtower v0.0.0-20200724221034-4fa8c5415bb5
|
||||
github.com/hashicorp/yamux v0.0.0-20200609203250-aecfd211c9ce // indirect
|
||||
github.com/jackc/pgx v3.6.2+incompatible // indirect
|
||||
@@ -24,6 +26,7 @@ require (
|
||||
github.com/oklog/run v1.1.0 // indirect
|
||||
github.com/sergi/go-diff v1.1.0 // indirect
|
||||
github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 // indirect
|
||||
github.com/spf13/afero v1.3.4 // indirect
|
||||
github.com/stretchr/testify v1.6.1
|
||||
github.com/ulikunitz/xz v0.5.7 // indirect
|
||||
github.com/vektah/gqlparser v1.1.2 // indirect
|
||||
@@ -32,11 +35,9 @@ require (
|
||||
github.com/zclconf/go-cty-yaml v1.0.2 // indirect
|
||||
go.opencensus.io v0.22.4 // indirect
|
||||
golang.org/x/net v0.0.0-20200707034311-ab3426394381 // indirect
|
||||
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c // indirect
|
||||
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed // indirect
|
||||
golang.org/x/text v0.3.3 // indirect
|
||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect
|
||||
golang.org/x/tools v0.0.0-20200724172932-b5fc9d354d99 // indirect
|
||||
google.golang.org/api v0.29.0 // indirect
|
||||
google.golang.org/genproto v0.0.0-20200724131911-43cab4749ae7 // indirect
|
||||
google.golang.org/grpc v1.30.0 // indirect
|
||||
golang.org/x/tools v0.0.0-20200811215021-48a8ffc5b207 // indirect
|
||||
google.golang.org/genproto v0.0.0-20200808173500-a06252235341 // indirect
|
||||
)
|
||||
@@ -24,6 +24,9 @@ cloud.google.com/go v0.60.0 h1:R+tDlceO7Ss+zyvtsdhTxacDyZ1k99xwskQ4FT7ruoM=
|
||||
cloud.google.com/go v0.60.0/go.mod h1:yw2G51M9IfRboUH61Us8GqCeF1PzPblB823Mn2q2eAU=
|
||||
cloud.google.com/go v0.61.0 h1:NLQf5e1OMspfNT1RAHOB3ublr1TW3YTXO8OiWwVjK2U=
|
||||
cloud.google.com/go v0.61.0/go.mod h1:XukKJg4Y7QsUu0Hxg3qQKUWR4VuWivmyMK2+rUyxAqw=
|
||||
cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc=
|
||||
cloud.google.com/go v0.63.0 h1:A+DfAZQ/eWca7gvu42CS6FNSDX4R8cghF+XfWLn4R6g=
|
||||
cloud.google.com/go v0.63.0/go.mod h1:GmezbQc7T2snqkEXWfZ0sy0VfkB/ivI2DdtJL2DEmlg=
|
||||
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
|
||||
cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE=
|
||||
cloud.google.com/go/bigquery v1.4.0 h1:xE3CPsOgttP4ACBePh79zTKALtXwn/Edhcr16R5hMWU=
|
||||
@@ -47,6 +50,7 @@ cloud.google.com/go/pubsub v1.3.1 h1:ukjixP1wl0LpnZ6LWtZJ0mX5tBmjp1f8Sqer8Z2OMUU
|
||||
cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU=
|
||||
cloud.google.com/go/spanner v1.2.0/go.mod h1:LfwGAsK42Yz8IeLsd/oagGFBqTXt3xVWtm8/KD2vrEI=
|
||||
cloud.google.com/go/spanner v1.5.1/go.mod h1:e1+8M6PF3ntV9Xr57X2Gf+UhylXXYF6gI4WRZ1kfu2A=
|
||||
cloud.google.com/go/spanner v1.8.0/go.mod h1:mdAPDiFUbE9vCmhHHlxyDUtaPPsIK+pUdf5KmHaUfT8=
|
||||
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
|
||||
cloud.google.com/go/storage v1.5.0 h1:RPUcBvDeYgQFMfQu1eBMq6piD1SXmLH+vK3qjewZPus=
|
||||
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
|
||||
@@ -159,6 +163,7 @@ github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo
|
||||
github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
|
||||
github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q=
|
||||
github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY=
|
||||
github.com/apache/arrow/go/arrow v0.0.0-20200601151325-b2287a20f230/go.mod h1:QNYViu/X0HXDHw7m3KXzWSVXIbfUvJqBFe6Gj8/pYA0=
|
||||
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
|
||||
github.com/apparentlymart/go-cidr v1.0.1 h1:NmIwLZ/KdsjIUlhf+/Np40atNXm/+lZ5txfTJ/SpF+U=
|
||||
github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
|
||||
@@ -207,6 +212,8 @@ github.com/aws/aws-sdk-go v1.33.4 h1:lhVZe2TkSjJz26jPBCBAvJvAy70Yxxlbm/Ciw1gmyRY
|
||||
github.com/aws/aws-sdk-go v1.33.4/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
||||
github.com/aws/aws-sdk-go v1.33.12 h1:eydMoSwfrSTD9PWKUJOiDL7+/UwDW8AjInUGVE5Llh4=
|
||||
github.com/aws/aws-sdk-go v1.33.12/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
||||
github.com/aws/aws-sdk-go v1.34.2 h1:9vCknCdTAmmV4ht7lPuda7aJXzllXwEQyCMZKJHjBrM=
|
||||
github.com/aws/aws-sdk-go v1.34.2/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
||||
github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc=
|
||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||
@@ -227,6 +234,7 @@ github.com/briankassouf/jose v0.9.2-0.20180619214549-d2569464773f/go.mod h1:HQhV
|
||||
github.com/bufbuild/buf v0.13.0/go.mod h1:eVyXCAzQHqwuKNYjzboHIOiJQYZrjXwmNshZna621o8=
|
||||
github.com/bufbuild/buf v0.16.0/go.mod h1:rPwedF9fkDQBJAAfcyxmA9npbGpkGcoNkuBhF4/INrI=
|
||||
github.com/bufbuild/buf v0.20.4/go.mod h1:xhJpKvuGA5KUzOrQVL+SYbf9UJjA1PG2jez3FPfa+nc=
|
||||
github.com/bufbuild/buf v0.20.5/go.mod h1:Kgpp44ayt6oQ0J0kXEzIkYRfPggDxOriiEHNswd2vEo=
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
||||
github.com/cenkalti/backoff/v3 v3.0.0 h1:ske+9nBpD9qZsTBoF41nW5L+AIuFBKMeze18XQ3eG1c=
|
||||
@@ -301,6 +309,7 @@ github.com/denisenkom/go-mssqldb v0.0.0-20190515213511-eb9f6a1743f3/go.mod h1:zA
|
||||
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd h1:83Wprp6ROGeiHFAP8WJdI2RoxALQYgdllERc3N5N2DM=
|
||||
github.com/denisenkom/go-mssqldb v0.0.0-20191124224453-732737034ffd/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
|
||||
github.com/denisenkom/go-mssqldb v0.0.0-20200428022330-06a60b6afbbc/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
|
||||
github.com/denisenkom/go-mssqldb v0.0.0-20200620013148-b91950f658ec/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM=
|
||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||
@@ -498,6 +507,7 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP
|
||||
github.com/goji/httpauth v0.0.0-20160601135302-2da839ab0f4d/go.mod h1:nnjvkQ9ptGaCkuDUx6wNykzzlUixGxvkme+H/lnzb+A=
|
||||
github.com/golang-migrate/migrate/v4 v4.11.0 h1:uqtd0ysK5WyBQ/T1K2uDIooJV0o2Obt6uPwP062DupQ=
|
||||
github.com/golang-migrate/migrate/v4 v4.11.0/go.mod h1:nqbpDbckcYjsCD5I8q5+NI9Tkk7SVcmaF40Ax1eAWhg=
|
||||
github.com/golang-migrate/migrate/v4 v4.12.2/go.mod h1:HQ1DaC8uLHkg4afY8ZQ8D/P5SG+YW9X5INZBVvm+d2k=
|
||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY=
|
||||
github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
|
||||
@@ -518,6 +528,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
|
||||
github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.3 h1:GV+pQPG/EUUbkh47niozDcADz6go/dUwhVzdUQHIVRw=
|
||||
github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw=
|
||||
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
||||
github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||
@@ -541,6 +552,7 @@ github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4=
|
||||
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
|
||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||
github.com/google/flatbuffers v1.11.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
|
||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
|
||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||
@@ -610,6 +622,8 @@ github.com/grpc-ecosystem/grpc-gateway v1.14.6 h1:8ERzHx8aj1Sc47mu9n/AksaKCSWrMc
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.14.6/go.mod h1:zdiPV4Yse/1gnckTHtghG4GkDEdKCRJduHpTxT3/jcw=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.0.0-beta.3/go.mod h1:Nhd2bO7zTYI3aNQDhaYPeydn78AIRtcAa2NabL5nRjU=
|
||||
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4=
|
||||
github.com/hashicorp/boundary v0.0.0-20200811212500-4cfab0430733 h1:ggLC4NzAsPGlIj/MTUG4Uvi9VQWMOQIPxJ7JmgcWszs=
|
||||
github.com/hashicorp/boundary v0.0.0-20200811212500-4cfab0430733/go.mod h1:8yA/eQFUtqTeK2g3XT0Tq49cixWE9/hQOej/lgDwmwY=
|
||||
github.com/hashicorp/consul-template v0.22.0/go.mod h1:lHrykBIcPobCuEcIMLJryKxDyk2lUMnQWmffOEONH0k=
|
||||
github.com/hashicorp/consul-template v0.25.0/go.mod h1:/vUsrJvDuuQHcxEw0zik+YXTS7ZKWZjQeaQhshBmfH0=
|
||||
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
|
||||
@@ -678,6 +692,8 @@ github.com/hashicorp/go-retryablehttp v0.5.4/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es
|
||||
github.com/hashicorp/go-retryablehttp v0.6.2/go.mod h1:gEx6HMUGxYYhJScX7W1Il64m6cc2C1mDaW3NQ9sY1FY=
|
||||
github.com/hashicorp/go-retryablehttp v0.6.6 h1:HJunrbHTDDbBb/ay4kxa1n+dLmttUlnP3V9oNE4hmsM=
|
||||
github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
|
||||
github.com/hashicorp/go-retryablehttp v0.6.7 h1:8/CAEZt/+F7kR7GevNHulKkUjLht3CPmn7egmhieNKo=
|
||||
github.com/hashicorp/go-retryablehttp v0.6.7/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY=
|
||||
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
|
||||
github.com/hashicorp/go-rootcerts v1.0.1/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8=
|
||||
github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc=
|
||||
@@ -755,6 +771,8 @@ github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596 h1:hjy
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20191011084731-65d371908596/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg=
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20191119180714-d2e4933b9136 h1:81Dg7SK6Q5vzqFItO8e1iIF2Nj8bLXV23NXjEgbev/s=
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20191119180714-d2e4933b9136/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg=
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 h1:HKLsbzeOsfXmKNpr3GiT18XAblV0BjCbzL8KQAMZGa0=
|
||||
github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734/go.mod h1:kNDNcF7sN4DocDLBkQYz73HGKwN1ANB1blq4lIYLYvg=
|
||||
github.com/hashicorp/vault v1.2.1-0.20200519221912-a8c2591d3641 h1:sFzGh4bThye9dcV3XhO6xOtWlhXY73cgfod/B3eqdf0=
|
||||
github.com/hashicorp/vault v1.2.1-0.20200519221912-a8c2591d3641/go.mod h1:AxZRQLEuX4UQt4GIITGJE/s/dpQJjwQnPfufvchqxFM=
|
||||
github.com/hashicorp/vault v1.2.1-0.20200521015612-812a92b26b19 h1:UnyS8rJUziC7TLs/0blpiCpbnq3l3fwzkpZG+VLLUWI=
|
||||
@@ -875,6 +893,7 @@ github.com/jackc/pgconn v1.5.0 h1:oFSOilzIZkyg787M1fEmyMfOUUvwj0daqYMfaWwNL4o=
|
||||
github.com/jackc/pgconn v1.5.0/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI=
|
||||
github.com/jackc/pgconn v1.5.1-0.20200601181101-fa742c524853/go.mod h1:QeD3lBfpTFe8WUnPZWN5KY/mB8FGMIYRdd8P8Jr0fAI=
|
||||
github.com/jackc/pgconn v1.6.3/go.mod h1:w2pne1C2tZgP+TvjqLpOigGzNqjBgQW9dUw/4Chex78=
|
||||
github.com/jackc/pgconn v1.6.4/go.mod h1:w2pne1C2tZgP+TvjqLpOigGzNqjBgQW9dUw/4Chex78=
|
||||
github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE=
|
||||
github.com/jackc/pgio v1.0.0/go.mod h1:oP+2QK2wFfUWgr+gxjoBH9KGBb31Eio69xUb0w5bYf8=
|
||||
github.com/jackc/pgmock v0.0.0-20190831213851-13a1b77aafa2 h1:JVX6jT/XfzNqIjye4717ITLaNwV9mWbJx0dLCpcRzdA=
|
||||
@@ -914,6 +933,7 @@ github.com/jackc/pgx/v4 v4.6.0/go.mod h1:vPh43ZzxijXUVJ+t/EmXBtFmbFVO72cuneCT9oA
|
||||
github.com/jackc/pgx/v4 v4.6.1-0.20200510190926-94ba730bb1e9/go.mod h1:t3/cdRQl6fOLDxqtlyhe9UWgfIi9R8+8v8GKV5TRA/o=
|
||||
github.com/jackc/pgx/v4 v4.6.1-0.20200606145419-4e5062306904/go.mod h1:ZDaNWkt9sW1JMiNn0kdYBaLelIhw7Pg4qd+Vk6tw7Hg=
|
||||
github.com/jackc/pgx/v4 v4.8.0/go.mod h1:AjqYcDmEyst6GF8jJi/RF73Gla9d7/HLZzJEZj2uwpM=
|
||||
github.com/jackc/pgx/v4 v4.8.1/go.mod h1:4HOLxrl8wToZJReD04/yB20GDwf4KBYETvlHciCnwW0=
|
||||
github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
github.com/jackc/puddle v1.1.0/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
|
||||
@@ -945,6 +965,7 @@ github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSn
|
||||
github.com/jhump/protoreflect v1.6.2-0.20200602154950-9a9113f80b57 h1:DDbkVWVTpzxHbD80e2zpbczB+gkTWI1w2gSeL+viRhc=
|
||||
github.com/jhump/protoreflect v1.6.2-0.20200602154950-9a9113f80b57/go.mod h1:RZkzh7Hi9J7qT/sPlWnJ/UwZqCJvciFxKDA0UCeltSM=
|
||||
github.com/jhump/protoreflect v1.7.1-0.20200720033022-cb62454d469b/go.mod h1:D8nEtk+lKr8kMTMiLayswAtSSeHYDaRYk9r78Cy11mM=
|
||||
github.com/jhump/protoreflect v1.7.1-0.20200723220026-11eaaf73e0ec/go.mod h1:D8nEtk+lKr8kMTMiLayswAtSSeHYDaRYk9r78Cy11mM=
|
||||
github.com/jinzhu/gorm v1.9.12 h1:Drgk1clyWT9t9ERbzHza6Mj/8FY/CqMyVzOiHviMo6Q=
|
||||
github.com/jinzhu/gorm v1.9.12/go.mod h1:vhTjlKSJUTWNtcbQtrMBFCxy7eXTzeCAzfL5fBZT/Qs=
|
||||
github.com/jinzhu/gorm v1.9.15/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs=
|
||||
@@ -1001,6 +1022,8 @@ github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs=
|
||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
||||
@@ -1025,6 +1048,7 @@ github.com/lib/pq v1.6.0/go.mod h1:4vXEAYvW1fRQ2/FhZ78H73A60MHw1geSm145z2mdY1g=
|
||||
github.com/lib/pq v1.7.0 h1:h93mCPfUSkaul3Ka/VG8uZdmW1uMHDGxzu0NWHuJmHY=
|
||||
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/lib/pq v1.7.1/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/lyft/protoc-gen-star v0.4.10/go.mod h1:mE8fbna26u7aEA2QCVvvfBU/ZrPgocG1206xAFPcs94=
|
||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||
@@ -1134,6 +1158,7 @@ github.com/natefinch/atomic v0.0.0-20150920032501-a62ce929ffcc/go.mod h1:1rLVY/D
|
||||
github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM=
|
||||
github.com/neo4j-drivers/gobolt v1.7.4/go.mod h1:O9AUbip4Dgre+CD3p40dnMD4a4r52QBIfblg5k7CTbE=
|
||||
github.com/neo4j/neo4j-go-driver v1.7.4/go.mod h1:aPO0vVr+WnhEJne+FgFjfsjzAnssPFLucHgGZ76Zb/U=
|
||||
github.com/neo4j/neo4j-go-driver v1.8.1-0.20200803113522-b626aa943eba/go.mod h1:ncO5VaFWh0Nrt+4KT4mOZboaczBZcLuHrG+/sUeP8gI=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs=
|
||||
github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno=
|
||||
github.com/nishanths/predeclared v0.0.0-20200524104333-86fad755b4d3/go.mod h1:nt3d53pc1VYcphSCIaYAJtnPYnr3Zyn8fMq2wvPGPso=
|
||||
@@ -1149,14 +1174,18 @@ github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:v
|
||||
github.com/olekukonko/tablewriter v0.0.0-20180130162743-b8a9be070da4/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo=
|
||||
github.com/oligot/go-mod-upgrade v0.1.2/go.mod h1:XmjmLRx/VrqAFMJ5ArLNVALB2m4j9S3jQvAApUaOFKw=
|
||||
github.com/oligot/go-mod-upgrade v0.2.0/go.mod h1:A+g8WOzoaH4U5fEk1svHgC7jWi4otz5uF2kMMwpVzzo=
|
||||
github.com/oligot/go-mod-upgrade v0.2.1/go.mod h1:A+g8WOzoaH4U5fEk1svHgC7jWi4otz5uF2kMMwpVzzo=
|
||||
github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE=
|
||||
github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg=
|
||||
github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY=
|
||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||
github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA=
|
||||
github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||
github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ=
|
||||
github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s=
|
||||
@@ -1198,6 +1227,7 @@ github.com/pierrec/lz4 v2.2.6+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi
|
||||
github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=
|
||||
github.com/pires/go-proxyproto v0.1.3 h1:2XEuhsQluSNA5QIQkiUv8PfgZ51sNYIQkq/yFquiSQM=
|
||||
github.com/pires/go-proxyproto v0.1.3/go.mod h1:Odh9VFOZJCf9G8cLW5o435Xf1J95Jw9Gw5rnCjcwzAY=
|
||||
github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA=
|
||||
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
@@ -1295,6 +1325,8 @@ github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:X
|
||||
github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||
github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=
|
||||
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
|
||||
github.com/snowflakedb/glog v0.0.0-20180824191149-f5055e6f21ce/go.mod h1:EB/w24pR5VKI60ecFnKqXzxX3dOorz1rnVicQTQrGM0=
|
||||
github.com/snowflakedb/gosnowflake v1.3.5/go.mod h1:13Ky+lxzIm3VqNDZJdyvu9MCGy+WgRdYFdXp96UcLZU=
|
||||
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
|
||||
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
|
||||
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
|
||||
@@ -1307,6 +1339,8 @@ github.com/spf13/afero v1.3.1 h1:GPTpEAuNr98px18yNQ66JllNil98wfRZ/5Ukny8FeQA=
|
||||
github.com/spf13/afero v1.3.1/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
|
||||
github.com/spf13/afero v1.3.2 h1:GDarE4TJQI52kYSbSAmLiId1Elfj+xgSDqrUZxFhxlU=
|
||||
github.com/spf13/afero v1.3.2/go.mod h1:5KUK8ByomD5Ti5Artl0RtHeI5pTF7MIDuXL3yY520V4=
|
||||
github.com/spf13/afero v1.3.4 h1:8q6vk3hthlpb2SouZcnBVKboxWQWMDNF38bwholZrJc=
|
||||
github.com/spf13/afero v1.3.4/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I=
|
||||
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
|
||||
github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||
@@ -1331,6 +1365,7 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
|
||||
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/objx v0.2.0 h1:Hbg2NidpLE8veEBkEZTL3CvlkUIVzuU9jDplZO54c48=
|
||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
|
||||
github.com/stretchr/testify v1.2.0/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||
@@ -1475,6 +1510,8 @@ golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0 h1:eIYIE7EC5/Wv5Kbz8bJPaq
|
||||
golang.org/x/crypto v0.0.0-20200707235045-ab33eee955e0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899 h1:DZhuSZLsGlFL4CmhA8BcRA0mnthyA/nZ00AqCUo7vHg=
|
||||
golang.org/x/crypto v0.0.0-20200709230013-948cd5f35899/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de h1:ikNHVSjEfnvz6sxdSPCaPt572qowuyMDMJLLm3Db3ig=
|
||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -1634,6 +1671,7 @@ golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
@@ -1665,6 +1703,9 @@ golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae h1:Ih9Yo4hSPImZOpfGuA4bR/ORK
|
||||
golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c h1:UIcGWL6/wpCfyGuJnRFJRurA+yj8RrW7Q6x2YMCXt6c=
|
||||
golang.org/x/sys v0.0.0-20200724161237-0e2f3a69832c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed h1:WBkVNH1zd9jg/dK4HCM4lNANnmd12EHC9z+LmcCG4ns=
|
||||
golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
|
||||
@@ -1767,12 +1808,22 @@ golang.org/x/tools v0.0.0-20200717024301-6ddee64345a6/go.mod h1:njjCfa9FT2d7l9Bc
|
||||
golang.org/x/tools v0.0.0-20200722181740-bd1e9de8d890/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200724172932-b5fc9d354d99 h1:OHn441rq5CeM5r1xJ0OmY7lfdTvnedi6k+vQiI7G9b8=
|
||||
golang.org/x/tools v0.0.0-20200724172932-b5fc9d354d99/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200725200936-102e7d357031/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200806022845-90696ccdc692/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200807210451-92211316783d h1:0SXIh1o35VoSHeXm4dE5uYlKU5JI3lUMW3b9j+QgTjE=
|
||||
golang.org/x/tools v0.0.0-20200807210451-92211316783d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/tools v0.0.0-20200811215021-48a8ffc5b207 h1:8Kg+JssU1jBZs8GIrL5pl4nVyaqyyhdmHAR4D1zGErg=
|
||||
golang.org/x/tools v0.0.0-20200811215021-48a8ffc5b207/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA=
|
||||
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
|
||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
google.golang.org/api v0.0.0-20181220000619-583d854617af/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0=
|
||||
google.golang.org/api v0.2.0/go.mod h1:IfRCZScioGtypHNTlz3gFk67J8uePVW7uDTBzXuIkhU=
|
||||
google.golang.org/api v0.3.0/go.mod h1:IuvZyQh8jgscv8qWfQ4ABd8m7hEudgBFM/EdhA3BnXw=
|
||||
@@ -1804,6 +1855,8 @@ google.golang.org/api v0.28.0 h1:jMF5hhVfMkTZwHW1SDpKq5CkgWLXOb31Foaca9Zr3oM=
|
||||
google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE=
|
||||
google.golang.org/api v0.29.0 h1:BaiDisFir8O4IJxvAabCGGkQ6yCJegNQqSVoYUNAnbk=
|
||||
google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM=
|
||||
google.golang.org/api v0.30.0 h1:yfrXXP61wVuLb0vBcG6qaOoIoqYEzOQS8jum51jkv2w=
|
||||
google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc=
|
||||
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
|
||||
google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
|
||||
@@ -1872,10 +1925,18 @@ google.golang.org/genproto v0.0.0-20200626011028-ee7919e894b5/go.mod h1:FWY/as6D
|
||||
google.golang.org/genproto v0.0.0-20200708133552-18036109789b h1:gYoomKOmhJ9YGwv9D05xH6fNWcNBNrMvOuoysvYIVV4=
|
||||
google.golang.org/genproto v0.0.0-20200708133552-18036109789b/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200711021454-869866162049/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200720141249-1244ee217b7e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200721032028-5044d0edf986/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200722002428-88e341933a54/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200724131911-43cab4749ae7 h1:AWgNCmk2V5HZp9AiCDRBExX/b9I0Ey9F8STHDZlhCC4=
|
||||
google.golang.org/genproto v0.0.0-20200724131911-43cab4749ae7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200726014623-da3ae01ef02d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98 h1:LCO0fg4kb6WwkXQXRQQgUYsFeFb5taTX5WAx5O/Vt28=
|
||||
google.golang.org/genproto v0.0.0-20200806141610-86f49bd18e98/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/genproto v0.0.0-20200808173500-a06252235341 h1:Kceb+1TNS2X7Cj/A+IUTljNerF/4wOFjlFJ0RGHYKKE=
|
||||
google.golang.org/genproto v0.0.0-20200808173500-a06252235341/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no=
|
||||
google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.14.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
|
||||
google.golang.org/grpc v1.16.0/go.mod h1:0JHn/cJsOMiMfNA9+DeHDlAU7KAAB5GDlYFpa9MZMio=
|
||||
@@ -1900,6 +1961,8 @@ google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4=
|
||||
google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk=
|
||||
google.golang.org/grpc v1.30.0 h1:M5a8xTlYTxwMn5ZFkwhRabsygDY5G8TYLyQDBxJNAxE=
|
||||
google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/grpc v1.31.0 h1:T7P4R73V3SSDPhH7WW7ATbfViLtmamH0DKrP3f9AuDI=
|
||||
google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
|
||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||
@@ -1969,6 +2032,7 @@ gopkg.in/yaml.v3 v3.0.0-20200506231410-2ff61e1afc86/go.mod h1:K4uyk7z7BCEPqu6E+C
|
||||
gopkg.in/yaml.v3 v3.0.0-20200602154603-c1a7af8cc6cd h1:RTT2AuBaYkdI89zk23sXiYZROxdS9gimvFQlSpZazwE=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200602154603-c1a7af8cc6cd/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776 h1:tQIYjPdBoyREyB9XMu+nnTclpTYkz2zFM+lzLJFO4gQ=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
|
||||
gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw=
|
||||
|
||||
@@ -6,8 +6,8 @@ import (
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
|
||||
"github.com/hashicorp/terraform-plugin-sdk/terraform"
|
||||
"github.com/hashicorp/watchtower/api"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/boundary/api"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
)
|
||||
|
||||
func New() terraform.ResourceProvider {
|
||||
@@ -16,13 +16,13 @@ func New() terraform.ResourceProvider {
|
||||
"default_organization": {
|
||||
Type: schema.TypeString,
|
||||
Optional: true,
|
||||
DefaultFunc: schema.EnvDefaultFunc("WATCHTOWER_DEFAULT_ORG", ""),
|
||||
Description: "The Watchtower organization scope to operate all actions in if not provided in the individual resources.",
|
||||
DefaultFunc: schema.EnvDefaultFunc("BOUNDARY_DEFAULT_ORG", ""),
|
||||
Description: "The Boundary organization scope to operate all actions in if not provided in the individual resources.",
|
||||
},
|
||||
"base_url": {
|
||||
Type: schema.TypeString,
|
||||
Required: true,
|
||||
Description: "The base url of the Watchtower API. For example 'http://127.0.0.1/'",
|
||||
Description: "The base url of the Boundary API. For example 'http://127.0.0.1/'",
|
||||
},
|
||||
"auth_method_id": {
|
||||
Type: schema.TypeString,
|
||||
@@ -41,11 +41,11 @@ func New() terraform.ResourceProvider {
|
||||
},
|
||||
},
|
||||
ResourcesMap: map[string]*schema.Resource{
|
||||
"watchtower_group": resourceGroup(),
|
||||
"watchtower_host_catalog": resourceHostCatalog(),
|
||||
"watchtower_project": resourceProject(),
|
||||
"watchtower_role": resourceRole(),
|
||||
"watchtower_user": resourceUser(),
|
||||
"boundary_group": resourceGroup(),
|
||||
"boundary_host_catalog": resourceHostCatalog(),
|
||||
"boundary_project": resourceProject(),
|
||||
"boundary_role": resourceRole(),
|
||||
"boundary_user": resourceUser(),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@@ -15,13 +15,13 @@ var testProviders map[string]terraform.ResourceProvider
|
||||
func init() {
|
||||
testProvider = New().(*schema.Provider)
|
||||
testProviders = map[string]terraform.ResourceProvider{
|
||||
"watchtower": testProvider,
|
||||
"boundary": testProvider,
|
||||
}
|
||||
}
|
||||
|
||||
func testConfig(url string, res ...string) string {
|
||||
provider := fmt.Sprintf(`
|
||||
provider "watchtower" {
|
||||
provider "boundary" {
|
||||
base_url = "%s"
|
||||
default_organization = "o_0000000000"
|
||||
auth_method_id = "am_1234567890"
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
|
||||
"github.com/hashicorp/watchtower/api/groups"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/boundary/api/groups"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
|
||||
"github.com/hashicorp/terraform-plugin-sdk/terraform"
|
||||
"github.com/hashicorp/watchtower/api/groups"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/watchtower/testing/controller"
|
||||
"github.com/hashicorp/boundary/api/groups"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
"github.com/hashicorp/boundary/testing/controller"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -21,13 +21,13 @@ const (
|
||||
|
||||
var (
|
||||
fooGroup = fmt.Sprintf(`
|
||||
resource "watchtower_group" "foo" {
|
||||
resource "boundary_group" "foo" {
|
||||
name = "test"
|
||||
description = "%s"
|
||||
}`, fooGroupDescription)
|
||||
|
||||
fooGroupUpdate = fmt.Sprintf(`
|
||||
resource "watchtower_group" "foo" {
|
||||
resource "boundary_group" "foo" {
|
||||
name = "test"
|
||||
description = "%s"
|
||||
}`, fooGroupDescriptionUpdate)
|
||||
@@ -46,24 +46,24 @@ func TestAccGroup(t *testing.T) {
|
||||
// test create
|
||||
Config: testConfig(url, fooGroup),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckGroupResourceExists("watchtower_group.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_group.foo", groupDescriptionKey, fooGroupDescription),
|
||||
resource.TestCheckResourceAttr("watchtower_group.foo", groupNameKey, "test"),
|
||||
testAccCheckGroupResourceExists("boundary_group.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_group.foo", groupDescriptionKey, fooGroupDescription),
|
||||
resource.TestCheckResourceAttr("boundary_group.foo", groupNameKey, "test"),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test update
|
||||
Config: testConfig(url, fooGroupUpdate),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckGroupResourceExists("watchtower_group.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_group.foo", groupDescriptionKey, fooGroupDescriptionUpdate),
|
||||
testAccCheckGroupResourceExists("boundary_group.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_group.foo", groupDescriptionKey, fooGroupDescriptionUpdate),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test destroy
|
||||
Config: testConfig(url),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckGroupDestroyed("watchtower_group.foo"),
|
||||
testAccCheckGroupDestroyed("boundary_group.foo"),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -73,19 +73,19 @@ func TestAccGroup(t *testing.T) {
|
||||
// testAccCheckGroupDestroyed checks the terraform state for the host
|
||||
// catalog and returns an error if found.
|
||||
//
|
||||
// TODO(malnick) This method falls short of checking the Watchtower API for
|
||||
// TODO(malnick) This method falls short of checking the Boundary API for
|
||||
// the resource if the resource is not found in state. This is due to us not
|
||||
// having the host catalog ID, but it doesn't guarantee that the resource was
|
||||
// successfully removed.
|
||||
//
|
||||
// It does check Watchtower if the resource is found in state to point out any
|
||||
// It does check Boundary if the resource is found in state to point out any
|
||||
// misalignment between what is in state and the actual configuration.
|
||||
func testAccCheckGroupDestroyed(name string) resource.TestCheckFunc {
|
||||
return func(s *terraform.State) error {
|
||||
rs, ok := s.RootModule().Resources[name]
|
||||
if !ok {
|
||||
// If it's not in state, it's destroyed in TF but not guaranteed to be destroyed
|
||||
// in Watchtower. Need to find a way to get the host catalog ID here so we can
|
||||
// in Boundary. Need to find a way to get the host catalog ID here so we can
|
||||
// form a lookup to the WT API to check this.
|
||||
return nil
|
||||
}
|
||||
@@ -146,7 +146,7 @@ func testAccCheckGroupResourceDestroy(t *testing.T) resource.TestCheckFunc {
|
||||
|
||||
for _, rs := range s.RootModule().Resources {
|
||||
switch rs.Type {
|
||||
case "watchtower_group":
|
||||
case "boundary_group":
|
||||
|
||||
id := rs.Primary.ID
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
|
||||
"github.com/hashicorp/watchtower/api/hosts"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/boundary/api/hosts"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
|
||||
"github.com/hashicorp/terraform-plugin-sdk/terraform"
|
||||
"github.com/hashicorp/watchtower/api/hosts"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/watchtower/testing/controller"
|
||||
"github.com/hashicorp/boundary/api/hosts"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
"github.com/hashicorp/boundary/testing/controller"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@@ -22,16 +22,16 @@ const (
|
||||
|
||||
var (
|
||||
fooHostCatalog = fmt.Sprintf(`
|
||||
resource "watchtower_host_catalog" "foo" {
|
||||
resource "boundary_host_catalog" "foo" {
|
||||
description = "%s"
|
||||
project_id = watchtower_project.project1.id
|
||||
project_id = boundary_project.project1.id
|
||||
type = "Static"
|
||||
}`, fooHostCatalogDescription)
|
||||
|
||||
fooHostCatalogUpdate = fmt.Sprintf(`
|
||||
resource "watchtower_host_catalog" "foo" {
|
||||
resource "boundary_host_catalog" "foo" {
|
||||
description = "%s"
|
||||
project_id = watchtower_project.project1.id
|
||||
project_id = boundary_project.project1.id
|
||||
type = "Static"
|
||||
}`, fooHostCatalogDescriptionUpdate)
|
||||
)
|
||||
@@ -49,25 +49,25 @@ func TestAccHostCatalogCreate(t *testing.T) {
|
||||
// test create
|
||||
Config: testConfig(url, firstProjectBar, fooHostCatalog),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckProjectResourceExists("watchtower_project.project1"),
|
||||
testAccCheckHostCatalogResourceExists("watchtower_host_catalog.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_host_catalog.foo", hostCatalogDescriptionKey, fooHostCatalogDescription),
|
||||
testAccCheckProjectResourceExists("boundary_project.project1"),
|
||||
testAccCheckHostCatalogResourceExists("boundary_host_catalog.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_host_catalog.foo", hostCatalogDescriptionKey, fooHostCatalogDescription),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test update
|
||||
Config: testConfig(url, firstProjectBar, fooHostCatalogUpdate),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckHostCatalogResourceExists("watchtower_host_catalog.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_host_catalog.foo", hostCatalogDescriptionKey, fooHostCatalogDescriptionUpdate),
|
||||
testAccCheckHostCatalogResourceExists("boundary_host_catalog.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_host_catalog.foo", hostCatalogDescriptionKey, fooHostCatalogDescriptionUpdate),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test destroy
|
||||
Config: testConfig(url, firstProjectBar),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckProjectResourceExists("watchtower_project.project1"),
|
||||
testAccCheckHostCatalogDestroyed("watchtower_host_catalog.foo"),
|
||||
testAccCheckProjectResourceExists("boundary_project.project1"),
|
||||
testAccCheckHostCatalogDestroyed("boundary_host_catalog.foo"),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -77,19 +77,19 @@ func TestAccHostCatalogCreate(t *testing.T) {
|
||||
// testAccCheckHostCatalogDestroyed checks the terraform state for the host
|
||||
// catalog and returns an error if found.
|
||||
//
|
||||
// TODO(malnick) This method falls short of checking the Watchtower API for
|
||||
// TODO(malnick) This method falls short of checking the Boundary API for
|
||||
// the resource if the resource is not found in state. This is due to us not
|
||||
// having the host catalog ID, but it doesn't guarantee that the resource was
|
||||
// successfully removed.
|
||||
//
|
||||
// It does check Watchtower if the resource is found in state to point out any
|
||||
// It does check Boundary if the resource is found in state to point out any
|
||||
// misalignment between what is in state and the actual configuration.
|
||||
func testAccCheckHostCatalogDestroyed(name string) resource.TestCheckFunc {
|
||||
return func(s *terraform.State) error {
|
||||
rs, ok := s.RootModule().Resources[name]
|
||||
if !ok {
|
||||
// If it's not in state, it's destroyed in TF but not guaranteed to be destroyed
|
||||
// in Watchtower. Need to find a way to get the host catalog ID here so we can
|
||||
// in Boundary. Need to find a way to get the host catalog ID here so we can
|
||||
// form a lookup to the WT API to check this.
|
||||
return nil
|
||||
}
|
||||
@@ -154,9 +154,9 @@ func testAccCheckHostCatalogResourceDestroy(t *testing.T) resource.TestCheckFunc
|
||||
|
||||
for _, rs := range s.RootModule().Resources {
|
||||
switch rs.Type {
|
||||
case "watchtower_project":
|
||||
case "boundary_project":
|
||||
continue
|
||||
case "watchtower_host_catalog":
|
||||
case "boundary_host_catalog":
|
||||
|
||||
id := rs.Primary.ID
|
||||
h := hosts.HostCatalog{Id: id}
|
||||
|
||||
@@ -4,7 +4,7 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -34,7 +34,7 @@ func resourceProject() *schema.Resource {
|
||||
}
|
||||
|
||||
// convertProjectToResourceData populates the provided ResourceData with the appropriate values from the provided Project.
|
||||
// The project passed into thie function should be one read from the watchtower API with all fields populated.
|
||||
// The project passed into thie function should be one read from the boundary API with all fields populated.
|
||||
func convertProjectToResourceData(p *scopes.Project, d *schema.ResourceData) error {
|
||||
if p.Name != nil {
|
||||
if err := d.Set(projectNameKey, p.Name); err != nil {
|
||||
|
||||
@@ -8,9 +8,9 @@ import (
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
|
||||
"github.com/hashicorp/terraform-plugin-sdk/terraform"
|
||||
"github.com/hashicorp/watchtower/api"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/watchtower/testing/controller"
|
||||
"github.com/hashicorp/boundary/api"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
"github.com/hashicorp/boundary/testing/controller"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
@@ -26,26 +26,26 @@ func TestAccProjectCreation(t *testing.T) {
|
||||
{
|
||||
Config: testConfig(url, firstProjectBar, secondProject),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckProjectResourceExists("watchtower_project.project1"),
|
||||
resource.TestCheckResourceAttr("watchtower_project.project1", projectDescriptionKey, "bar"),
|
||||
resource.TestCheckResourceAttr("watchtower_project.project2", projectDescriptionKey, "project2"),
|
||||
testAccCheckProjectResourceExists("boundary_project.project1"),
|
||||
resource.TestCheckResourceAttr("boundary_project.project1", projectDescriptionKey, "bar"),
|
||||
resource.TestCheckResourceAttr("boundary_project.project2", projectDescriptionKey, "project2"),
|
||||
),
|
||||
},
|
||||
// Updates the first project to have description foo
|
||||
{
|
||||
Config: testConfig(url, firstProjectFoo, secondProject),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckProjectResourceExists("watchtower_project.project1"),
|
||||
resource.TestCheckResourceAttr("watchtower_project.project1", projectDescriptionKey, "foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_project.project2", projectDescriptionKey, "project2"),
|
||||
testAccCheckProjectResourceExists("boundary_project.project1"),
|
||||
resource.TestCheckResourceAttr("boundary_project.project1", projectDescriptionKey, "foo"),
|
||||
resource.TestCheckResourceAttr("boundary_project.project2", projectDescriptionKey, "project2"),
|
||||
),
|
||||
},
|
||||
// Remove second project
|
||||
{
|
||||
Config: testConfig(url, firstProjectFoo),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckProjectResourceExists("watchtower_project.project1"),
|
||||
resource.TestCheckResourceAttr("watchtower_project.project1", projectDescriptionKey, "foo"),
|
||||
testAccCheckProjectResourceExists("boundary_project.project1"),
|
||||
resource.TestCheckResourceAttr("boundary_project.project1", projectDescriptionKey, "foo"),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -89,7 +89,7 @@ func testAccCheckProjectResourceDestroy(t *testing.T) resource.TestCheckFunc {
|
||||
for _, rs := range s.RootModule().Resources {
|
||||
id := rs.Primary.ID
|
||||
switch rs.Type {
|
||||
case "watchtower_project":
|
||||
case "boundary_project":
|
||||
if _, apiErr, _ := o.ReadProject(md.ctx, &scopes.Project{Id: id}); apiErr == nil || apiErr.Status != http.StatusNotFound {
|
||||
return fmt.Errorf("Didn't get a 404 when reading destroyed project %q: %v", id, apiErr)
|
||||
}
|
||||
@@ -221,17 +221,17 @@ func TestProjectToResourceData(t *testing.T) {
|
||||
|
||||
const (
|
||||
firstProjectFoo = `
|
||||
resource "watchtower_project" "project1" {
|
||||
resource "boundary_project" "project1" {
|
||||
description = "foo"
|
||||
}`
|
||||
|
||||
firstProjectBar = `
|
||||
resource "watchtower_project" "project1" {
|
||||
resource "boundary_project" "project1" {
|
||||
description = "bar"
|
||||
}`
|
||||
|
||||
secondProject = `
|
||||
resource "watchtower_project" "project2" {
|
||||
resource "boundary_project" "project2" {
|
||||
description = "project2"
|
||||
}
|
||||
`
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
|
||||
"github.com/hashicorp/watchtower/api/roles"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/boundary/api/roles"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
|
||||
"github.com/hashicorp/terraform-plugin-sdk/terraform"
|
||||
"github.com/hashicorp/watchtower/api/roles"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/watchtower/testing/controller"
|
||||
"github.com/hashicorp/boundary/api/roles"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
"github.com/hashicorp/boundary/testing/controller"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -21,79 +21,79 @@ const (
|
||||
|
||||
var (
|
||||
fooRole = fmt.Sprintf(`
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "test"
|
||||
description = "%s"
|
||||
}`, fooRoleDescription)
|
||||
|
||||
fooRoleUpdate = fmt.Sprintf(`
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "test"
|
||||
description = "%s"
|
||||
}`, fooRoleDescriptionUpdate)
|
||||
|
||||
fooRoleWithUser = `
|
||||
resource "watchtower_user" "foo" {
|
||||
resource "boundary_user" "foo" {
|
||||
name = "foo"
|
||||
}
|
||||
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "test"
|
||||
description = "test description"
|
||||
users = [watchtower_user.foo.id]
|
||||
users = [boundary_user.foo.id]
|
||||
}`
|
||||
|
||||
fooRoleWithUserUpdate = `
|
||||
resource "watchtower_user" "foo" {
|
||||
resource "boundary_user" "foo" {
|
||||
name = "foo"
|
||||
}
|
||||
|
||||
resource "watchtower_user" "bar" {
|
||||
resource "boundary_user" "bar" {
|
||||
name = "bar"
|
||||
}
|
||||
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "test"
|
||||
description = "test description"
|
||||
users = [watchtower_user.foo.id, watchtower_user.bar.id]
|
||||
users = [boundary_user.foo.id, boundary_user.bar.id]
|
||||
}`
|
||||
|
||||
fooRoleWithGroups = `
|
||||
resource "watchtower_group" "foo" {
|
||||
resource "boundary_group" "foo" {
|
||||
name = "foo"
|
||||
}
|
||||
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "test"
|
||||
description = "test description"
|
||||
groups = [watchtower_group.foo.id]
|
||||
groups = [boundary_group.foo.id]
|
||||
}`
|
||||
|
||||
fooRoleWithGroupsUpdate = `
|
||||
resource "watchtower_group" "foo" {
|
||||
resource "boundary_group" "foo" {
|
||||
name = "foo"
|
||||
}
|
||||
|
||||
resource "watchtower_group" "bar" {
|
||||
resource "boundary_group" "bar" {
|
||||
name = "bar"
|
||||
}
|
||||
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "test"
|
||||
description = "test description"
|
||||
groups = [watchtower_group.foo.id, watchtower_group.bar.id]
|
||||
groups = [boundary_group.foo.id, boundary_group.bar.id]
|
||||
}`
|
||||
|
||||
readonlyGrant = "id=*;actions=read"
|
||||
readonlyGrantUpdate = "id=*;actions=read,create"
|
||||
fooRoleWithGrants = fmt.Sprintf(`
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "readonly"
|
||||
description = "test description"
|
||||
grants = ["%s"]
|
||||
}`, readonlyGrant)
|
||||
fooRoleWithGrantsUpdate = fmt.Sprintf(`
|
||||
resource "watchtower_role" "foo" {
|
||||
resource "boundary_role" "foo" {
|
||||
name = "readonly"
|
||||
description = "test description"
|
||||
grants = ["%s", "%s"]
|
||||
@@ -113,20 +113,20 @@ func TestAccRoleWithGrants(t *testing.T) {
|
||||
// test create
|
||||
Config: testConfig(url, fooRoleWithGrants),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
testAccCheckRoleResourceGrantsSet("watchtower_role.foo", []string{readonlyGrant}),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", "name", "readonly"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", "description", "test description"),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
testAccCheckRoleResourceGrantsSet("boundary_role.foo", []string{readonlyGrant}),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", "name", "readonly"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", "description", "test description"),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test update
|
||||
Config: testConfig(url, fooRoleWithGrantsUpdate),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
testAccCheckRoleResourceGrantsSet("watchtower_role.foo", []string{readonlyGrant, readonlyGrantUpdate}),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", "name", "readonly"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", "description", "test description"),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
testAccCheckRoleResourceGrantsSet("boundary_role.foo", []string{readonlyGrant, readonlyGrantUpdate}),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", "name", "readonly"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", "description", "test description"),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -146,22 +146,22 @@ func TestAccRoleWithUsers(t *testing.T) {
|
||||
// test create
|
||||
Config: testConfig(url, fooRoleWithUser),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
testAccCheckRoleResourceUsersSet("watchtower_role.foo", []string{"watchtower_user.foo"}),
|
||||
testAccCheckUserResourceExists("watchtower_user.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", roleDescriptionKey, "test description"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", roleNameKey, "test"),
|
||||
resource.TestCheckResourceAttr("watchtower_user.foo", "name", "foo"),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
testAccCheckRoleResourceUsersSet("boundary_role.foo", []string{"boundary_user.foo"}),
|
||||
testAccCheckUserResourceExists("boundary_user.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", roleDescriptionKey, "test description"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", roleNameKey, "test"),
|
||||
resource.TestCheckResourceAttr("boundary_user.foo", "name", "foo"),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test update
|
||||
Config: testConfig(url, fooRoleWithUserUpdate),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
testAccCheckUserResourceExists("watchtower_user.foo"),
|
||||
testAccCheckUserResourceExists("watchtower_user.bar"),
|
||||
testAccCheckRoleResourceUsersSet("watchtower_role.foo", []string{"watchtower_user.foo", "watchtower_user.bar"}),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
testAccCheckUserResourceExists("boundary_user.foo"),
|
||||
testAccCheckUserResourceExists("boundary_user.bar"),
|
||||
testAccCheckRoleResourceUsersSet("boundary_role.foo", []string{"boundary_user.foo", "boundary_user.bar"}),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -181,22 +181,22 @@ func TestAccRoleWithGroups(t *testing.T) {
|
||||
// test create
|
||||
Config: testConfig(url, fooRoleWithGroups),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
testAccCheckRoleResourceGroupsSet("watchtower_role.foo", []string{"watchtower_group.foo"}),
|
||||
testAccCheckUserResourceExists("watchtower_group.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", roleDescriptionKey, "test description"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", roleNameKey, "test"),
|
||||
resource.TestCheckResourceAttr("watchtower_group.foo", "name", "foo"),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
testAccCheckRoleResourceGroupsSet("boundary_role.foo", []string{"boundary_group.foo"}),
|
||||
testAccCheckUserResourceExists("boundary_group.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", roleDescriptionKey, "test description"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", roleNameKey, "test"),
|
||||
resource.TestCheckResourceAttr("boundary_group.foo", "name", "foo"),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test update
|
||||
Config: testConfig(url, fooRoleWithGroupsUpdate),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
testAccCheckUserResourceExists("watchtower_group.foo"),
|
||||
testAccCheckUserResourceExists("watchtower_group.bar"),
|
||||
testAccCheckRoleResourceGroupsSet("watchtower_role.foo", []string{"watchtower_group.foo", "watchtower_group.bar"}),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
testAccCheckUserResourceExists("boundary_group.foo"),
|
||||
testAccCheckUserResourceExists("boundary_group.bar"),
|
||||
testAccCheckRoleResourceGroupsSet("boundary_role.foo", []string{"boundary_group.foo", "boundary_group.bar"}),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -216,24 +216,24 @@ func TestAccRole(t *testing.T) {
|
||||
// test create
|
||||
Config: testConfig(url, fooRole),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", roleDescriptionKey, fooRoleDescription),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", roleNameKey, "test"),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", roleDescriptionKey, fooRoleDescription),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", roleNameKey, "test"),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test update
|
||||
Config: testConfig(url, fooRoleUpdate),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleResourceExists("watchtower_role.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_role.foo", roleDescriptionKey, fooRoleDescriptionUpdate),
|
||||
testAccCheckRoleResourceExists("boundary_role.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_role.foo", roleDescriptionKey, fooRoleDescriptionUpdate),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test destroy
|
||||
Config: testConfig(url),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckRoleDestroyed("watchtower_role.foo"),
|
||||
testAccCheckRoleDestroyed("boundary_role.foo"),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -243,19 +243,19 @@ func TestAccRole(t *testing.T) {
|
||||
// testAccCheckRoleDestroyed checks the terraform state for the host
|
||||
// catalog and returns an error if found.
|
||||
//
|
||||
// TODO(malnick) This method falls short of checking the Watchtower API for
|
||||
// TODO(malnick) This method falls short of checking the Boundary API for
|
||||
// the resource if the resource is not found in state. This is due to us not
|
||||
// having the host catalog ID, but it doesn't guarantee that the resource was
|
||||
// successfully removed.
|
||||
//
|
||||
// It does check Watchtower if the resource is found in state to point out any
|
||||
// It does check Boundary if the resource is found in state to point out any
|
||||
// misalignment between what is in state and the actual configuration.
|
||||
func testAccCheckRoleDestroyed(name string) resource.TestCheckFunc {
|
||||
return func(s *terraform.State) error {
|
||||
rs, ok := s.RootModule().Resources[name]
|
||||
if !ok {
|
||||
// If it's not in state, it's destroyed in TF but not guaranteed to be destroyed
|
||||
// in Watchtower. Need to find a way to get the host catalog ID here so we can
|
||||
// in Boundary. Need to find a way to get the host catalog ID here so we can
|
||||
// form a lookup to the WT API to check this.
|
||||
return nil
|
||||
}
|
||||
@@ -350,9 +350,9 @@ func testAccCheckRoleResourceUsersSet(name string, users []string) resource.Test
|
||||
}
|
||||
|
||||
// for every user set as a principal on the role in the state, ensure
|
||||
// each role in watchtower has the same setings
|
||||
// each role in boundary has the same setings
|
||||
if len(r.PrincipalIds) == 0 {
|
||||
return fmt.Errorf("no users found in watchtower")
|
||||
return fmt.Errorf("no users found in boundary")
|
||||
}
|
||||
|
||||
for _, stateUser := range r.PrincipalIds {
|
||||
@@ -363,7 +363,7 @@ func testAccCheckRoleResourceUsersSet(name string, users []string) resource.Test
|
||||
}
|
||||
}
|
||||
if !ok {
|
||||
return fmt.Errorf("user in state not set in watchtower: %s", stateUser)
|
||||
return fmt.Errorf("user in state not set in boundary: %s", stateUser)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -412,9 +412,9 @@ func testAccCheckRoleResourceGroupsSet(name string, groups []string) resource.Te
|
||||
}
|
||||
|
||||
// for every user set as a principal on the role in the state, ensure
|
||||
// each role in watchtower has the same setings
|
||||
// each role in boundary has the same setings
|
||||
if len(r.PrincipalIds) == 0 {
|
||||
return fmt.Errorf("no groups found in watchtower")
|
||||
return fmt.Errorf("no groups found in boundary")
|
||||
}
|
||||
|
||||
for _, stateGroup := range r.PrincipalIds {
|
||||
@@ -425,7 +425,7 @@ func testAccCheckRoleResourceGroupsSet(name string, groups []string) resource.Te
|
||||
}
|
||||
}
|
||||
if !ok {
|
||||
return fmt.Errorf("group in state not set in watchtower: %s", stateGroup)
|
||||
return fmt.Errorf("group in state not set in boundary: %s", stateGroup)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -486,11 +486,11 @@ func testAccCheckRoleResourceDestroy(t *testing.T) resource.TestCheckFunc {
|
||||
|
||||
for _, rs := range s.RootModule().Resources {
|
||||
switch rs.Type {
|
||||
case "watchtower_user":
|
||||
case "boundary_user":
|
||||
continue
|
||||
case "watchtower_group":
|
||||
case "boundary_group":
|
||||
continue
|
||||
case "watchtower_role":
|
||||
case "boundary_role":
|
||||
|
||||
id := rs.Primary.ID
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/watchtower/api/users"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
"github.com/hashicorp/boundary/api/users"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -9,9 +9,9 @@ import (
|
||||
|
||||
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
|
||||
"github.com/hashicorp/terraform-plugin-sdk/terraform"
|
||||
"github.com/hashicorp/watchtower/api/scopes"
|
||||
"github.com/hashicorp/watchtower/api/users"
|
||||
"github.com/hashicorp/watchtower/testing/controller"
|
||||
"github.com/hashicorp/boundary/api/scopes"
|
||||
"github.com/hashicorp/boundary/api/users"
|
||||
"github.com/hashicorp/boundary/testing/controller"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -22,18 +22,18 @@ const (
|
||||
|
||||
var (
|
||||
fooUser = fmt.Sprintf(`
|
||||
resource "watchtower_user" "foo" {
|
||||
resource "boundary_user" "foo" {
|
||||
name = "test"
|
||||
description = "%s"
|
||||
}`, fooUserDescription)
|
||||
|
||||
fooUserUpdate = fmt.Sprintf(`
|
||||
resource "watchtower_user" "foo" {
|
||||
resource "boundary_user" "foo" {
|
||||
name = "test"
|
||||
description = "%s"
|
||||
}`, fooUserDescriptionUpdate)
|
||||
fooUserUnset = fmt.Sprintf(`
|
||||
resource "watchtower_user" "foo" {
|
||||
resource "boundary_user" "foo" {
|
||||
name = "test"
|
||||
description = "%s"
|
||||
}`, fooUserDescriptionUnset)
|
||||
@@ -52,25 +52,25 @@ func TestAccUser(t *testing.T) {
|
||||
// test create
|
||||
Config: testConfig(url, fooUser),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckUserResourceExists("watchtower_user.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_user.foo", userDescriptionKey, fooUserDescription),
|
||||
resource.TestCheckResourceAttr("watchtower_user.foo", userNameKey, "test"),
|
||||
testAccCheckUserResourceExists("boundary_user.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_user.foo", userDescriptionKey, fooUserDescription),
|
||||
resource.TestCheckResourceAttr("boundary_user.foo", userNameKey, "test"),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test update
|
||||
Config: testConfig(url, fooUserUnset),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckUserResourceExists("watchtower_user.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_user.foo", userDescriptionKey, fooUserDescriptionUnset),
|
||||
testAccCheckUserResourceExists("boundary_user.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_user.foo", userDescriptionKey, fooUserDescriptionUnset),
|
||||
),
|
||||
},
|
||||
{
|
||||
// test unset
|
||||
Config: testConfig(url, fooUserUpdate),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckUserResourceExists("watchtower_user.foo"),
|
||||
resource.TestCheckResourceAttr("watchtower_user.foo", userDescriptionKey, fooUserDescriptionUpdate),
|
||||
testAccCheckUserResourceExists("boundary_user.foo"),
|
||||
resource.TestCheckResourceAttr("boundary_user.foo", userDescriptionKey, fooUserDescriptionUpdate),
|
||||
),
|
||||
},
|
||||
|
||||
@@ -78,7 +78,7 @@ func TestAccUser(t *testing.T) {
|
||||
// test destroy
|
||||
Config: testConfig(url),
|
||||
Check: resource.ComposeTestCheckFunc(
|
||||
testAccCheckUserDestroyed("watchtower_user.foo"),
|
||||
testAccCheckUserDestroyed("boundary_user.foo"),
|
||||
),
|
||||
},
|
||||
},
|
||||
@@ -88,19 +88,19 @@ func TestAccUser(t *testing.T) {
|
||||
// testAccCheckUserDestroyed checks the terraform state for the host
|
||||
// catalog and returns an error if found.
|
||||
//
|
||||
// TODO(malnick) This method falls short of checking the Watchtower API for
|
||||
// TODO(malnick) This method falls short of checking the Boundary API for
|
||||
// the resource if the resource is not found in state. This is due to us not
|
||||
// having the host catalog ID, but it doesn't guarantee that the resource was
|
||||
// successfully removed.
|
||||
//
|
||||
// It does check Watchtower if the resource is found in state to point out any
|
||||
// It does check Boundary if the resource is found in state to point out any
|
||||
// misalignment between what is in state and the actual configuration.
|
||||
func testAccCheckUserDestroyed(name string) resource.TestCheckFunc {
|
||||
return func(s *terraform.State) error {
|
||||
rs, ok := s.RootModule().Resources[name]
|
||||
if !ok {
|
||||
// If it's not in state, it's destroyed in TF but not guaranteed to be destroyed
|
||||
// in Watchtower. Need to find a way to get the host catalog ID here so we can
|
||||
// in Boundary. Need to find a way to get the host catalog ID here so we can
|
||||
// form a lookup to the WT API to check this.
|
||||
return nil
|
||||
}
|
||||
@@ -161,7 +161,7 @@ func testAccCheckUserResourceDestroy(t *testing.T) resource.TestCheckFunc {
|
||||
|
||||
for _, rs := range s.RootModule().Resources {
|
||||
switch rs.Type {
|
||||
case "watchtower_user":
|
||||
case "boundary_user":
|
||||
|
||||
id := rs.Primary.ID
|
||||
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
---
|
||||
layout: "watchtower"
|
||||
page_title: "Provider: Watchtower"
|
||||
sidebar_current: "docs-watchtower-index"
|
||||
layout: "boundary"
|
||||
page_title: "Provider: Boundary"
|
||||
sidebar_current: "docs-boundary-index"
|
||||
description: |-
|
||||
Terraform provider Watchtower.
|
||||
Terraform provider Boundary.
|
||||
---
|
||||
|
||||
# Watchtower Provider
|
||||
# Boundary Provider
|
||||
|
||||
This provider configures Watchtower.
|
||||
This provider configures Boundary.
|
||||
|
||||
## Example Usage
|
||||
|
||||
Do not keep your authentication password in HCL for production environments, use Terraform environment variables.
|
||||
|
||||
```hcl
|
||||
provider "watchtower" {
|
||||
provider "boundary" {
|
||||
base_url = "https://127.0.0.1:9200"
|
||||
default_organization = "o_0000000000"
|
||||
auth_method_id = "am_1234567890"
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
---
|
||||
layout: "watchtower"
|
||||
page_title: "Watchtower: group_resource"
|
||||
sidebar_current: "docs-watchtower-group-resource"
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: group_resource"
|
||||
sidebar_current: "docs-boundary-group-resource"
|
||||
description: |-
|
||||
Group resource for the Watchtower Terraform provider.
|
||||
Group resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# watchtower_group_resource
|
||||
The group resource allows you to configure a Watchtower group.
|
||||
# boundary_group_resource
|
||||
The group resource allows you to configure a Boundary group.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "watchtower_group" "example" {
|
||||
resource "boundary_group" "example" {
|
||||
name = "My group"
|
||||
description = "My first group!"
|
||||
}
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
---
|
||||
layout: "watchtower"
|
||||
page_title: "Watchtower: host_catalog_resource"
|
||||
sidebar_current: "docs-watchtower-host-catalog-resource"
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: host_catalog_resource"
|
||||
sidebar_current: "docs-boundary-host-catalog-resource"
|
||||
description: |-
|
||||
Host catalog resource for the Watchtower Terraform provider.
|
||||
Host catalog resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# host_catalog_resource
|
||||
The host catalog resource allows you to configure a Watchtower host catalog. Host catalogs
|
||||
The host catalog resource allows you to configure a Boundary host catalog. Host catalogs
|
||||
are always part of a project, so a project resource should be used inline or you should have
|
||||
the project ID in hand to successfully configure a host catalog.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "watchtower_project" "example" {
|
||||
resource "boundary_project" "example" {
|
||||
description = "My first project!"
|
||||
}
|
||||
|
||||
resource "watchtower_host_catalog" "example" {
|
||||
resource "boundary_host_catalog" "example" {
|
||||
name = "My catalog"
|
||||
description = "My first host catalog!"
|
||||
type = "Static"
|
||||
project_id = watchtower_project.example.id
|
||||
project_id = boundary_project.example.id
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
---
|
||||
layout: "watchtower"
|
||||
page_title: "Watchtower: role_resource"
|
||||
sidebar_current: "docs-watchtower-role-resource"
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: role_resource"
|
||||
sidebar_current: "docs-boundary-role-resource"
|
||||
description: |-
|
||||
Role resource for the Watchtower Terraform provider.
|
||||
Role resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# role_resource
|
||||
The role resource allows you to configure a Watchtower role.
|
||||
The role resource allows you to configure a Boundary role.
|
||||
|
||||
## Example Usage
|
||||
Basic usage:
|
||||
|
||||
```hcl
|
||||
resource "watchtower_role" "example" {
|
||||
resource "boundary_role" "example" {
|
||||
name = "My role"
|
||||
description = "My first role!"
|
||||
}
|
||||
@@ -22,18 +22,18 @@ resource "watchtower_role" "example" {
|
||||
Usage with a user resource:
|
||||
|
||||
```hcl
|
||||
resource "watchtower_user" "foo" {
|
||||
resource "boundary_user" "foo" {
|
||||
name = "User 1"
|
||||
}
|
||||
|
||||
resource "watchtower_user" "bar" {
|
||||
resource "boundary_user" "bar" {
|
||||
name = "User 2"
|
||||
}
|
||||
|
||||
resource "watchtower_role" "example" {
|
||||
resource "boundary_role" "example" {
|
||||
name = "My role"
|
||||
description = "My first role!"
|
||||
principals = [watchtower_user.foo.id, watchtower_user.bar.id]
|
||||
principals = [boundary_user.foo.id, boundary_user.bar.id]
|
||||
}
|
||||
|
||||
```
|
||||
@@ -41,15 +41,15 @@ resource "watchtower_role" "example" {
|
||||
Usage with user and grants resource:
|
||||
|
||||
```hcl
|
||||
resource "watchtower_user" "readonly" {
|
||||
resource "boundary_user" "readonly" {
|
||||
name = "readonly"
|
||||
description = "A readonly user"
|
||||
}
|
||||
|
||||
resource "watchtower_role" "readonly" {
|
||||
resource "boundary_role" "readonly" {
|
||||
name = "readonly"
|
||||
description = "A readonly role"
|
||||
principals = [watchtower_user.readonly.id]
|
||||
principals = [boundary_user.readonly.id]
|
||||
grants = ["id=*;action=read"]
|
||||
}
|
||||
```
|
||||
@@ -59,4 +59,4 @@ resource "watchtower_role" "readonly" {
|
||||
The following arguments are optional:
|
||||
* `name` - The role name. Defaults to the resource name.
|
||||
* `description` - The role description.
|
||||
* `principals` - A list of principal (user or group) IDs to add as principals on the role.
|
||||
* `principals` - A list of principal (user or group) IDs to add as principals on the role.
|
||||
@@ -1,18 +1,18 @@
|
||||
---
|
||||
layout: "watchtower"
|
||||
page_title: "Watchtower: user_resource"
|
||||
sidebar_current: "docs-watchtower-user-resource"
|
||||
layout: "boundary"
|
||||
page_title: "Boundary: user_resource"
|
||||
sidebar_current: "docs-boundary-user-resource"
|
||||
description: |-
|
||||
User resource for the Watchtower Terraform provider.
|
||||
User resource for the Boundary Terraform provider.
|
||||
---
|
||||
|
||||
# user_resource
|
||||
The user resource allows you to configure a Watchtower user.
|
||||
The user resource allows you to configure a Boundary user.
|
||||
|
||||
## Example Usage
|
||||
|
||||
```hcl
|
||||
resource "watchtower_user" "example" {
|
||||
resource "boundary_user" "example" {
|
||||
name = "My user"
|
||||
description = "My first user!"
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user