diff --git a/pkg/compute/models/guest_sshable.go b/pkg/compute/models/guest_sshable.go index 2e05e1d49e..80a687c840 100644 --- a/pkg/compute/models/guest_sshable.go +++ b/pkg/compute/models/guest_sshable.go @@ -143,8 +143,7 @@ func (guest *SGuest) sshableTryEach( if vpc == nil { continue } - if vpc.Id == compute_api.DEFAULT_VPC_ID { - // - vpc_id == "default" + if vpc.Id == compute_api.DEFAULT_VPC_ID || vpc.Direct { if ok := guest.sshableTryDefaultVPC(ctx, tryData, gn); ok { return nil } diff --git a/pkg/compute/models/vpcs.go b/pkg/compute/models/vpcs.go index 60402d0a46..65ec53ae3f 100644 --- a/pkg/compute/models/vpcs.go +++ b/pkg/compute/models/vpcs.go @@ -87,6 +87,9 @@ type SVpc struct { // Vpc外网访问模式 ExternalAccessMode string `width:"16" charset:"ascii" nullable:"true" list:"user" update:"user" create:"optional"` + + // Can it be connected directly + Direct bool `default:"false" list:"user" update:"user"` } func (manager *SVpcManager) GetContextManagers() [][]db.IModelManager { diff --git a/pkg/mcclient/options/vpc.go b/pkg/mcclient/options/vpc.go index d16a7714a8..32004e6b46 100644 --- a/pkg/mcclient/options/vpc.go +++ b/pkg/mcclient/options/vpc.go @@ -88,6 +88,7 @@ func (opts *VpcIdOptions) Params() (jsonutils.JSONObject, error) { type VpcUpdateOptions struct { BaseUpdateOptions ExternalAccessMode string `help:"Filter by external access mode" choices:"distgw|eip|eip-distgw"` + Direct bool `help:"Can it be connected directly"` } func (opts *VpcUpdateOptions) Params() (jsonutils.JSONObject, error) {