本文整理匯總了Golang中github.com/juju/utils.ReadYaml函數的典型用法代碼示例。如果您正苦於以下問題:Golang ReadYaml函數的具體用法?Golang ReadYaml怎麽用?Golang ReadYaml使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了ReadYaml函數的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: ReadCharmURL
// ReadCharmURL reads a charm identity file from the supplied path.
func ReadCharmURL(path string) (*charm.URL, error) {
surl := ""
if err := utils.ReadYaml(path, &surl); err != nil {
return nil, err
}
return charm.ParseURL(surl)
}
示例2: readUnsafe
func readUnsafe(opsfile string) (*operation.State, error) {
var st operation.State
if err := utils.ReadYaml(opsfile, &st); err != nil {
if os.IsNotExist(err) {
return nil, operation.ErrNoStateFile
}
}
return &st, nil
}
示例3: Read
// Read reads the current meter status information from disk.
func (f *StateFile) Read() (string, string, error) {
var st state
if err := utils.ReadYaml(f.path, &st); err != nil {
if os.IsNotExist(err) {
return "", "", nil
}
return "", "", errors.Trace(err)
}
return st.Code, st.Info, nil
}
示例4: Read
// Read reads a State from the file. If the file does not exist it returns
// ErrNoStateFile.
func (f *StateFile) Read() (*State, error) {
var st State
if err := utils.ReadYaml(f.path, &st); err != nil {
if os.IsNotExist(err) {
return nil, ErrNoStateFile
}
}
if err := st.validate(); err != nil {
return nil, errors.Errorf("cannot read %q: %v", f.path, err)
}
return &st, nil
}
示例5: readFilesystemInfo
func (s *tmpfsFilesystemSource) readFilesystemInfo(tag names.FilesystemTag) (storage.FilesystemInfo, error) {
var info filesystemInfo
if err := utils.ReadYaml(s.filesystemInfoFile(tag), &info); err != nil {
return storage.FilesystemInfo{}, errors.Annotate(err, "reading filesystem info from disk")
}
if info.Size == nil {
return storage.FilesystemInfo{}, errors.New("invalid filesystem info: missing size")
}
return storage.FilesystemInfo{
FilesystemId: tag.String(),
Size: *info.Size,
}, nil
}
示例6: 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, nil, 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
}
示例7: ReadStateDir
// ReadStateDir loads a StateDir from the subdirectory of dirPath named
// for the supplied RelationId. If the directory does not exist, no error
// is returned,
func ReadStateDir(dirPath string, relationId int) (d *StateDir, err error) {
d = &StateDir{
filepath.Join(dirPath, strconv.Itoa(relationId)),
State{relationId, map[string]int64{}, ""},
}
defer errors.Maskf(&err, "cannot load relation state from %q", d.path)
if _, err := os.Stat(d.path); os.IsNotExist(err) {
return d, nil
} else if err != nil {
return nil, err
}
fis, err := ioutil.ReadDir(d.path)
if err != nil {
return nil, err
}
for _, fi := range fis {
// Entries with names ending in "-" followed by an integer must be
// files containing valid unit data; all other names are ignored.
name := fi.Name()
i := strings.LastIndex(name, "-")
if i == -1 {
continue
}
svcName := name[:i]
unitId := name[i+1:]
if _, err := strconv.Atoi(unitId); err != nil {
continue
}
unitName := svcName + "/" + unitId
var info diskInfo
if err = utils.ReadYaml(filepath.Join(d.path, name), &info); err != nil {
return nil, fmt.Errorf("invalid unit file %q: %v", name, err)
}
if info.ChangeVersion == nil {
return nil, fmt.Errorf(`invalid unit file %q: "changed-version" not set`, name)
}
d.state.Members[unitName] = *info.ChangeVersion
if info.ChangedPending {
if d.state.ChangedPending != "" {
return nil, fmt.Errorf("%q and %q both have pending changed hooks", d.state.ChangedPending, unitName)
}
d.state.ChangedPending = unitName
}
}
return d, nil
}
示例8: readStateFile
// readStateFile loads a stateFile from the subdirectory of dirPath named
// for the supplied storage tag. If the directory does not exist, no error
// is returned.
func readStateFile(dirPath string, tag names.StorageTag) (d *stateFile, err error) {
filename := strings.Replace(tag.Id(), "/", "-", -1)
d = &stateFile{
filepath.Join(dirPath, filename),
state{storage: tag},
}
defer errors.DeferredAnnotatef(&err, "cannot load storage %q state from %q", tag.Id(), d.path)
if _, err := os.Stat(d.path); os.IsNotExist(err) {
return d, nil
} else if err != nil {
return nil, err
}
var info diskInfo
if err := utils.ReadYaml(d.path, &info); err != nil {
return nil, errors.Errorf("invalid storage state file %q: %v", d.path, err)
}
if info.Attached == nil {
return nil, errors.Errorf("invalid storage state file %q: missing 'attached'", d.path)
}
d.state.attached = *info.Attached
return d, nil
}
示例9: load
// load loads the "machine info" file and parse the content into the info
// object.
func (info *machineInfo) load() error {
return utils.ReadYaml(_MAASInstanceFilename, info)
}