mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(region): vendor update (#23640)
This commit is contained in:
@@ -88,12 +88,12 @@ require (
|
||||
k8s.io/client-go v0.19.3
|
||||
k8s.io/cluster-bootstrap v0.19.3
|
||||
moul.io/http2curl/v2 v2.3.0
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251024142004-e98de79fcabf
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251029114425-e74e51b2ee51
|
||||
yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0
|
||||
yunion.io/x/jsonutils v1.0.1-0.20250507052344-1abcf4f443b1
|
||||
yunion.io/x/log v1.0.1-0.20240305175729-7cf2d6cd5a91
|
||||
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900
|
||||
yunion.io/x/pkg v1.10.4-0.20250820035218-6008459eb4f0
|
||||
yunion.io/x/pkg v1.10.4-0.20251029085629-5e6cd5e0d3ad
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20250925091009-4ca0766fc8f0
|
||||
yunion.io/x/structarg v0.0.0-20231017124457-df4d5009457c
|
||||
|
||||
@@ -1279,8 +1279,8 @@ sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK
|
||||
sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o=
|
||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||
sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251024142004-e98de79fcabf h1:YXvJjd2mhGAYsACGXygfJ5Jti4xHE7E6iD4z7FHbWBo=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251024142004-e98de79fcabf/go.mod h1:S9o/TRZsnYWGaGe7o3PpeOv6CgMY8ZJwITYsEnGfOgQ=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251029114425-e74e51b2ee51 h1:gbA7+xd3rsHgj8W2XCNBRet5hSdbiBoME3082fs/p4U=
|
||||
yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251029114425-e74e51b2ee51/go.mod h1:S9o/TRZsnYWGaGe7o3PpeOv6CgMY8ZJwITYsEnGfOgQ=
|
||||
yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0 h1:msG4SiDSVU7CrXH06WuHlNEZXIooTcmNbfrIGHuIHBU=
|
||||
yunion.io/x/executor v0.0.0-20250518005516-5402e9e0bed0/go.mod h1:Uxuou9WQIeJXNpy7t2fPLL0BYLvLiMvGQwY7Qc6aSws=
|
||||
yunion.io/x/jsonutils v0.0.0-20190625054549-a964e1e8a051/go.mod h1:4N0/RVzsYL3kH3WE/H1BjUQdFiWu50JGCFQuuy+Z634=
|
||||
@@ -1294,8 +1294,8 @@ yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900 h1:Hu/4ERvoWaN6aiFs4h4/yvVB
|
||||
yunion.io/x/ovsdb v0.0.0-20230306173834-f164f413a900/go.mod h1:0vLkNEhlmA64HViPBAnSTUMrx5QP1CLsxXmxDKQ80tc=
|
||||
yunion.io/x/pkg v0.0.0-20190620104149-945c25821dbf/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
|
||||
yunion.io/x/pkg v0.0.0-20190628082551-f4033ba2ea30/go.mod h1:t6rEGG2sQ4J7DhFxSZVOTjNd0YO/KlfWQyK1W4tog+E=
|
||||
yunion.io/x/pkg v1.10.4-0.20250820035218-6008459eb4f0 h1:/vHcYqzQInxqR1jjS+e7A0owRXj+/rvrIgES6uadUqs=
|
||||
yunion.io/x/pkg v1.10.4-0.20250820035218-6008459eb4f0/go.mod h1:0Bwxqd9MA3ACi119/l02FprY/o9gHahmYC2bsSbnVpM=
|
||||
yunion.io/x/pkg v1.10.4-0.20251029085629-5e6cd5e0d3ad h1:rvh05lRDppYWzVyIjU/y/vzXUvfQ8Oi47vioL+zGayA=
|
||||
yunion.io/x/pkg v1.10.4-0.20251029085629-5e6cd5e0d3ad/go.mod h1:0Bwxqd9MA3ACi119/l02FprY/o9gHahmYC2bsSbnVpM=
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1 h1:1KJ3YYinydPHpDEQRXdr/T8SYcKZ5Er+m489H+PnaQ4=
|
||||
yunion.io/x/s3cli v0.0.0-20241221171442-1c11599d28e1/go.mod h1:0iFKpOs1y4lbCxeOmq3Xx/0AcQoewVPwj62eRluioEo=
|
||||
yunion.io/x/sqlchemy v1.1.3-0.20250925091009-4ca0766fc8f0 h1:L4zE6kTD1PEki1jQnLLBiYnEYFKWa/weoful0Sl4tKw=
|
||||
|
||||
Vendored
+2
-2
@@ -1605,7 +1605,7 @@ sigs.k8s.io/structured-merge-diff/v4/value
|
||||
# sigs.k8s.io/yaml v1.2.0
|
||||
## explicit; go 1.12
|
||||
sigs.k8s.io/yaml
|
||||
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251024142004-e98de79fcabf
|
||||
# yunion.io/x/cloudmux v0.3.10-0-alpha.1.0.20251029114425-e74e51b2ee51
|
||||
## explicit; go 1.21
|
||||
yunion.io/x/cloudmux/pkg/apis
|
||||
yunion.io/x/cloudmux/pkg/apis/billing
|
||||
@@ -1700,7 +1700,7 @@ yunion.io/x/log/hooks
|
||||
yunion.io/x/ovsdb/cli_util
|
||||
yunion.io/x/ovsdb/schema/ovn_nb
|
||||
yunion.io/x/ovsdb/types
|
||||
# yunion.io/x/pkg v1.10.4-0.20250820035218-6008459eb4f0
|
||||
# yunion.io/x/pkg v1.10.4-0.20251029085629-5e6cd5e0d3ad
|
||||
## explicit; go 1.18
|
||||
yunion.io/x/pkg/appctx
|
||||
yunion.io/x/pkg/errors
|
||||
|
||||
-2
@@ -342,8 +342,6 @@ type ICloudVM interface {
|
||||
|
||||
GetInternetMaxBandwidthOut() int
|
||||
GetThroughput() int
|
||||
// GetStatus() string
|
||||
// GetRemoteStatus() string
|
||||
|
||||
GetSerialOutput(port int) (string, error) // 目前仅谷歌云windows机器会使用到此接口
|
||||
|
||||
|
||||
+18
-16
@@ -22,22 +22,23 @@ import (
|
||||
)
|
||||
|
||||
func WaitStatusWithSync(res ICloudResource, expect string, sync func(status string), interval time.Duration, timeout time.Duration) error {
|
||||
startTime := time.Now()
|
||||
startTime, status := time.Now(), res.GetStatus()
|
||||
for time.Since(startTime) < timeout {
|
||||
err := res.Refresh()
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "Refresh")
|
||||
}
|
||||
log.Infof("%s status %s expect %s", res.GetName(), res.GetStatus(), expect)
|
||||
status = res.GetStatus()
|
||||
log.Infof("%s status %s expect %s", res.GetName(), status, expect)
|
||||
if sync != nil {
|
||||
sync(res.GetStatus())
|
||||
sync(status)
|
||||
}
|
||||
if res.GetStatus() == expect {
|
||||
return nil
|
||||
}
|
||||
time.Sleep(interval)
|
||||
}
|
||||
return ErrTimeout
|
||||
return errors.Wrapf(errors.ErrTimeout, "status %s expect %s", status, expect)
|
||||
}
|
||||
|
||||
func WaitStatus(res ICloudResource, expect string, interval time.Duration, timeout time.Duration) error {
|
||||
@@ -45,14 +46,14 @@ func WaitStatus(res ICloudResource, expect string, interval time.Duration, timeo
|
||||
}
|
||||
|
||||
func WaitMultiStatusWithSync(res ICloudResource, expects []string, sync func(string), interval time.Duration, timeout time.Duration) error {
|
||||
startTime := time.Now()
|
||||
startTime, status := time.Now(), res.GetStatus()
|
||||
for time.Since(startTime) < timeout {
|
||||
err := res.Refresh()
|
||||
if err != nil {
|
||||
return errors.Wrap(err, "resource.Refresh()")
|
||||
return errors.Wrapf(err, "Refresh")
|
||||
}
|
||||
status := res.GetStatus()
|
||||
log.Infof("%s status %s expect %s", res.GetName(), status, expects)
|
||||
status = res.GetStatus()
|
||||
log.Infof("%s status %s expect %v", res.GetName(), status, expects)
|
||||
if sync != nil {
|
||||
sync(status)
|
||||
}
|
||||
@@ -63,7 +64,7 @@ func WaitMultiStatusWithSync(res ICloudResource, expects []string, sync func(str
|
||||
}
|
||||
time.Sleep(interval)
|
||||
}
|
||||
return errors.Wrap(errors.ErrTimeout, "WaitMultistatus")
|
||||
return errors.Wrapf(errors.ErrTimeout, "status %s expect %v", status, expects)
|
||||
}
|
||||
|
||||
func WaitMultiStatus(res ICloudResource, expects []string, interval time.Duration, timeout time.Duration) error {
|
||||
@@ -76,14 +77,15 @@ func WaitStatusWithDelay(res ICloudResource, expect string, delay time.Duration,
|
||||
}
|
||||
|
||||
func WaitStatusWithInstanceErrorCheck(res ICloudResource, expect string, interval time.Duration, timeout time.Duration, errCheck func() error) error {
|
||||
startTime := time.Now()
|
||||
startTime, status := time.Now(), res.GetStatus()
|
||||
for time.Since(startTime) < timeout {
|
||||
err := res.Refresh()
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "Refresh")
|
||||
}
|
||||
log.Infof("%s status %s expect %s", res.GetName(), res.GetStatus(), expect)
|
||||
if res.GetStatus() == expect {
|
||||
status = res.GetStatus()
|
||||
log.Infof("%s status %s expect %s", res.GetName(), status, expect)
|
||||
if status == expect {
|
||||
return nil
|
||||
}
|
||||
err = errCheck()
|
||||
@@ -92,7 +94,7 @@ func WaitStatusWithInstanceErrorCheck(res ICloudResource, expect string, interva
|
||||
}
|
||||
time.Sleep(interval)
|
||||
}
|
||||
return ErrTimeout
|
||||
return errors.Wrapf(errors.ErrTimeout, "status %s expect %s", status, expect)
|
||||
}
|
||||
|
||||
func WaitDeletedWithDelay(res ICloudResource, delay time.Duration, interval time.Duration, timeout time.Duration) error {
|
||||
@@ -108,7 +110,7 @@ func WaitDeleted(res ICloudResource, interval time.Duration, timeout time.Durati
|
||||
if errors.Cause(err) == ErrNotFound {
|
||||
return nil
|
||||
} else {
|
||||
return err
|
||||
return errors.Wrapf(err, "Refresh")
|
||||
}
|
||||
}
|
||||
time.Sleep(interval)
|
||||
|
||||
+19
-68
@@ -418,66 +418,25 @@ func (self *SInstance) GetHealthStatus() string {
|
||||
func (self *SInstance) Refresh() error {
|
||||
ins, err := self.host.zone.region.GetInstance(self.InstanceId)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "GetInstance %s", self.InstanceId)
|
||||
}
|
||||
return jsonutils.Update(self, ins)
|
||||
}
|
||||
|
||||
/*
|
||||
func (self *SInstance) GetRemoteStatus() string {
|
||||
// Running:运行中
|
||||
//Starting:启动中
|
||||
//Stopping:停止中
|
||||
//Stopped:已停止
|
||||
switch self.Status {
|
||||
case InstanceStatusRunning:
|
||||
return cloudprovider.CloudVMStatusRunning
|
||||
case InstanceStatusStarting:
|
||||
return cloudprovider.CloudVMStatusStopped
|
||||
case InstanceStatusStopping:
|
||||
return cloudprovider.CloudVMStatusRunning
|
||||
case InstanceStatusStopped:
|
||||
return cloudprovider.CloudVMStatusStopped
|
||||
default:
|
||||
return cloudprovider.CloudVMStatusOther
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
func (self *SInstance) GetHypervisor() string {
|
||||
return api.HYPERVISOR_ALIYUN
|
||||
}
|
||||
|
||||
func (self *SInstance) StartVM(ctx context.Context) error {
|
||||
timeout := 300 * time.Second
|
||||
interval := 15 * time.Second
|
||||
|
||||
startTime := time.Now()
|
||||
for time.Now().Sub(startTime) < timeout {
|
||||
err := self.Refresh()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Debugf("status %s expect %s", self.GetStatus(), api.VM_RUNNING)
|
||||
if self.GetStatus() == api.VM_RUNNING {
|
||||
return nil
|
||||
} else if self.GetStatus() == api.VM_READY {
|
||||
err := self.host.zone.region.StartVM(self.InstanceId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
time.Sleep(interval)
|
||||
}
|
||||
return cloudprovider.ErrTimeout
|
||||
return self.host.zone.region.StartVM(self.InstanceId)
|
||||
}
|
||||
|
||||
func (self *SInstance) StopVM(ctx context.Context, opts *cloudprovider.ServerStopOptions) error {
|
||||
err := self.host.zone.region.StopVM(self.InstanceId, opts.IsForce, opts.StopCharging)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "StopVM %s", self.InstanceId)
|
||||
}
|
||||
return cloudprovider.WaitStatus(self, api.VM_READY, 10*time.Second, 300*time.Second) // 5mintues
|
||||
return cloudprovider.WaitStatus(self, api.VM_READY, 10*time.Second, 5*time.Minute)
|
||||
}
|
||||
|
||||
func (self *SInstance) GetVNCInfo(input *cloudprovider.ServerVncInput) (*cloudprovider.ServerVncOutput, error) {
|
||||
@@ -789,12 +748,10 @@ func (self *SRegion) doDeleteVM(instanceId string) error {
|
||||
func (self *SRegion) StartVM(instanceId string) error {
|
||||
status, err := self.GetInstanceStatus(instanceId)
|
||||
if err != nil {
|
||||
log.Errorf("Fail to get instance status on StartVM: %s", err)
|
||||
return err
|
||||
return errors.Wrapf(err, "GetInstanceStatus")
|
||||
}
|
||||
if status != InstanceStatusStopped {
|
||||
log.Errorf("StartVM: vm status is %s expect %s", status, InstanceStatusStopped)
|
||||
return cloudprovider.ErrInvalidStatus
|
||||
return errors.Wrapf(cloudprovider.ErrInvalidStatus, "vm status is %s expect %s", status, InstanceStatusStopped)
|
||||
}
|
||||
return self.doStartVM(instanceId)
|
||||
}
|
||||
@@ -802,15 +759,13 @@ func (self *SRegion) StartVM(instanceId string) error {
|
||||
func (self *SRegion) StopVM(instanceId string, isForce, stopCharging bool) error {
|
||||
status, err := self.GetInstanceStatus(instanceId)
|
||||
if err != nil {
|
||||
log.Errorf("Fail to get instance status on StopVM: %s", err)
|
||||
return err
|
||||
return errors.Wrapf(err, "GetInstanceStatus")
|
||||
}
|
||||
if status == InstanceStatusStopped {
|
||||
return nil
|
||||
}
|
||||
if status != InstanceStatusRunning {
|
||||
log.Errorf("StopVM: vm status is %s expect %s", status, InstanceStatusRunning)
|
||||
return cloudprovider.ErrInvalidStatus
|
||||
return errors.Wrapf(cloudprovider.ErrInvalidStatus, "vm status is %s expect %s", status, InstanceStatusRunning)
|
||||
}
|
||||
return self.doStopVM(instanceId, isForce, stopCharging)
|
||||
}
|
||||
@@ -818,10 +773,8 @@ func (self *SRegion) StopVM(instanceId string, isForce, stopCharging bool) error
|
||||
func (self *SRegion) DeleteVM(instanceId string) error {
|
||||
status, err := self.GetInstanceStatus(instanceId)
|
||||
if err != nil {
|
||||
log.Errorf("Fail to get instance status on DeleteVM: %s", err)
|
||||
return err
|
||||
return errors.Wrapf(err, "GetInstanceStatus")
|
||||
}
|
||||
log.Debugf("Instance status on delete is %s", status)
|
||||
if status != InstanceStatusStopped {
|
||||
log.Warningf("DeleteVM: vm status is %s expect %s", status, InstanceStatusStopped)
|
||||
}
|
||||
@@ -831,14 +784,14 @@ func (self *SRegion) DeleteVM(instanceId string) error {
|
||||
func (self *SRegion) DeployVM(instanceId string, opts *cloudprovider.SInstanceDeployOptions) error {
|
||||
instance, err := self.GetInstance(instanceId)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "GetInstance")
|
||||
}
|
||||
|
||||
// 修改密钥时直接返回
|
||||
if opts.DeleteKeypair {
|
||||
err = self.DetachKeyPair(instanceId, instance.KeyPairName)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "DetachKeyPair")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -847,11 +800,11 @@ func (self *SRegion) DeployVM(instanceId string, opts *cloudprovider.SInstanceDe
|
||||
var err error
|
||||
keypairName, err = self.syncKeypair(opts.PublicKey)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "syncKeypair")
|
||||
}
|
||||
err = self.AttachKeypair(instanceId, keypairName)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "AttachKeypair")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -880,7 +833,7 @@ func (self *SInstance) DeleteVM(ctx context.Context) error {
|
||||
}
|
||||
e, ok := errors.Cause(err).(*alierr.ServerError)
|
||||
if !ok {
|
||||
return err
|
||||
return errors.Wrapf(err, "DeleteVM")
|
||||
}
|
||||
switch e.ErrorCode() {
|
||||
case "IncorrectInstanceStatus.Initializing":
|
||||
@@ -888,7 +841,7 @@ func (self *SInstance) DeleteVM(ctx context.Context) error {
|
||||
case "LastTokenProcessing": // 等待转换按量付费完成
|
||||
time.Sleep(10 * time.Second)
|
||||
default:
|
||||
return err
|
||||
return errors.Wrapf(err, "DeleteVM")
|
||||
}
|
||||
}
|
||||
return cloudprovider.WaitDeleted(self, 10*time.Second, 300*time.Second) // 5minutes
|
||||
@@ -943,9 +896,8 @@ func (self *SRegion) ReplaceSystemDisk(instanceId string, imageId string, passwd
|
||||
}
|
||||
body, err := self.ecsRequest("ReplaceSystemDisk", params)
|
||||
if err != nil {
|
||||
return "", err
|
||||
return "", errors.Wrapf(err, "ReplaceSystemDisk")
|
||||
}
|
||||
// log.Debugf("%s", body.String())
|
||||
return body.GetString("DiskId")
|
||||
}
|
||||
|
||||
@@ -1057,7 +1009,7 @@ func (region *SRegion) ModifyInstanceChargeType(vmId string, billingType string)
|
||||
}
|
||||
_, err := region.ecsRequest("ModifyInstanceChargeType", params)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "ModifyInstanceChargeType %v", params)
|
||||
}
|
||||
if billingType == billing_api.BILLING_TYPE_PREPAID {
|
||||
cycle := billing.SBillingCycle{
|
||||
@@ -1122,13 +1074,12 @@ func (region *SRegion) RenewInstance(instanceId string, bc billing.SBillingCycle
|
||||
params["InstanceId"] = instanceId
|
||||
err := billingCycle2Params(&bc, params)
|
||||
if err != nil {
|
||||
return err
|
||||
return errors.Wrapf(err, "billingCycle2Params %v", params)
|
||||
}
|
||||
params["ClientToken"] = utils.GenRequestId(20)
|
||||
_, err = region.ecsRequest("RenewInstance", params)
|
||||
if err != nil {
|
||||
log.Errorf("RenewInstance fail %s", err)
|
||||
return err
|
||||
return errors.Wrapf(err, "RenewInstance %v", params)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
+48
-3
@@ -20,6 +20,7 @@ import (
|
||||
"time"
|
||||
|
||||
"yunion.io/x/cloudmux/pkg/cloudprovider"
|
||||
"yunion.io/x/pkg/util/netutils"
|
||||
"yunion.io/x/pkg/util/secrules"
|
||||
"yunion.io/x/pkg/utils"
|
||||
)
|
||||
@@ -127,7 +128,7 @@ func (self *SPermission) Delete() error {
|
||||
}
|
||||
|
||||
func (self *SPermission) Update(opts *cloudprovider.SecurityGroupRuleUpdateOptions) error {
|
||||
return self.region.UpdateSecurityGroupRule(self.SecurityGroupId, self.SecurityGroupRuleId, self.GetDirection(), opts.Desc)
|
||||
return self.region.UpdateSecurityGroupRule(self.SecurityGroupId, self.SecurityGroupRuleId, self.GetDirection(), opts)
|
||||
}
|
||||
|
||||
func (self *SRegion) GetSecurityGroupRules(id string) ([]SPermission, error) {
|
||||
@@ -170,15 +171,59 @@ func (self *SRegion) DeleteSecurityGroupRule(groupId string, direction secrules.
|
||||
return err
|
||||
}
|
||||
|
||||
func (self *SRegion) UpdateSecurityGroupRule(groupId, ruleId string, direction secrules.TSecurityRuleDirection, desc string) error {
|
||||
func (self *SRegion) UpdateSecurityGroupRule(groupId, ruleId string, direction secrules.TSecurityRuleDirection, opts *cloudprovider.SecurityGroupRuleUpdateOptions) error {
|
||||
params := map[string]string{
|
||||
"ClientToken": utils.GenRequestId(20),
|
||||
"SecurityGroupId": groupId,
|
||||
"SecurityGroupRuleId": ruleId,
|
||||
}
|
||||
if len(opts.Desc) > 0 {
|
||||
params["Description"] = opts.Desc
|
||||
}
|
||||
switch opts.Protocol {
|
||||
case secrules.PROTO_TCP, secrules.PROTO_UDP:
|
||||
params["IpProtocol"] = opts.Protocol
|
||||
if len(opts.Ports) > 0 {
|
||||
params["PortRange"] = fmt.Sprintf("%s/%s", opts.Ports, opts.Ports)
|
||||
if strings.Contains(opts.Ports, "-") {
|
||||
params["PortRange"] = strings.ReplaceAll(opts.Ports, "-", "/")
|
||||
}
|
||||
}
|
||||
case secrules.PROTO_ICMP:
|
||||
params["IpProtocol"] = "icmp"
|
||||
case secrules.PROTO_ANY:
|
||||
params["IpProtocol"] = "all"
|
||||
}
|
||||
|
||||
if opts.Priority > 0 {
|
||||
params["Priority"] = fmt.Sprintf("%d", opts.Priority)
|
||||
}
|
||||
|
||||
switch opts.Action {
|
||||
case secrules.SecurityRuleAllow:
|
||||
params["Policy"] = "accept"
|
||||
case secrules.SecurityRuleDeny:
|
||||
params["Policy"] = "drop"
|
||||
}
|
||||
action := "ModifySecurityGroupRule"
|
||||
if direction == secrules.DIR_OUT {
|
||||
switch direction {
|
||||
case secrules.DIR_IN:
|
||||
if len(opts.CIDR) > 0 {
|
||||
if _, err := netutils.NewIPV6Prefix(opts.CIDR); err == nil {
|
||||
params["Ipv6SourceCidrIp"] = opts.CIDR
|
||||
} else {
|
||||
params["SourceCidrIp"] = opts.CIDR
|
||||
}
|
||||
}
|
||||
case secrules.DIR_OUT:
|
||||
action = "ModifySecurityGroupEgressRule"
|
||||
if len(opts.CIDR) > 0 {
|
||||
if _, err := netutils.NewIPV6Prefix(opts.CIDR); err == nil {
|
||||
params["Ipv6DestCidrIp"] = opts.CIDR
|
||||
} else {
|
||||
params["DestCidrIp"] = opts.CIDR
|
||||
}
|
||||
}
|
||||
}
|
||||
_, err := self.ecsRequest(action, params)
|
||||
return err
|
||||
|
||||
-21
@@ -361,27 +361,6 @@ func (self *SInstance) Refresh() error {
|
||||
return jsonutils.Update(self, new)
|
||||
}
|
||||
|
||||
/*
|
||||
func (self *SInstance) GetRemoteStatus() string {
|
||||
// Running:运行中
|
||||
//Starting:启动中
|
||||
//Stopping:停止中
|
||||
//Stopped:已停止
|
||||
switch self.Status {
|
||||
case InstanceStatusRunning:
|
||||
return cloudprovider.CloudVMStatusRunning
|
||||
case InstanceStatusStarting:
|
||||
return cloudprovider.CloudVMStatusStopped
|
||||
case InstanceStatusStopping:
|
||||
return cloudprovider.CloudVMStatusRunning
|
||||
case InstanceStatusStopped:
|
||||
return cloudprovider.CloudVMStatusStopped
|
||||
default:
|
||||
return cloudprovider.CloudVMStatusOther
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
func (self *SInstance) GetHypervisor() string {
|
||||
return api.HYPERVISOR_APSARA
|
||||
}
|
||||
|
||||
+1
-1
@@ -175,7 +175,7 @@ func (req *JsonBaseRequest) GetHttpMethod() THttpMethod {
|
||||
}
|
||||
|
||||
func (req *JsonBaseRequest) GetRequestBody() jsonutils.JSONObject {
|
||||
if req.params != nil {
|
||||
if !gotypes.IsNil(req.params) {
|
||||
return jsonutils.Marshal(req.params)
|
||||
}
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user