func (s *cloudImageMetadataSuite) TestSupportedArchitectures(c *gc.C) { stream := "stream" region := "region-test" arch1 := "arch" attrs := cloudimagemetadata.MetadataAttributes{ Stream: stream, Region: region, Version: "14.04", Series: "trusty", Arch: arch1, VirtType: "virtType-test", Source: "test", RootStorageType: "rootStorageType-test"} added := cloudimagemetadata.Metadata{attrs, 0, "1", 0} s.assertRecordMetadata(c, added) s.assertMetadataRecorded(c, attrs, added) addedNonUnique := cloudimagemetadata.Metadata{attrs, 0, "21", 0} s.assertRecordMetadata(c, addedNonUnique) s.assertMetadataRecorded(c, attrs, addedNonUnique) arch2 := "anotherArch" attrs.Arch = arch2 added2 := cloudimagemetadata.Metadata{attrs, 0, "21", 0} s.assertRecordMetadata(c, added2) s.assertMetadataRecorded(c, attrs, added2) expected := []string{arch1, arch2} uniqueArches, err := s.storage.SupportedArchitectures( cloudimagemetadata.MetadataFilter{Stream: stream, Region: region}) c.Assert(err, jc.ErrorIsNil) c.Assert(uniqueArches, gc.DeepEquals, expected) }
func (s *cloudImageMetadataSuite) TestFindMetadata(c *gc.C) { attrs := cloudimagemetadata.MetadataAttributes{ Stream: "stream", Region: "region", Version: "14.04", Series: "trusty", Arch: "arch", VirtType: "virtType", Source: "test", RootStorageType: "rootStorageType"} m := cloudimagemetadata.Metadata{attrs, 0, "1", 0} _, err := s.storage.FindMetadata(buildAttributesFilter(attrs)) c.Assert(err, jc.Satisfies, errors.IsNotFound) s.assertRecordMetadata(c, m) expected := []cloudimagemetadata.Metadata{m} s.assertMetadataRecorded(c, attrs, expected...) attrs.Stream = "another_stream" m = cloudimagemetadata.Metadata{attrs, 0, "2", 0} s.assertRecordMetadata(c, m) expected = append(expected, m) // Should find both s.assertMetadataRecorded(c, cloudimagemetadata.MetadataAttributes{Region: "region"}, expected...) }
func (s *cloudImageMetadataSuite) TestSaveSameMetadataSameImageDiffSourceConcurrently(c *gc.C) { attrs := cloudimagemetadata.MetadataAttributes{ Stream: "stream", Series: "series", Arch: "arch", Source: cloudimagemetadata.Public, } metadata0 := cloudimagemetadata.Metadata{attrs, "0"} attrs.Source = cloudimagemetadata.Custom metadata1 := cloudimagemetadata.Metadata{attrs, "0"} s.assertConcurrentSave(c, metadata0, metadata1, metadata0, metadata1, ) }
func (s *cloudImageMetadataSuite) TestSaveSameMetadataSameImageDiffSourceConcurrently(c *gc.C) { attrs := cloudimagemetadata.MetadataAttributes{ Stream: "stream", Version: "14.04", Series: "trusty", Arch: "arch", Source: "public", } metadata0 := cloudimagemetadata.Metadata{attrs, 0, "0"} attrs.Source = "custom" metadata1 := cloudimagemetadata.Metadata{attrs, 0, "0"} s.assertConcurrentSave(c, metadata0, metadata1, metadata0, metadata1, ) }