當前位置: 首頁>>代碼示例>>Golang>>正文


Golang mcnutils.WaitForSpecificOrError函數代碼示例

本文整理匯總了Golang中github.com/docker/machine/libmachine/mcnutils.WaitForSpecificOrError函數的典型用法代碼示例。如果您正苦於以下問題:Golang WaitForSpecificOrError函數的具體用法?Golang WaitForSpecificOrError怎麽用?Golang WaitForSpecificOrError使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了WaitForSpecificOrError函數的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: waitForInstance

func (d *Driver) waitForInstance() error {

	if err := mcnutils.WaitForSpecificOrError(d.instanceIsRunning, 120, 3*time.Second); err != nil {
		return err
	}

	return nil
}
開發者ID:waterytowers,項目名稱:machine-cloudformation,代碼行數:8,代碼來源:amazoncf.go

示例2: Create

func (d *Driver) Create() error {

	log.Debugf("Creating a new Instance for Stack: %s", d.MachineName)

	if d.SSHKeyPath != "" {
		log.Debugf("Copying Key to Machine Directory: %s", d.GetSSHKeyPath)

		if err := mcnutils.CopyFile(d.SSHPrivateKeyPath, d.GetSSHKeyPath()); err != nil {
			return err
		}
	}

	svc := cloudformation.New(session.New())

	params := &cloudformation.CreateStackInput{
		StackName:   aws.String(d.MachineName),
		TemplateURL: aws.String(d.CloudFormationURL),
		Parameters:  d.createParams(),
		Tags:        d.createTags(),
	}
	_, err := svc.CreateStack(params)

	if err != nil {
		return err
	}

	if err := mcnutils.WaitForSpecificOrError(d.stackAvailable, 120, 3*time.Second); err != nil {
		return err
	}

	if err := d.getInstanceInfo(); err != nil {
		return err
	}
	if err := waitFor(sshAvailableFunc(d)); err != nil {
		return fmt.Errorf("Too many retries waiting for SSH to be available.  Last error: %s", err)
	}

	log.Debugf("created instance ID %s, IP address %s, Private IP address %s",
		d.InstanceId,
		d.IPAddress,
		d.PrivateIPAddress,
	)

	return nil
}
開發者ID:waterytowers,項目名稱:machine-cloudformation,代碼行數:45,代碼來源:amazoncf.go

示例3: WaitForInstanceStatus

func (c *GenericClient) WaitForInstanceStatus(d *Driver, status string) error {
	return mcnutils.WaitForSpecificOrError(func() (bool, error) {
		current, err := servers.Get(c.Compute, d.MachineId).Extract()
		if err != nil {
			return true, err
		}

		if current.Status == "ERROR" {
			return true, fmt.Errorf("Instance creation failed. Instance is in ERROR state")
		}

		if current.Status == status {
			return true, nil
		}

		return false, nil
	}, (d.ActiveTimeout / 4), 4*time.Second)
}
開發者ID:rhendric,項目名稱:machine,代碼行數:18,代碼來源:client.go

示例4: waitForInstanceStatus

// waitForInstanceStatus waits until instance reaches status. Copied from openstack Driver
func (d *Driver) waitForInstanceStatus(status string) (instance *Instance, err error) {
	return instance, mcnutils.WaitForSpecificOrError(func() (bool, error) {
		instance, err = d.client.GetInstance(d.ProjectID, d.InstanceID)
		if err != nil {
			return true, err
		}
		log.WithField("MachineId", d.InstanceID).Debugf("Machine state: %s", instance.Status)

		if instance.Status == "ERROR" {
			return true, fmt.Errorf("Instance creation failed. Instance is in ERROR state")
		}

		if instance.Status == status {
			return true, nil
		}

		return false, nil
	}, (statusTimeout / 4), 4*time.Second)
}
開發者ID:thbkrkr,項目名稱:docker-machine-driver-ovh,代碼行數:20,代碼來源:driver.go

示例5: waitForInstanceStatus

// waitForInstanceStatus waits until instance reaches status. Copied from openstack Driver
func (d *Driver) waitForInstanceStatus(status string) (instance *Instance, err error) {
	return instance, mcnutils.WaitForSpecificOrError(func() (bool, error) {
		instance, err = d.client.GetInstance(d.ProjectID, d.InstanceID)
		if err != nil {
			return true, err
		}
		log.Debugf("Machine", map[string]interface{}{
			"Name":  d.KeyPairName,
			"State": instance.Status,
		})

		if instance.Status == "ERROR" {
			return true, fmt.Errorf("Instance creation failed. Instance is in ERROR state")
		}

		if instance.Status == status {
			return true, nil
		}

		return false, nil
	}, (statusTimeout / 4), 4*time.Second)
}
開發者ID:yadutaf,項目名稱:docker-machine-driver-ovh,代碼行數:23,代碼來源:driver.go

示例6: waitForJob

func (d *Driver) waitForJob(client *egoscale.Client, jobid string) error {
	log.Infof("Waiting for job to complete...")
	return mcnutils.WaitForSpecificOrError(func() (bool, error) {
		return d.jobIsDone(client, jobid)
	}, 60, 2*time.Second)
}
開發者ID:al3xanderschmidt,項目名稱:machine,代碼行數:6,代碼來源:exoscale.go


注:本文中的github.com/docker/machine/libmachine/mcnutils.WaitForSpecificOrError函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。