func (s *supportedSeriesSuite) TestUpdateSeriesVersions(c *gc.C) { d := c.MkDir() filename := filepath.Join(d, "ubuntu.csv") err := ioutil.WriteFile(filename, []byte(distInfoData), 0644) c.Assert(err, jc.ErrorIsNil) s.PatchValue(series.DistroInfo, filename) expectedSeries := []string{"precise", "quantal", "raring", "saucy"} checkSeries := func() { series := series.SupportedSeries() sort.Strings(series) c.Assert(series, gc.DeepEquals, expectedSeries) } checkSeries() // Updating the file does not normally trigger an update; // we only refresh automatically one time. After that, we // must explicitly refresh. err = ioutil.WriteFile(filename, []byte(distInfoData2), 0644) c.Assert(err, jc.ErrorIsNil) checkSeries() expectedSeries = append(expectedSeries, "trusty") series.UpdateSeriesVersions() checkSeries() }
func updateDistroInfo() error { pm := manager.NewAptPackageManager() if err := pm.Update(); err != nil { return errors.Annotate(err, "updating package list") } if err := pm.Install("distro-info"); err != nil { return errors.Annotate(err, "updating distro-info package") } return series.UpdateSeriesVersions() }