Skip to content

Commit 3e92295

Browse files
Retrieve just the active images in openstack
This is a bug fix which make sure just the active images are used by the openstack backend. To achieve this the images retrieved are filtered by active status.
1 parent 3b96424 commit 3e92295

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

spread/openstack.go

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ const (
117117

118118
openstackPending = "PENDING"
119119
openstackDone = "DONE"
120+
openstackActive = "ACTIVE"
120121
)
121122

122123
func (p *openstackProvider) Backend() *Backend {
@@ -258,13 +259,29 @@ func (p *openstackProvider) findNetwork(name string) (*neutron.NetworkV2, error)
258259
return nil, &FatalError{fmt.Errorf("cannot find valid network with name %q", name)}
259260
}
260261

262+
func (p *openstackProvider) getActiveImages() ([]glance.ImageDetail, error) {
263+
images, err := p.imageClient.ListImagesDetail()
264+
activeImages := []glance.ImageDetail{}
265+
266+
if err != nil {
267+
return nil, fmt.Errorf("cannot retrieve images list: %v", &openstackError{err})
268+
}
269+
270+
for _, image := range images {
271+
if strings.ToLower(image.Status) == strings.ToLower(openstackActive) {
272+
activeImages = append(activeImages, image)
273+
}
274+
}
275+
return activeImages, nil
276+
}
277+
261278
func (p *openstackProvider) findImage(imageName string) (*glance.ImageDetail, error) {
262279
var lastImage glance.ImageDetail
263280
var lastCreatedDate time.Time
264281

265282
// TODO: consider using an image cache just like the google backend
266283
// (https://github.com/snapcore/spread/pull/175 needs to be fixed first)
267-
images, err := p.imageClient.ListImagesDetail()
284+
images, err := p.getActiveImages()
268285
if err != nil {
269286
return nil, fmt.Errorf("cannot retrieve images list: %v", &openstackError{err})
270287
}

0 commit comments

Comments
 (0)