// TODO(wallyworld) - add another test that deploy with storage fails for older environments // (need deploy client to be refactored to use API stub) func (s *DeploySuite) TestStorage(c *gc.C) { pm := poolmanager.New(state.NewStateSettings(s.State)) _, err := pm.Create("loop-pool", provider.LoopProviderType, map[string]interface{}{"foo": "bar"}) c.Assert(err, jc.ErrorIsNil) testcharms.Repo.CharmArchivePath(s.SeriesPath, "storage-block") err = runDeploy(c, "local:storage-block", "--storage", "data=loop-pool,1G") c.Assert(err, jc.ErrorIsNil) curl := charm.MustParseURL("local:trusty/storage-block-1") service, _ := s.AssertService(c, "storage-block", curl, 1, 0) cons, err := service.StorageConstraints() c.Assert(err, jc.ErrorIsNil) c.Assert(cons, jc.DeepEquals, map[string]state.StorageConstraints{ "data": { Pool: "loop-pool", Count: 1, Size: 1024, }, "allecto": { Pool: "loop", Count: 0, Size: 1024, }, }) }
// assertServicesDeployed checks that the given services have been deployed. func (s *charmStoreSuite) assertServicesDeployed(c *gc.C, info map[string]serviceInfo) { services, err := s.State.AllServices() c.Assert(err, jc.ErrorIsNil) deployed := make(map[string]serviceInfo, len(services)) for _, service := range services { charm, _ := service.CharmURL() config, err := service.ConfigSettings() c.Assert(err, jc.ErrorIsNil) if len(config) == 0 { config = nil } constraints, err := service.Constraints() c.Assert(err, jc.ErrorIsNil) storage, err := service.StorageConstraints() c.Assert(err, jc.ErrorIsNil) if len(storage) == 0 { storage = nil } deployed[service.Name()] = serviceInfo{ charm: charm.String(), config: config, constraints: constraints, exposed: service.IsExposed(), storage: storage, } } c.Assert(deployed, jc.DeepEquals, info) }