Skip to content

Commit

Permalink
Merge pull request #1722 from shiftstack/e2e_vols
Browse files Browse the repository at this point in the history
🌱 e2e: dump cinder volumes
  • Loading branch information
k8s-ci-robot authored Oct 12, 2023
2 parents 3997a22 + f6250d0 commit ca07cfc
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions test/e2e/shared/openstack.go
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,27 @@ func dumpOpenStack(_ context.Context, e2eCtx *E2EContext, bootstrapClusterProxyN
if err := dumpOpenStackSubnets(e2eCtx, logPath); err != nil {
_, _ = fmt.Fprintf(GinkgoWriter, "error dumping OpenStack subnets: %s\n", err)
}

if err := dumpOpenStackVolumes(e2eCtx, logPath); err != nil {
_, _ = fmt.Fprintf(GinkgoWriter, "error dumping OpenStack volumes: %s\n", err)
}
}

// dumpOpenStackVolumes returns all OpenStack volumes to a file in the artifact folder.
func dumpOpenStackVolumes(e2eCtx *E2EContext, logPath string) error {
volumesList, err := DumpOpenStackVolumes(e2eCtx, volumes.ListOpts{})
if err != nil {
return err
}
volumesJSON, err := json.MarshalIndent(volumesList, "", " ")
if err != nil {
return fmt.Errorf("error marshalling volumes %v: %s", volumesList, err)
}
if err := os.WriteFile(path.Join(logPath, "volumes.json"), volumesJSON, 0o600); err != nil {
return fmt.Errorf("error writing volumes.json %s: %s", volumesJSON, err)
}

return nil
}

func dumpOpenStackImages(providerClient *gophercloud.ProviderClient, clientOpts *clientconfig.ClientOpts, logPath string) error {
Expand Down Expand Up @@ -349,6 +370,31 @@ func DumpOpenStackSecurityGroups(e2eCtx *E2EContext, filter groups.ListOpts) ([]
return groupsList, nil
}

// DumpOpenStackVolumes returns all OpenStack volumes to a file in the artifact folder.
func DumpOpenStackVolumes(e2eCtx *E2EContext, filter volumes.ListOpts) ([]volumes.Volume, error) {
providerClient, clientOpts, _, err := GetTenantProviderClient(e2eCtx)
if err != nil {
return nil, err
}

blockStorageClient, err := openstack.NewBlockStorageV3(providerClient, gophercloud.EndpointOpts{
Region: clientOpts.RegionName,
})
if err != nil {
return nil, fmt.Errorf("error creating block storage client: %s", err)
}

allPages, err := volumes.List(blockStorageClient, filter).AllPages()
if err != nil {
return nil, fmt.Errorf("error listing volumes: %s", err)
}
volumesList, err := volumes.ExtractVolumes(allPages)
if err != nil {
return nil, fmt.Errorf("error extracting volumes: %s", err)
}
return volumesList, nil
}

func DumpOpenStackPorts(e2eCtx *E2EContext, filter ports.ListOpts) ([]ports.Port, error) {
providerClient, clientOpts, _, err := GetTenantProviderClient(e2eCtx)
if err != nil {
Expand Down

0 comments on commit ca07cfc

Please sign in to comment.