chore: update to name boundary (#17)

This commit is contained in:
Jeff Malnick authored and GitHub committed 2020-08-11 16:12:26 -07:00
1 parent 46c5491a54
commit f6573a6277
20 files changed
+272 -207

No files matched your search

+1 -1
View File
@@ -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
+9 -8
View File
@@ -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
)
+64
View File
@@ -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=
+10 -10
View File
@@ -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(),
},
}
+2 -2
View File
@@ -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"
+2 -2
View File
@@ -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 (
+15 -15
View File
@@ -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
+2 -2
View File
@@ -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 (
+19 -19
View File
@@ -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}
+2 -2
View File
@@ -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 {
+15 -15
View File
@@ -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"
}
`
+2 -2
View File
@@ -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 (
+67 -67
View File
@@ -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
+2 -2
View File
@@ -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 (
+18 -18
View File
@@ -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
+7 -7
View File
@@ -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"
+7 -7
View File
@@ -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
}
```
+14 -14
View File
@@ -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.
+6 -6
View File
@@ -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!"
}