本文整理汇总了Golang中github.com/wallyworld/core/utils/set.NewStrings函数的典型用法代码示例。如果您正苦于以下问题:Golang NewStrings函数的具体用法?Golang NewStrings怎么用?Golang NewStrings使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了NewStrings函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: RegisterConflicts
// RegisterConflicts is defined on Validator.
func (v *validator) RegisterConflicts(reds, blues []string) {
for _, red := range reds {
v.conflicts[red] = set.NewStrings(blues...)
}
for _, blue := range blues {
v.conflicts[blue] = set.NewStrings(reds...)
}
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:validation.go
示例2: TestDifference
func (stringSetSuite) TestDifference(c *gc.C) {
s1 := set.NewStrings("foo", "bar")
s2 := set.NewStrings("foo", "baz", "bang")
diff1 := s1.Difference(s2)
diff2 := s2.Difference(s1)
AssertValues(c, diff1, "bar")
AssertValues(c, diff2, "baz", "bang")
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:strings_test.go
示例3: TestIntersection
func (stringSetSuite) TestIntersection(c *gc.C) {
s1 := set.NewStrings("foo", "bar")
s2 := set.NewStrings("foo", "baz", "bang")
int1 := s1.Intersection(s2)
int2 := s2.Intersection(s1)
AssertValues(c, int1, "foo")
AssertValues(c, int2, "foo")
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:strings_test.go
示例4: TestUnion
func (stringSetSuite) TestUnion(c *gc.C) {
s1 := set.NewStrings("foo", "bar")
s2 := set.NewStrings("foo", "baz", "bang")
union1 := s1.Union(s2)
union2 := s2.Union(s1)
AssertValues(c, union1, "foo", "bar", "baz", "bang")
AssertValues(c, union2, "foo", "bar", "baz", "bang")
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:strings_test.go
示例5: TestSize
func (stringSetSuite) TestSize(c *gc.C) {
// Empty sets are empty.
s := set.NewStrings()
c.Assert(s.Size(), gc.Equals, 0)
// Size returns number of unique values.
s = set.NewStrings("foo", "foo", "bar")
c.Assert(s.Size(), gc.Equals, 2)
}
开发者ID:jameinel,项目名称:core,代码行数:9,代码来源:strings_test.go
示例6: TestIsEmpty
func (stringSetSuite) TestIsEmpty(c *gc.C) {
// Empty sets are empty.
s := set.NewStrings()
c.Assert(s.IsEmpty(), gc.Equals, true)
// Non-empty sets are not empty.
s = set.NewStrings("foo")
c.Assert(s.IsEmpty(), gc.Equals, false)
// Newly empty sets work too.
s.Remove("foo")
c.Assert(s.IsEmpty(), gc.Equals, true)
}
开发者ID:jameinel,项目名称:core,代码行数:12,代码来源:strings_test.go
示例7: loadManifest
// loadManifest loads, from dataPath, the manifest for the charm identified by the
// identity file at the supplied path within the charm directory.
func (d *manifestDeployer) loadManifest(urlFilePath string) (*charm.URL, set.Strings, error) {
url, err := ReadCharmURL(d.CharmPath(urlFilePath))
if err != nil {
return nil, set.NewStrings(), err
}
name := charm.Quote(url.String())
path := filepath.Join(d.DataPath(manifestsDataPath), name)
manifest := []string{}
err = utils.ReadYaml(path, &manifest)
if os.IsNotExist(err) {
logger.Warningf("manifest not found at %q: files from charm %q may be left unremoved", path, url)
err = nil
}
return url, set.NewStrings(manifest...), err
}
开发者ID:jameinel,项目名称:core,代码行数:17,代码来源:manifest_deployer.go
示例8: TestAdd
func (stringSetSuite) TestAdd(c *gc.C) {
s := set.NewStrings()
s.Add("foo")
s.Add("foo")
s.Add("bar")
AssertValues(c, s, "foo", "bar")
}
开发者ID:jameinel,项目名称:core,代码行数:7,代码来源:strings_test.go
示例9: getAllUnitNames
// getAllUnitNames returns a sequence of valid Unit objects from state. If any
// of the service names or unit names are not found, an error is returned.
func getAllUnitNames(st *state.State, units, services []string) (result []*state.Unit, err error) {
unitsSet := set.NewStrings(units...)
for _, name := range services {
service, err := st.Service(name)
if err != nil {
return nil, err
}
units, err := service.AllUnits()
if err != nil {
return nil, err
}
for _, unit := range units {
unitsSet.Add(unit.Name())
}
}
for _, unitName := range unitsSet.Values() {
unit, err := st.Unit(unitName)
if err != nil {
return nil, err
}
// We only operate on principal units, and only thise that have an
// assigned machines.
if unit.IsPrincipal() {
if _, err := unit.AssignedMachineId(); err != nil {
return nil, err
}
} else {
return nil, fmt.Errorf("%s is not a principal unit", unit)
}
result = append(result, unit)
}
return result, nil
}
开发者ID:jameinel,项目名称:core,代码行数:35,代码来源:run.go
示例10: prepareNetworkAndInterfaces
func (task *provisionerTask) prepareNetworkAndInterfaces(networkInfo []network.Info) (
networks []params.Network, ifaces []params.NetworkInterface) {
if len(networkInfo) == 0 {
return nil, nil
}
visitedNetworks := set.NewStrings()
for _, info := range networkInfo {
networkTag := names.NetworkTag(info.NetworkName)
if !visitedNetworks.Contains(networkTag) {
networks = append(networks, params.Network{
Tag: networkTag,
ProviderId: info.ProviderId,
CIDR: info.CIDR,
VLANTag: info.VLANTag,
})
visitedNetworks.Add(networkTag)
}
ifaces = append(ifaces, params.NetworkInterface{
InterfaceName: info.InterfaceName,
MACAddress: info.MACAddress,
NetworkTag: networkTag,
IsVirtual: info.IsVirtual,
})
}
return networks, ifaces
}
开发者ID:jameinel,项目名称:core,代码行数:26,代码来源:provisioner_task.go
示例11: TestManifest
func (s *BundleSuite) TestManifest(c *gc.C) {
bundle, err := charm.ReadBundle(s.bundlePath)
c.Assert(err, gc.IsNil)
manifest, err := bundle.Manifest()
c.Assert(err, gc.IsNil)
c.Assert(manifest, jc.DeepEquals, set.NewStrings(dummyManifest...))
}
开发者ID:jameinel,项目名称:core,代码行数:7,代码来源:bundle_test.go
示例12: SetUp
// SetUp is defined on the worker.NotifyWatchHandler interface.
func (kw *keyupdaterWorker) SetUp() (watcher.NotifyWatcher, error) {
// Record the keys Juju knows about.
jujuKeys, err := kw.st.AuthorisedKeys(kw.tag)
if err != nil {
return nil, errors.LoggedErrorf(logger, "reading Juju ssh keys for %q: %v", kw.tag, err)
}
kw.jujuKeys = set.NewStrings(jujuKeys...)
// Read the keys currently in ~/.ssh/authorised_keys.
sshKeys, err := ssh.ListKeys(SSHUser, ssh.FullKeys)
if err != nil {
return nil, errors.LoggedErrorf(logger, "reading ssh authorized keys for %q: %v", kw.tag, err)
}
// Record any keys not added by Juju.
for _, key := range sshKeys {
_, comment, err := ssh.KeyFingerprint(key)
// Also record keys which we cannot parse.
if err != nil || !strings.HasPrefix(comment, ssh.JujuCommentPrefix) {
kw.nonJujuKeys = append(kw.nonJujuKeys, key)
}
}
// Write out the ssh authorised keys file to match the current state of the world.
if err := kw.writeSSHKeys(jujuKeys); err != nil {
return nil, errors.LoggedErrorf(logger, "adding current Juju keys to ssh authorised keys: %v", err)
}
w, err := kw.st.WatchAuthorisedKeys(kw.tag)
if err != nil {
return nil, errors.LoggedErrorf(logger, "starting key updater worker: %v", err)
}
logger.Infof("%q key updater worker started", kw.tag)
return w, nil
}
开发者ID:jameinel,项目名称:core,代码行数:34,代码来源:worker.go
示例13: processRelations
func (*statusContext) processRelations(service *state.Service) (related map[string][]string, subord []string, err error) {
// TODO(mue) This way the same relation is read twice (for each service).
// Maybe add Relations() to state, read them only once and pass them to each
// call of this function.
relations, err := service.Relations()
if err != nil {
return nil, nil, err
}
var subordSet set.Strings
related = make(map[string][]string)
for _, relation := range relations {
ep, err := relation.Endpoint(service.Name())
if err != nil {
return nil, nil, err
}
relationName := ep.Relation.Name
eps, err := relation.RelatedEndpoints(service.Name())
if err != nil {
return nil, nil, err
}
for _, ep := range eps {
if ep.Scope == charm.ScopeContainer && !service.IsPrincipal() {
subordSet.Add(ep.ServiceName)
}
related[relationName] = append(related[relationName], ep.ServiceName)
}
}
for relationName, serviceNames := range related {
sn := set.NewStrings(serviceNames...)
related[relationName] = sn.SortedValues()
}
return related, subordSet.SortedValues(), nil
}
开发者ID:jameinel,项目名称:core,代码行数:33,代码来源:status.go
示例14: assertMachines
func (s *DeployLocalSuite) assertMachines(c *gc.C, service *state.Service, expectCons constraints.Value, expectIds ...string) {
units, err := service.AllUnits()
c.Assert(err, gc.IsNil)
c.Assert(units, gc.HasLen, len(expectIds))
unseenIds := set.NewStrings(expectIds...)
for _, unit := range units {
id, err := unit.AssignedMachineId()
c.Assert(err, gc.IsNil)
unseenIds.Remove(id)
machine, err := s.State.Machine(id)
c.Assert(err, gc.IsNil)
cons, err := machine.Constraints()
c.Assert(err, gc.IsNil)
c.Assert(cons, gc.DeepEquals, expectCons)
}
c.Assert(unseenIds, gc.DeepEquals, set.NewStrings())
}
开发者ID:jameinel,项目名称:core,代码行数:17,代码来源:conn_test.go
示例15: Manifest
// Manifest returns a set of the charm's contents.
func (b *Bundle) Manifest() (set.Strings, error) {
zipr, err := b.zipOpen()
if err != nil {
return set.NewStrings(), err
}
defer zipr.Close()
paths, err := ziputil.Find(zipr.Reader, "*")
if err != nil {
return set.NewStrings(), err
}
manifest := set.NewStrings(paths...)
// We always write out a revision file, even if there isn't one in the
// bundle; and we always strip ".", because that's sometimes not present.
manifest.Add("revision")
manifest.Remove(".")
return manifest, nil
}
开发者ID:jameinel,项目名称:core,代码行数:18,代码来源:bundle.go
示例16: TestUninitialized
func (stringSetSuite) TestUninitialized(c *gc.C) {
var uninitialized set.Strings
c.Assert(uninitialized.Size(), gc.Equals, 0)
c.Assert(uninitialized.IsEmpty(), gc.Equals, true)
// You can get values and sorted values from an unitialized set.
AssertValues(c, uninitialized)
// All contains checks are false
c.Assert(uninitialized.Contains("foo"), gc.Equals, false)
// Remove works on an uninitialized Strings
uninitialized.Remove("foo")
var other set.Strings
// Union returns a new set that is empty but initialized.
c.Assert(uninitialized.Union(other), gc.DeepEquals, set.NewStrings())
c.Assert(uninitialized.Intersection(other), gc.DeepEquals, set.NewStrings())
c.Assert(uninitialized.Difference(other), gc.DeepEquals, set.NewStrings())
other = set.NewStrings("foo", "bar")
c.Assert(uninitialized.Union(other), gc.DeepEquals, other)
c.Assert(uninitialized.Intersection(other), gc.DeepEquals, set.NewStrings())
c.Assert(uninitialized.Difference(other), gc.DeepEquals, set.NewStrings())
c.Assert(other.Union(uninitialized), gc.DeepEquals, other)
c.Assert(other.Intersection(uninitialized), gc.DeepEquals, set.NewStrings())
c.Assert(other.Difference(uninitialized), gc.DeepEquals, other)
// Once something is added, the set becomes initialized.
uninitialized.Add("foo")
AssertValues(c, uninitialized, "foo")
}
开发者ID:jameinel,项目名称:core,代码行数:29,代码来源:strings_test.go
示例17: TestManifestSymlink
func (s *BundleSuite) TestManifestSymlink(c *gc.C) {
srcPath := testing.Charms.ClonedDirPath(c.MkDir(), "dummy")
if err := os.Symlink("../target", filepath.Join(srcPath, "hooks/symlink")); err != nil {
c.Skip("cannot symlink")
}
expected := append([]string{"hooks/symlink"}, dummyManifest...)
bundle := bundleDir(c, srcPath)
manifest, err := bundle.Manifest()
c.Assert(err, gc.IsNil)
c.Assert(manifest, gc.DeepEquals, set.NewStrings(expected...))
}
开发者ID:jameinel,项目名称:core,代码行数:12,代码来源:bundle_test.go
示例18: SeriesToUpload
// SeriesToUpload returns the supplied series with duplicates removed if
// non-empty; otherwise it returns a default list of series we should
// probably upload, based on cfg.
func SeriesToUpload(cfg *config.Config, series []string) []string {
unique := set.NewStrings(series...)
if unique.IsEmpty() {
unique.Add(version.Current.Series)
for _, toolsSeries := range toolsLtsSeries {
unique.Add(toolsSeries)
}
if series, ok := cfg.DefaultSeries(); ok {
unique.Add(series)
}
}
return unique.Values()
}
开发者ID:jameinel,项目名称:core,代码行数:16,代码来源:synctools.go
示例19: TestManifestNoRevision
func (s *BundleSuite) TestManifestNoRevision(c *gc.C) {
bundle, err := charm.ReadBundle(s.bundlePath)
c.Assert(err, gc.IsNil)
dirPath := c.MkDir()
err = bundle.ExpandTo(dirPath)
c.Assert(err, gc.IsNil)
err = os.Remove(filepath.Join(dirPath, "revision"))
c.Assert(err, gc.IsNil)
bundle = extBundleDir(c, dirPath)
manifest, err := bundle.Manifest()
c.Assert(err, gc.IsNil)
c.Assert(manifest, gc.DeepEquals, set.NewStrings(dummyManifest...))
}
开发者ID:jameinel,项目名称:core,代码行数:14,代码来源:bundle_test.go
示例20: SupportedArchitectures
// SupportedArchitectures returns all the image architectures for env matching the constraints.
func SupportedArchitectures(env environs.Environ, imageConstraint *imagemetadata.ImageConstraint) ([]string, error) {
sources, err := imagemetadata.GetMetadataSources(env)
if err != nil {
return nil, err
}
matchingImages, _, err := imagemetadata.Fetch(sources, simplestreams.DefaultIndexPath, imageConstraint, false)
if err != nil {
return nil, err
}
var arches = set.NewStrings()
for _, im := range matchingImages {
arches.Add(im.Arch)
}
return arches.Values(), nil
}
开发者ID:jameinel,项目名称:core,代码行数:16,代码来源:supportedarchitectures.go
注:本文中的github.com/wallyworld/core/utils/set.NewStrings函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论