Skip to content

Commit

Permalink
Merge branch 'master' into 'master'
Browse files Browse the repository at this point in the history
release 0.0.3

See merge request github/steampipe-plugin-openstack-github!7
  • Loading branch information
sven-ernw committed Jul 18, 2023
2 parents cb6d28c + fcda062 commit 11183ca
Show file tree
Hide file tree
Showing 28 changed files with 151 additions and 88 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## v0.0.3 [2023-07-13]

- Added region support to connection parameters
- Fixed config file connection parameters prioritisation

## v0.0.2 [2023-06-20]

- Fixed social graphics icon
Expand Down
5 changes: 5 additions & 0 deletions config/openstack.spc
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,10 @@ connection "openstack" {
# expires. This setting is OPTIONAL and defaults to false.
# allow_reauth = false

# Region specifies the endpoints geographic region. Required only for services that span
# multiple regions. Can also be set with the environment variable "OS_REGION".
# region = "RegionOne"


# Further information: https://docs.openstack.org/python-openstackclient/latest/cli/authentication.html
}
7 changes: 6 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,15 @@ connection "openstack" {
# expires. This setting is OPTIONAL and defaults to false.
# allow_reauth = false
# Region specifies the endpoints geographic region. Required only for services that span
# multiple regions. Can also be set with the environment variable "OS_REGION".
# region = "RegionOne"
# Further information: https://docs.openstack.org/python-openstackclient/latest/cli/authentication.html
}
```

Alternatively, you can also use the standard OpenStack environment variables to obtain credentials **only if other arguments (`identity_endpoint`, `username`, `user_id`, `password`, `passcode`, `domain_id`, `domain_name`, `project_id` and `project_name`) are not specified** in the connection:
Alternatively, you can also use the standard OpenStack environment variables to obtain credentials **only if other arguments (`identity_endpoint`, `username`, `user_id`, `password`, `passcode`, `domain_id`, `domain_name`, `project_id`, `project_name` or `region`) are not specified** in the connection:

```sh
export OS_AUTH_URL=http://example.com/identity/v3
Expand All @@ -120,6 +124,7 @@ export OS_DOMAIN_ID=default
export OS_DOMAIN_NAME=Default
export OS_PROJECT_ID=3e666015f769bf30cda73a1a1e9b794a
export OS_PROJECT_NAME=my_project
export OS_REGION=RegionOne
```

## Get involved
Expand Down
4 changes: 4 additions & 0 deletions openstack/connection_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ type openstackConfig struct {
ProjectID *string `cty:"project_id"`
ProjectName *string `cty:"project_name"`
AllowReauth *bool `cty:"allow_reauth"`
Region *string `cty:"region"`
// TODO: add authentication with application credentials
}

Expand Down Expand Up @@ -50,6 +51,9 @@ var ConfigSchema = map[string]*schema.Attribute{
"allow_reauth": {
Type: schema.TypeBool,
},
"region": {
Type: schema.TypeString,
},
}

func ConfigInstance() interface{} {
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_aggregate.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/aggregates"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -46,7 +45,8 @@ func listAggregate(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateDa
}

// get compute client from provider
computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
computeClient, err := openstack.NewComputeV2(provider, endpointOpts)

if err != nil {
logger.Error("openstack_aggregate.listAggregate", "connection_error", err)
Expand Down Expand Up @@ -81,7 +81,8 @@ func getAggregate(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateDat
}

// get compute client from provider
computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
computeClient, err := openstack.NewComputeV2(provider, endpointOpts)

// get aggregate
aggregate, err := aggregates.Get(computeClient, int(id)).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_application_credential.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/identity/v3/applicationcredentials"
"github.com/gophercloud/gophercloud/openstack/identity/v3/users"
Expand Down Expand Up @@ -55,7 +54,8 @@ func listApplicationCredential(ctx context.Context, d *plugin.QueryData, _ *plug
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

if err != nil {
logger.Error("openstack_application_credential.listApplicationCredential", "connection_error", err)
Expand Down Expand Up @@ -102,7 +102,8 @@ func getApplicationCredential(ctx context.Context, d *plugin.QueryData, h *plugi
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

// get application credential for provided user id (user_id) and application credential id
applicationcredential, err := applicationcredentials.Get(identityClient, uid, id).Extract()
Expand Down
4 changes: 2 additions & 2 deletions openstack/table_openstack_availability_zone.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/availabilityzones"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -36,7 +35,8 @@ func listAvailabilityZone(ctx context.Context, d *plugin.QueryData, _ *plugin.Hy
}

// get compute client from provider
computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
computeClient, err := openstack.NewComputeV2(provider, endpointOpts)

if err != nil {
logger.Error("openstack_availability_zone.listAvailabilityZone", "connection_error", err)
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_compute_image.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/compute/v2/images"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -47,7 +46,8 @@ func listComputeImage(ctx context.Context, d *plugin.QueryData, _ *plugin.Hydrat
}

// get compute client from provider
computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
computeClient, err := openstack.NewComputeV2(provider, endpointOpts)

if err != nil {
logger.Error("openstack_compute_image.listComputeImage", "connection_error", err)
Expand Down Expand Up @@ -82,7 +82,8 @@ func getComputeImage(ctx context.Context, d *plugin.QueryData, h *plugin.Hydrate
}

// get compute client from provider
computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
computeClient, err := openstack.NewComputeV2(provider, endpointOpts)

// get image
image, err := images.Get(computeClient, id).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/identity/v3/domains"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -42,7 +41,8 @@ func listDomain(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData)
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

if err != nil {
logger.Error("openstack_domain.listDomain", "connection_error", err)
Expand Down Expand Up @@ -77,7 +77,8 @@ func getDomain(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData)
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

// get domain
domain, err := domains.Get(identityClient, id).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_fip.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -50,7 +49,8 @@ func listFip(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (i
}

// get network client from provider
networkClient, err := openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
networkClient, err := openstack.NewNetworkV2(provider, endpointOpts)

if err != nil {
logger.Error("openstack_fip.listFip", "connection_error", err)
Expand Down Expand Up @@ -85,7 +85,8 @@ func getFip(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (in
}

// get network client from provider
networkClient, err := openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
networkClient, err := openstack.NewNetworkV2(provider, endpointOpts)

// get floating IP (fip)
fip, err := floatingips.Get(networkClient, id).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_group.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"context"
"encoding/json"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/identity/v3/groups"
"github.com/gophercloud/gophercloud/openstack/identity/v3/users"
Expand Down Expand Up @@ -51,7 +50,8 @@ func listGroup(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData)
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)
if err != nil {
logger.Error("openstack_group.listGroup", "connection_error", err)
return nil, err
Expand Down Expand Up @@ -100,7 +100,8 @@ func getGroup(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)
if err != nil {
logger.Error("openstack_group.getGroup", "connection_error", err)
return nil, err
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_keypair.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/keypairs"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -43,7 +42,8 @@ func listKeypair(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData
}

// get compute client from provider
computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
computeClient, err := openstack.NewComputeV2(provider, endpointOpts)

if err != nil {
logger.Error("openstack_keypair.listKeypair", "connection_error", err)
Expand Down Expand Up @@ -78,7 +78,8 @@ func getKeypair(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData)
}

// get compute client from provider
computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
computeClient, err := openstack.NewComputeV2(provider, endpointOpts)

// get keypair
keypair, err := keypairs.Get(computeClient, name, keypairs.GetOpts{}).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_network.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/networking/v2/networks"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -51,7 +50,8 @@ func listNetwork(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData
}

// get network client from provider
networkClient, err := openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
networkClient, err := openstack.NewNetworkV2(provider, endpointOpts)

if err != nil {
logger.Error("openstack_network.listNetwork", "connection_error", err)
Expand Down Expand Up @@ -86,7 +86,8 @@ func getNetwork(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData)
}

// get network client from provider
networkClient, err := openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
networkClient, err := openstack.NewNetworkV2(provider, endpointOpts)

// get network
network, err := networks.Get(networkClient, id).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_port.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/networking/v2/ports"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -56,7 +55,8 @@ func listPort(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (
}

// get network client from provider
networkClient, err := openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
networkClient, err := openstack.NewNetworkV2(provider, endpointOpts)

if err != nil {
logger.Error("openstack_port.listPort", "connection_error", err)
Expand Down Expand Up @@ -91,7 +91,8 @@ func getPort(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (i
}

// get network client from provider
networkClient, err := openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
networkClient, err := openstack.NewNetworkV2(provider, endpointOpts)

// get port
port, err := ports.Get(networkClient, id).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_project.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/identity/v3/projects"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -46,7 +45,8 @@ func listProject(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

if err != nil {
logger.Error("openstack_project.listProject", "connection_error", err)
Expand Down Expand Up @@ -81,7 +81,8 @@ func getProject(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData)
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

// get project
project, err := projects.Get(identityClient, id).Extract()
Expand Down
7 changes: 4 additions & 3 deletions openstack/table_openstack_role.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package openstack
import (
"context"

"github.com/gophercloud/gophercloud"
"github.com/gophercloud/gophercloud/openstack"
"github.com/gophercloud/gophercloud/openstack/identity/v3/roles"
"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
Expand Down Expand Up @@ -41,7 +40,8 @@ func listRole(ctx context.Context, d *plugin.QueryData, _ *plugin.HydrateData) (
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

if err != nil {
logger.Error("openstack_role.listRole", "connection_error", err)
Expand Down Expand Up @@ -76,7 +76,8 @@ func getRole(ctx context.Context, d *plugin.QueryData, h *plugin.HydrateData) (i
}

// get identity client from provider
identityClient, err := openstack.NewIdentityV3(provider, gophercloud.EndpointOpts{})
endpointOpts := getEndpointOpts(d)
identityClient, err := openstack.NewIdentityV3(provider, endpointOpts)

// get role
role, err := roles.Get(identityClient, id).Extract()
Expand Down
Loading

0 comments on commit 11183ca

Please sign in to comment.