fix golint check error.

This commit is contained in:
jolestar 2017-03-27 10:57:47 +08:00 committed by Aspire
parent 7e046f51db
commit 7f01bb1abd
4 changed files with 38 additions and 12 deletions

View File

@ -10,23 +10,36 @@ import (
)
const (
// Instance status pending
InstanceStatusPending = "pending"
// Instance status running
InstanceStatusRunning = "running"
// Instance status stopped
InstanceStatusStopped = "stopped"
// Instance status suspended
InstanceStatusSuspended = "suspended"
// Instance status terminated
InstanceStatusTerminated = "terminated"
// Instance Status ceased
InstanceStatusCeased = "ceased"
// LoadBalancer status pending
LoadBalancerStatusPending = "pending"
// LoadBalancer status active
LoadBalancerStatusActive = "active"
// LoadBalancer status stopped
LoadBalancerStatusStopped = "stopped"
// LoadBalancer status suspended
LoadBalancerStatusSuspended = "suspended"
// LoadBalancer status deleted
LoadBalancerStatusDeleted = "deleted"
// LoadBalancer status ceased
LoadBalancerStatusCeased = "ceased"
defaultOpTimeout = 180*time.Second
)
// QingCloud IaaS Advanced Client
type QingCloudClient interface {
RunInstance(arg *service.RunInstancesInput) (*service.Instance, error)
DescribeInstance(instanceID string) (*service.Instance, error)
@ -37,6 +50,7 @@ type QingCloudClient interface {
WaitInstanceStatus(instanceID string, status string) (*service.Instance, error)
}
// NewClient return a new QingCloudClient
func NewClient(config *config.Config, zone string) (QingCloudClient, error) {
qcService, err := service.Init(config)
if err != nil {
@ -68,6 +82,7 @@ type client struct {
zone string
}
// RunInstance
func (c *client) RunInstance(input *service.RunInstancesInput) (*service.Instance, error) {
output, err := c.InstanceService.RunInstances(input)
@ -75,7 +90,7 @@ func (c *client) RunInstance(input *service.RunInstancesInput) (*service.Instanc
return nil, err
}
if len(output.Instances) == 0 {
return nil, errors.New("Create instance response error.")
return nil, errors.New("Create instance response error")
}
jobID := output.JobID
jobErr := c.waitJob(*jobID)
@ -94,6 +109,7 @@ func (c *client) RunInstance(input *service.RunInstancesInput) (*service.Instanc
return ins, nil
}
// DescribeInstance
func (c *client) DescribeInstance(instanceID string) (*service.Instance, error) {
input := &service.DescribeInstancesInput{Instances: []*string{&instanceID}}
output, err := c.InstanceService.DescribeInstances(input)
@ -101,11 +117,12 @@ func (c *client) DescribeInstance(instanceID string) (*service.Instance, error)
return nil, err
}
if len(output.InstanceSet) == 0 {
return nil, fmt.Errorf("Instance with id [%s] not exist.", instanceID)
return nil, fmt.Errorf("Instance with id [%s] not exist", instanceID)
}
return output.InstanceSet[0], nil
}
// StartInstance
func (c *client) StartInstance(instanceID string) error {
input := &service.StartInstancesInput{Instances: []*string{&instanceID}}
output, err := c.InstanceService.StartInstances(input)
@ -121,6 +138,7 @@ func (c *client) StartInstance(instanceID string) error {
return err
}
// StopInstance
func (c *client) StopInstance(instanceID string, force bool) error {
var forceParam int
if force {
@ -142,6 +160,7 @@ func (c *client) StopInstance(instanceID string, force bool) error {
return err
}
// RestartInstance
func (c *client) RestartInstance(instanceID string) error {
input := &service.RestartInstancesInput{Instances: []*string{&instanceID}}
output, err := c.InstanceService.RestartInstances(input)
@ -157,6 +176,7 @@ func (c *client) RestartInstance(instanceID string) error {
return err
}
// TerminateInstance
func (c *client) TerminateInstance(instanceID string) error {
input := &service.TerminateInstancesInput{Instances: []*string{&instanceID}}
output, err := c.InstanceService.TerminateInstances(input)
@ -176,6 +196,7 @@ func (c *client) waitJob(jobID string) error {
return WaitJob(c.JobService, jobID, c.OperationTimeout, c.WaitInterval)
}
// WaitInstanceStatus
func (c *client) WaitInstanceStatus(instanceID string, status string) (*service.Instance, error) {
return WaitInstanceStatus(c.InstanceService, instanceID, status, c.OperationTimeout, c.WaitInterval)
}

View File

@ -8,6 +8,7 @@ import (
"github.com/yunify/qingcloud-sdk-go/utils"
)
// WaitJob wait the job with this jobID finish
func WaitJob(jobService *service.JobService, jobID string, timeout time.Duration, waitInterval time.Duration) error {
logger.Debug("Waiting for Job [%s] finished", jobID)
return utils.WaitForSpecificOrError(func() (bool, error) {
@ -45,11 +46,12 @@ func describeInstance(instanceService *service.InstanceService, instanceID strin
return nil, err
}
if len(output.InstanceSet) == 0 {
return nil, fmt.Errorf("Instance with id [%s] not exist.", instanceID)
return nil, fmt.Errorf("Instance with id [%s] not exist", instanceID)
}
return output.InstanceSet[0], nil
}
// WaitInstanceStatus wait the instance with this instanceID to expect status
func WaitInstanceStatus(instanceService *service.InstanceService, instanceID string, status string, timeout time.Duration, waitInterval time.Duration) (ins *service.Instance, err error) {
logger.Debug("Waiting for Instance [%s] status [%s] ", instanceID, status)
errorTimes := 0
@ -57,12 +59,11 @@ func WaitInstanceStatus(instanceService *service.InstanceService, instanceID str
i, err := describeInstance(instanceService, instanceID)
if err != nil {
logger.Error("DescribeInstance [%s] error : [%s]", instanceID, err.Error())
errorTimes += 1
errorTimes ++
if errorTimes > 3 {
return false, err
} else {
return false, nil
}
return false, nil
}
if i.Status != nil && *i.Status == status {
if i.TransitionStatus != nil && *i.TransitionStatus != "" {
@ -78,6 +79,7 @@ func WaitInstanceStatus(instanceService *service.InstanceService, instanceID str
return
}
// WaitInstanceNetwork wait the instance with this instanceID network become ready
func WaitInstanceNetwork(instanceService *service.InstanceService, instanceID string, timeout time.Duration, waitInterval time.Duration) (ins *service.Instance, err error) {
logger.Debug("Waiting for IP address to be assigned to Instance [%s]", instanceID)
err = utils.WaitForSpecificOrError(func() (bool, error) {
@ -109,6 +111,7 @@ func describeLoadBalancer(lbService *service.LoadBalancerService, loadBalancerID
return output.LoadBalancerSet[0], nil
}
// WaitLoadBalancerStatus wait the loadBalancer with this loadBalancerID to expect status
func WaitLoadBalancerStatus(lbService *service.LoadBalancerService, loadBalancerID string, status string, timeout time.Duration, waitInterval time.Duration) (lb *service.LoadBalancer, err error) {
logger.Debug("Waiting for LoadBalancer [%s] status [%s] ", loadBalancerID, status)
errorTimes := 0
@ -116,12 +119,11 @@ func WaitLoadBalancerStatus(lbService *service.LoadBalancerService, loadBalancer
i, err := describeLoadBalancer(lbService, loadBalancerID)
if err != nil {
logger.Error("DescribeLoadBalancer [%s] error : [%s]", loadBalancerID, err.Error())
errorTimes += 1
errorTimes ++
if errorTimes > 3 {
return false, err
} else {
return false, nil
}
return false, nil
}
if i.Status != nil && *i.Status == status {
if i.TransitionStatus != nil && *i.TransitionStatus != "" {

View File

@ -5,6 +5,7 @@ import (
"time"
)
// WaitForSpecificOrError wait a function return true or error.
func WaitForSpecificOrError(f func() (bool, error), timeout time.Duration, waitInterval time.Duration) error {
ticker := time.NewTicker(waitInterval)
defer ticker.Stop()
@ -27,12 +28,14 @@ func WaitForSpecificOrError(f func() (bool, error), timeout time.Duration, waitI
}
}
// WaitForSpecific wait a function return true.
func WaitForSpecific(f func() bool, timeout time.Duration, waitInterval time.Duration) error {
return WaitForSpecificOrError(func() (bool, error) {
return f(), nil
}, timeout, waitInterval)
}
// WaitFor wait a function return true.
func WaitFor(f func() bool) error {
return WaitForSpecific(f, 180*time.Second, 3*time.Second)
}

View File

@ -13,7 +13,7 @@ func TestWaitForSpecificOrError(t *testing.T){
timeout := 1000*time.Millisecond
times := 0
err := WaitForSpecificOrError(func() (bool, error) {
times += 1
times ++
println("times", times)
if times == 3 {
return true, nil
@ -25,7 +25,7 @@ func TestWaitForSpecificOrError(t *testing.T){
times = 0
err = WaitForSpecificOrError(func() (bool, error) {
times += 1
times ++
println("times", times)
if times == 3 {
return false, errors.New("error")
@ -37,7 +37,7 @@ func TestWaitForSpecificOrError(t *testing.T){
times = 0
err = WaitForSpecificOrError(func() (bool, error) {
times += 1
times ++
println("times", times)
return false, nil
}, timeout, waitInterval)