本文整理汇总了Golang中github.com/cloudfoundry/bosh-agent/internal/github.com/cloudfoundry/bosh-utils/errors.Error函数的典型用法代码示例。如果您正苦于以下问题:Golang Error函数的具体用法?Golang Error怎么用?Golang Error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Error函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: GetDefaultNetwork
func (r defaultNetworkResolver) GetDefaultNetwork() (boshsettings.Network, error) {
network := boshsettings.Network{}
routes, err := r.routesSearcher.SearchRoutes()
if err != nil {
return network, bosherr.WrapError(err, "Searching routes")
}
if len(routes) == 0 {
return network, bosherr.Error("No routes found")
}
for _, route := range routes {
if !route.IsDefault() {
continue
}
ip, err := r.ipResolver.GetPrimaryIPv4(route.InterfaceName)
if err != nil {
return network, bosherr.WrapErrorf(err, "Getting primary IPv4 for interface '%s'", route.InterfaceName)
}
return boshsettings.Network{
IP: ip.IP.String(),
Netmask: gonet.IP(ip.Mask).String(),
Gateway: route.Gateway,
}, nil
}
return network, bosherr.Error("Failed to find default route")
}
示例2: Run
func (r concreteRunner) Run(action Action, payloadBytes []byte) (value interface{}, err error) {
payloadArgs, err := r.extractJSONArguments(payloadBytes)
if err != nil {
err = bosherr.WrapError(err, "Extracting json arguments")
return
}
actionValue := reflect.ValueOf(action)
runMethodValue := actionValue.MethodByName("Run")
if runMethodValue.Kind() != reflect.Func {
err = bosherr.Error("Run method not found")
return
}
runMethodType := runMethodValue.Type()
if r.invalidReturnTypes(runMethodType) {
err = bosherr.Error("Run method should return a value and an error")
return
}
methodArgs, err := r.extractMethodArgs(runMethodType, payloadArgs)
if err != nil {
err = bosherr.WrapError(err, "Extracting method arguments from payload")
return
}
values := runMethodValue.Call(methodArgs)
return r.extractReturns(values)
}
示例3: buildWithoutRegistry
func (f SettingsSourceFactory) buildWithoutRegistry() (boshsettings.Source, error) {
var settingsSources []boshsettings.Source
for _, opts := range f.options.Sources {
var settingsSource boshsettings.Source
switch typedOpts := opts.(type) {
case HTTPSourceOptions:
return nil, bosherr.Error("HTTP source is not supported without registry")
case ConfigDriveSourceOptions:
settingsSource = NewConfigDriveSettingsSource(
typedOpts.DiskPaths,
typedOpts.MetaDataPath,
typedOpts.SettingsPath,
f.platform,
f.logger,
)
case FileSourceOptions:
return nil, bosherr.Error("File source is not supported without registry")
case CDROMSourceOptions:
settingsSource = NewCDROMSettingsSource(
typedOpts.FileName,
f.platform,
f.logger,
)
}
settingsSources = append(settingsSources, settingsSource)
}
return NewMultiSettingsSource(settingsSources...)
}
示例4: determineParams
func (a DrainAction) determineParams(drainType DrainType, currentSpec boshas.V1ApplySpec, newSpecs []boshas.V1ApplySpec) (boshdrain.ScriptParams, error) {
var newSpec *boshas.V1ApplySpec
var params boshdrain.ScriptParams
if len(newSpecs) > 0 {
newSpec = &newSpecs[0]
}
switch drainType {
case DrainTypeStatus:
// Status was used in the past when dynamic drain was implemented in the Director.
// Now that we implement it in the agent, we should never get a call for this type.
return params, bosherr.Error("Unexpected call with drain type 'status'")
case DrainTypeUpdate:
if newSpec == nil {
return params, bosherr.Error("Drain update requires new spec")
}
params = boshdrain.NewUpdateParams(currentSpec, *newSpec)
case DrainTypeShutdown:
err := a.notifier.NotifyShutdown()
if err != nil {
return params, bosherr.WrapError(err, "Notifying shutdown")
}
params = boshdrain.NewShutdownParams(currentSpec, newSpec)
}
return params, nil
}
示例5: findRootDevicePath
func (p linux) findRootDevicePath() (string, error) {
mounts, err := p.diskManager.GetMountsSearcher().SearchMounts()
if err != nil {
return "", bosherr.WrapError(err, "Searching mounts")
}
for _, mount := range mounts {
if mount.MountPoint == "/" && strings.HasPrefix(mount.PartitionPath, "/dev/") {
p.logger.Debug(logTag, "Found root partition: `%s'", mount.PartitionPath)
stdout, _, _, err := p.cmdRunner.RunCommand("readlink", "-f", mount.PartitionPath)
if err != nil {
return "", bosherr.WrapError(err, "Shelling out to readlink")
}
rootPartition := strings.Trim(stdout, "\n")
p.logger.Debug(logTag, "Symlink is: `%s'", rootPartition)
validRootPartition := regexp.MustCompile(`^/dev/[a-z]+1$`)
if !validRootPartition.MatchString(rootPartition) {
return "", bosherr.Error("Root partition is not the first partition")
}
return strings.Trim(rootPartition, "1"), nil
}
}
return "", bosherr.Error("Getting root partition device")
}
示例6: Get
func (bc FileBundleCollection) Get(definition BundleDefinition) (Bundle, error) {
if len(definition.BundleName()) == 0 {
return nil, bosherr.Error("Missing bundle name")
}
if len(definition.BundleVersion()) == 0 {
return nil, bosherr.Error("Missing bundle version")
}
installPath := filepath.Join(bc.installPath, bc.name, definition.BundleName(), definition.BundleVersion())
enablePath := filepath.Join(bc.enablePath, bc.name, definition.BundleName())
return NewFileBundle(installPath, enablePath, bc.fs, bc.logger), nil
}
示例7: Validate
func (b localBlobstore) Validate() error {
path, found := b.options["blobstore_path"]
if !found {
return bosherr.Error("missing blobstore_path")
}
_, ok := path.(string)
if !ok {
return bosherr.Error("blobstore_path must be a string")
}
return nil
}
示例8: Validate
func (b retryableBlobstore) Validate() error {
if b.maxTries < 1 {
return bosherr.Error("Max tries must be > 0")
}
return b.blobstore.Validate()
}
示例9: readByte
func (udev ConcreteUdevDevice) readByte(filePath string) error {
udev.logger.Debug(udev.logtag, "readBytes from file: %s", filePath)
device, err := os.Open(filePath)
if err != nil {
return err
}
defer func() {
if err = device.Close(); err != nil {
udev.logger.Warn(udev.logtag, "Failed to close device: %s", err.Error())
}
}()
udev.logger.Debug(udev.logtag, "Successfully open file: %s", filePath)
bytes := make([]byte, 1, 1)
read, err := device.Read(bytes)
if err != nil {
return err
}
udev.logger.Debug(udev.logtag, "Successfully read %d bytes from file: %s", read, filePath)
if read != 1 {
return bosherr.Error("Device readable but zero length")
}
return nil
}
示例10: GetInstallPath
func (b FileBundle) GetInstallPath() (boshsys.FileSystem, string, error) {
path := b.installPath
if !b.fs.FileExists(path) {
return nil, "", bosherr.Error("install dir does not exist")
}
return b.fs, path, nil
}
示例11: GetInstanceID
func (ms *configDriveMetadataService) GetInstanceID() (string, error) {
if ms.metaDataContents.InstanceID == "" {
return "", bosherr.Error("Failed to load instance-id from config drive metadata service")
}
ms.logger.Debug(ms.logTag, "Getting instance id: %s", ms.metaDataContents.InstanceID)
return ms.metaDataContents.InstanceID, nil
}
示例12: GetServerName
func (ms *configDriveMetadataService) GetServerName() (string, error) {
if ms.userDataContents.Server.Name == "" {
return "", bosherr.Error("Failed to load server name from config drive metadata service")
}
ms.logger.Debug(ms.logTag, "Getting server name: %s", ms.userDataContents.Server.Name)
return ms.userDataContents.Server.Name, nil
}
示例13: GetPublicKey
func (ms *configDriveMetadataService) GetPublicKey() (string, error) {
if firstPublicKey, ok := ms.metaDataContents.PublicKeys["0"]; ok {
if openSSHKey, ok := firstPublicKey["openssh-key"]; ok {
return openSSHKey, nil
}
}
return "", bosherr.Error("Failed to load openssh-key from config drive metadata service")
}
示例14: NewMultiSettingsSource
func NewMultiSettingsSource(sources ...boshsettings.Source) (boshsettings.Source, error) {
var err error
if len(sources) == 0 {
err = bosherr.Error("MultiSettingsSource requires to have at least one source")
}
return &MultiSettingsSource{sources: sources}, err
}
示例15: Start
func (d *dummyNatsJobSupervisor) Start() error {
if d.status == "fail_task" {
return bosherror.Error("fake-task-fail-error")
}
if d.status != "failing" {
d.status = "running"
}
return nil
}