本文整理汇总了Golang中github.com/docker/machine/libmachine/log.Error函数的典型用法代码示例。如果您正苦于以下问题:Golang Error函数的具体用法?Golang Error怎么用?Golang Error使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Error函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewNetConfigInterface
// NewNetConfigInterface - creates an interface object for NetConfig
func (n *NetConfig) NewNetConfigInterface(
enable bool,
macaddr string,
isdhcp bool,
isipv6 bool,
ipv6gateway utils.Nstring, // ipv6 gateway, required with isipv6 is true
ipv4gateway utils.Nstring, // ipv4 gateway, required when isdhcp is false
staticnets utils.Nstring, // comma seperated list of ip's, required when isdhcp is false
name utils.Nstring, // optional name
wins utils.Nstring, // comma seperated list of wins servers
dnsservers utils.Nstring, // comma seperated list of dns servers
dnssearch utils.Nstring,
vlandid int) NetConfigInterface { // comma seperated list of dns search
var inetconfig NetConfigInterface
inetconfig = NetConfigInterface{
Enabled: enable,
MACAddr: macaddr,
DHCPv4: isdhcp,
IPv6Autoconfig: isipv6,
VlanID: vlandid,
}
if macaddr == "" {
log.Error("Network configuration (NetConfigInterface) requires a MAC Address to create a new interface object.")
}
if isipv6 {
if ipv6gateway.IsNil() {
log.Error("Gateway for ipv6 is required, configure IPv6Gateway")
}
inetconfig.IPv6Gateway = ipv6gateway.String()
}
if !isdhcp {
if ipv4gateway.IsNil() {
log.Error("Static ipv4 configuration requires a gateway configured (IPv4Gateway)")
}
inetconfig.IPv4Gateway = ipv4gateway.String()
if staticnets.IsNil() {
log.Error("Static ipv4 configuration requires static network list")
}
inetconfig.StaticNetworks = strings.Split(staticnets.String(), SplitSep)
}
if !name.IsNil() {
inetconfig.Name = name.String()
}
if !wins.IsNil() {
inetconfig.WINSServers = strings.Split(wins.String(), SplitSep)
}
if !dnsservers.IsNil() {
inetconfig.DNSServers = strings.Split(dnsservers.String(), SplitSep)
}
if !dnssearch.IsNil() {
inetconfig.DNSSearch = strings.Split(dnssearch.String(), SplitSep)
}
return inetconfig
}
示例2: NewServerCreate
// NewServerCreate make a new servercreate object
func (sc ServerCreate) NewServerCreate(user string, pass string, ip string, port int) ServerCreate {
if user == "" {
log.Error("ilo user missing, please specify with ONEVIEW_ILO_USER or --oneview-ilo-user arguments.")
}
if user == "" {
log.Error("ilo password missing, please specify with ONEVIEW_ILO_PASSWORD or --oneview-ilo-password arguments.")
}
return ServerCreate{
// Type: "OSDIlo", //TODO: this causes notmal os-deployment-servers actions to fail.
UserName: user,
Password: pass,
IPAddress: ip,
Port: port,
}
}
示例3: runCommand
func runCommand(command func(commandLine CommandLine, api libmachine.API) error) func(context *cli.Context) {
return func(context *cli.Context) {
api := libmachine.NewClient(mcndirs.GetBaseDir(), mcndirs.GetMachineCertDir())
defer api.Close()
if context.GlobalBool("native-ssh") {
api.SSHClientType = ssh.Native
}
api.GithubAPIToken = context.GlobalString("github-api-token")
api.Filestore.Path = context.GlobalString("storage-path")
// TODO (nathanleclaire): These should ultimately be accessed
// through the libmachine client by the rest of the code and
// not through their respective modules. For now, however,
// they are also being set the way that they originally were
// set to preserve backwards compatibility.
mcndirs.BaseDir = api.Filestore.Path
mcnutils.GithubAPIToken = api.GithubAPIToken
ssh.SetDefaultClient(api.SSHClientType)
if err := command(&contextCommandLine{context}, api); err != nil {
log.Error(err)
if crashErr, ok := err.(crashreport.CrashError); ok {
crashReporter := crashreport.NewCrashReporter(mcndirs.GetBaseDir(), context.GlobalString("bugsnag-api-token"))
crashReporter.Send(crashErr)
}
osExit(1)
}
}
}
示例4: Start
func (d *Driver) Start() error {
uuid := d.UUID
vmlinuz := d.ResolveStorePath("vmlinuz64")
initrd := d.ResolveStorePath("initrd.img")
iso := d.ResolveStorePath(isoFilename)
img := d.ResolveStorePath(d.MachineName + ".img")
bootcmd := d.BootCmd
cmd := exec.Command("goxhyve",
fmt.Sprintf("%s", uuid),
fmt.Sprintf("%d", d.CPU),
fmt.Sprintf("%d", d.Memory),
fmt.Sprintf("%s", iso),
fmt.Sprintf("%s", img),
fmt.Sprintf("kexec,%s,%s,%s", vmlinuz, initrd, bootcmd),
"-d", //TODO fix daemonize flag
)
log.Debug(cmd)
go func() {
err := cmd.Run()
if err != nil {
log.Error(err, cmd.Stdout)
}
}()
return nil
}
示例5: Start
func (d *Driver) Start() error {
if err := d.PreCommandCheck(); err != nil {
return err
}
pid := d.ResolveStorePath(d.MachineName + ".pid")
if _, err := os.Stat(pid); err == nil {
os.Remove(pid)
}
d.attachDiskImage()
args := d.xhyveArgs()
args = append(args, "-F", fmt.Sprintf("%s", pid))
log.Debug(args)
cmd := exec.Command(os.Args[0], args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Start()
if err != nil {
return err
}
go func() {
err := cmd.Wait()
if err != nil {
log.Error(err, cmd.Stdout, cmd.Stderr)
}
}()
return d.waitForIP()
}
示例6: generateQcow2Image
func (d *Driver) generateQcow2Image(size int64) error {
diskPath := filepath.Join(d.ResolveStorePath("."), d.MachineName+".qcow2")
opts := &qcow2.Opts{
Filename: diskPath,
Size: d.DiskSize * 107374,
Fmt: qcow2.DriverQCow2,
ClusterSize: 65536,
Preallocation: qcow2.PREALLOC_MODE_OFF,
Encryption: false,
LazyRefcounts: true,
}
img, err := qcow2.Create(opts)
if err != nil {
log.Error(err)
}
tarBuf, err := d.generateKeyBundle()
if err != nil {
return err
}
// TODO(zchee): hardcoded
zeroFill(tarBuf, 109569)
tarBuf.Write(diskimageFooter)
// TODO(zchee): hardcoded
zeroFill(tarBuf, 16309)
tarBuf.Write(efipartFooter)
img.Write(tarBuf.Bytes())
return nil
}
示例7: SetTLSConfig
func (c *GenericClient) SetTLSConfig(d *Driver) error {
config := &tls.Config{}
config.InsecureSkipVerify = d.Insecure
if d.CaCert != "" {
// Use custom CA certificate(s) for root of trust
certpool := x509.NewCertPool()
pem, err := ioutil.ReadFile(d.CaCert)
if err != nil {
log.Error("Unable to read specified CA certificate(s)")
return err
}
ok := certpool.AppendCertsFromPEM(pem)
if !ok {
return fmt.Errorf("Ill-formed CA certificate(s) PEM file")
}
config.RootCAs = certpool
}
transport := &http.Transport{TLSClientConfig: config}
c.Provider.HTTPClient.Transport = transport
return nil
}
示例8: main
func main() {
log.SetDebug(true)
client := libmachine.NewClient("/tmp/automatic", "/tmp/automatic/certs")
defer client.Close()
hostName := "myfunhost"
// Set some options on the provider...
driver := virtualbox.NewDriver(hostName, "/tmp/automatic")
driver.CPU = 2
driver.Memory = 2048
data, err := json.Marshal(driver)
if err != nil {
log.Error(err)
return
}
h, err := client.NewHost("virtualbox", data)
if err != nil {
log.Error(err)
return
}
h.HostOptions.EngineOptions.StorageDriver = "overlay"
if err := client.Create(h); err != nil {
log.Error(err)
return
}
out, err := h.RunSSHCommand("df -h")
if err != nil {
log.Error(err)
return
}
fmt.Printf("Results of your disk space query:\n%s\n", out)
fmt.Println("Powering down machine now...")
if err := h.Stop(); err != nil {
log.Error(err)
return
}
}
示例9: hdiutil
func hdiutil(args ...string) error {
cmd := exec.Command("hdiutil", args...)
log.Debugf("executing: %v %v", cmd, strings.Join(args, " "))
err := cmd.Run()
if err != nil {
log.Error(err)
}
return nil
}
示例10: configureForLinux
//
// configureForLinux sets up the VM role for Linux specific configuration
//
// Paramters:
// role: role that needs to be updated with Linux configuration
// dnsName: name of the machine that we are trying to create
//
// Returns:
// error: errors from reading certs, getting thumbprint and adding
// certificate to hostedservice
//
func (d *Driver) configureForLinux(role *virtualmachine.Role, dnsName string) error {
// Get the Azure client
client, err := d.getClient()
if err != nil {
return err
}
mediaLink := fmt.Sprintf("http://%s.blob.core.windows.net/vhds/%s.vhd",
d.StorageAccount, dnsName)
// Setup the image configuration
vmutils.ConfigureDeploymentFromPlatformImage(
role,
d.Image,
mediaLink,
"")
// Read the certificate
data, err := ioutil.ReadFile(d.azureCertPath())
if err != nil {
return err
}
// Add the certificate to the hostedservice
if _, err := hostedservice.NewClient(client).AddCertificate(dnsName, data, "pfx", ""); err != nil {
return err
}
thumbPrint, err := getServiceCertFingerprint(d.azureCertPath())
if err != nil {
return err
}
vmutils.ConfigureForLinux(role, dnsName, d.SSHUser, d.UserPassword, thumbPrint)
vmutils.ConfigureWithPublicSSH(role)
role.UseCertAuth = true
role.CertPath = d.azureCertPath()
// Attach VM to a specific subnet
if d.Subnet != "" {
err = vmutils.ConfigureWithSubnet(role, d.Subnet)
if err != nil {
log.Error("failed to configure subnet:", d.Subnet, ", err:", err)
return err
}
log.Debug("subnet is:", d.Subnet)
}
return nil
}
示例11: Service
func (provisioner *WindowsProvisioner) Service(name string, action serviceaction.ServiceAction) error {
ip, err := provisioner.Driver.GetIP()
if err != nil {
return err
}
d := provisioner.Driver
out, stderr, exit, err := drivers.WinRMRunCmdWithNTLM(ip, d.GetSSHUsername(), d.GetSSHPassword(), fmt.Sprintf("net %s %s", action.String(), name))
if (err != nil) || (exit != 0) {
log.Error("service stdout:", out, ", stderr:", stderr, ", err:", err, ", exit:", exit)
return err
}
return nil
}
示例12: Remove
func (d *Driver) Remove() error {
if err := d.setUserSubscription(); err != nil {
return err
}
client, err := d.getClient()
if err != nil {
return err
}
hostedClient := hostedservice.NewClient(client)
availabilityResponse, err := hostedClient.CheckHostedServiceNameAvailability(d.MachineName)
if err != nil {
log.Error("Failed to check service name availability")
return err
}
if availabilityResponse.Result == true {
log.Error("Hosted service does not exist and cannot be deleted")
return err
}
// Note: this only removes the VHD file of a hosted service reliably.
// An associated xxx.status file is left behind for certain deletions
opID, err := hostedClient.DeleteHostedService(d.MachineName, true)
if err != nil {
log.Error("Error deleting hosted service. Err:", err)
return err
}
if err = client.WaitForOperation(opID, nil); err != nil {
log.Error("Error deleting hosted service. Err:", err)
return err
}
return nil
}
示例13: WinRMRunCmdWithNTLM
//
// WinRMRunCmdWithNTLM runs a command on a Windows Server (specifically
// an Azure VM with Windows). Uses WinRM with NTLM support enabled.
// WinRM should be enabled on the target server.
//
// Ref: https://github.com/masterzen/winrm/blob/master/README.md#pluggable-authentication-example-negotiatentlm-authentication
//
// Parameters:
// host: target Windows server host
// username: username for the host
// password: password for the host
// command: command to run
// Returns:
// string: stdout from command execution
// string: stderr from command execution
// int: exit status from the command being run
// error: errors from establishing connection and running command
//
func WinRMRunCmdWithNTLM(host string, username string, password string, command string) (string, string, int, error) {
var err error
params := newwinrm.DefaultParameters()
params.TransportDecorator = func(t *http.Transport) http.RoundTripper { return ntlmssp.Negotiator{t} }
client, err := newwinrm.NewClientWithParameters(&newwinrm.Endpoint{Host: host,
Port: 5986,
HTTPS: true,
Insecure: true},
username, password, params)
if err != nil {
log.Error("failed to create shell: ", err)
return "", "", -1, err
}
stdout, stderr, exitcode, err := client.RunWithString(command, "")
if err != nil {
log.Error("failed to run cmd: ", err)
return "", "", -1, err
}
log.Debug("stdout:", stdout, "stderr:", stderr, "exitcode:", exitcode)
return stdout, stderr, exitcode, err
}
示例14: matchesName
func matchesName(host *host.Host, names []string) bool {
if len(names) == 0 {
return true
}
for _, n := range names {
r, err := regexp.Compile(n)
if err != nil {
log.Error(err)
os.Exit(1) // TODO: Can we get rid of this call, and exit 'properly' ?
}
if r.MatchString(host.Driver.GetMachineName()) {
return true
}
}
return false
}
示例15: Start
func (d *Driver) Start() error {
var Password string
log.Infof("Creating %s xhyve VM...", d.MachineName)
cmd := exec.Command("sudo", "xhyve", // TODO
fmt.Sprintf("-m %dM", d.Memory),
"-s 0:0,hostbridge -s 31,lpc",
"-l com1,stdio",
"-s 2:0,virtio-net",
fmt.Sprintf("-s 2:1,virtio-tap,tap1"),
fmt.Sprintf("-s 3,ahci-cd,%s", path.Join(d.LocalArtifactPath("."), isoFilename)),
fmt.Sprintf("-s 4,virtio-blk,%s", path.Join(d.LocalArtifactPath("."), d.MachineName+".img")),
fmt.Sprintf("-U %s", d.UUID),
fmt.Sprintf("-f kexec,%s,%s,loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10:LABEL=boot2docker-data base", path.Join(d.LocalArtifactPath("."), "vmlinuz64"), path.Join(d.LocalArtifactPath("."), "initrd.img")),
)
// cmd := exec.Command("sudo xhyve -m 4G -c 4 -s 0:0,hostbridge -s 31,lpc -l com1,stdio -s 2:0,virtio-net -s 3,ahci-cd,'/Users/zchee/.docker/machine/machines/xhyve-test/boot2docker.iso' -s 4,virtio-blk,'/Users/zchee/.docker/machine/machines/xhyve-test/xhyve-test.img' -U D2B9B60C-2465-4AF7-BCB6-522D795B043E -f 'kexec,vmlinuz64,initrd.img,loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10:LABEL=boot2docker-data base'")
cmd.Stdin = strings.NewReader(Password)
log.Debug(cmd)
err := cmd.Run()
if err != nil {
log.Error(err, cmd.Stdout)
}
return nil
}