Skip to content

Commit ca07cfc

Browse files
authored
Merge pull request kubernetes-sigs#1722 from shiftstack/e2e_vols
🌱 e2e: dump cinder volumes
2 parents 3997a22 + f6250d0 commit ca07cfc

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

test/e2e/shared/openstack.go

+46
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,27 @@ func dumpOpenStack(_ context.Context, e2eCtx *E2EContext, bootstrapClusterProxyN
131131
if err := dumpOpenStackSubnets(e2eCtx, logPath); err != nil {
132132
_, _ = fmt.Fprintf(GinkgoWriter, "error dumping OpenStack subnets: %s\n", err)
133133
}
134+
135+
if err := dumpOpenStackVolumes(e2eCtx, logPath); err != nil {
136+
_, _ = fmt.Fprintf(GinkgoWriter, "error dumping OpenStack volumes: %s\n", err)
137+
}
138+
}
139+
140+
// dumpOpenStackVolumes returns all OpenStack volumes to a file in the artifact folder.
141+
func dumpOpenStackVolumes(e2eCtx *E2EContext, logPath string) error {
142+
volumesList, err := DumpOpenStackVolumes(e2eCtx, volumes.ListOpts{})
143+
if err != nil {
144+
return err
145+
}
146+
volumesJSON, err := json.MarshalIndent(volumesList, "", " ")
147+
if err != nil {
148+
return fmt.Errorf("error marshalling volumes %v: %s", volumesList, err)
149+
}
150+
if err := os.WriteFile(path.Join(logPath, "volumes.json"), volumesJSON, 0o600); err != nil {
151+
return fmt.Errorf("error writing volumes.json %s: %s", volumesJSON, err)
152+
}
153+
154+
return nil
134155
}
135156

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

373+
// DumpOpenStackVolumes returns all OpenStack volumes to a file in the artifact folder.
374+
func DumpOpenStackVolumes(e2eCtx *E2EContext, filter volumes.ListOpts) ([]volumes.Volume, error) {
375+
providerClient, clientOpts, _, err := GetTenantProviderClient(e2eCtx)
376+
if err != nil {
377+
return nil, err
378+
}
379+
380+
blockStorageClient, err := openstack.NewBlockStorageV3(providerClient, gophercloud.EndpointOpts{
381+
Region: clientOpts.RegionName,
382+
})
383+
if err != nil {
384+
return nil, fmt.Errorf("error creating block storage client: %s", err)
385+
}
386+
387+
allPages, err := volumes.List(blockStorageClient, filter).AllPages()
388+
if err != nil {
389+
return nil, fmt.Errorf("error listing volumes: %s", err)
390+
}
391+
volumesList, err := volumes.ExtractVolumes(allPages)
392+
if err != nil {
393+
return nil, fmt.Errorf("error extracting volumes: %s", err)
394+
}
395+
return volumesList, nil
396+
}
397+
352398
func DumpOpenStackPorts(e2eCtx *E2EContext, filter ports.ListOpts) ([]ports.Port, error) {
353399
providerClient, clientOpts, _, err := GetTenantProviderClient(e2eCtx)
354400
if err != nil {

0 commit comments

Comments
 (0)