fix: init sharing status of default vpc and default secgroup

This commit is contained in:
Qiu Jian
2020-05-09 22:36:16 +08:00
parent 9e06c3a52f
commit d85e9be656
7 changed files with 52 additions and 9 deletions
+8
View File
@@ -1037,4 +1037,12 @@ func init() {
return nil
})
R(&CloudaccountShowOptions{}, "cloud-account-change-owner-candidate-domains", "Show candiate domains of a cloud account changing project", func(s *mcclient.ClientSession, args *CloudaccountShowOptions) error {
result, err := modules.Cloudaccounts.GetSpecific(s, args.ID, "change-owner-candidate-domains", nil)
if err != nil {
return err
}
printObject(result)
return nil
})
}
+30
View File
@@ -15,6 +15,8 @@
package shell
import (
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
"yunion.io/x/onecloud/pkg/mcclient/modules"
"yunion.io/x/onecloud/pkg/mcclient/options"
@@ -48,4 +50,32 @@ func init() {
printObject(result)
return nil
})
type GlobalVpcPublicOptions struct {
ID string `help:"ID or name of global vpc" json:"-"`
Scope string `help:"sharing scope" choices:"system|domain"`
SharedDomains []string `help:"share to domains"`
}
R(&GlobalVpcPublicOptions{}, "global-vpc-public", "Make global vpc public", func(s *mcclient.ClientSession, args *GlobalVpcPublicOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.GlobalVpcs.PerformAction(s, args.ID, "public", params)
if err != nil {
return err
}
printObject(result)
return nil
})
type GlobalVpcPrivateOptions struct {
ID string `help:"ID or name of global vpc" json:"-"`
}
R(&GlobalVpcPrivateOptions{}, "global-vpc-private", "Make global vpc private", func(s *mcclient.ClientSession, args *GlobalVpcPrivateOptions) error {
params := jsonutils.Marshal(args)
result, err := modules.GlobalVpcs.PerformAction(s, args.ID, "private", params)
if err != nil {
return err
}
printObject(result)
return nil
})
}
+5 -3
View File
@@ -2566,11 +2566,13 @@ func (net *SNetwork) PerformStatus(ctx context.Context, userCred mcclient.TokenC
}
func (net *SNetwork) GetChangeOwnerCandidateDomainIds() []string {
candidates := [][]string{
db.ISharableChangeOwnerCandidateDomainIds(net),
}
candidates := [][]string{}
wire := net.GetWire()
if wire != nil {
vpc := wire.GetVpc()
if vpc != nil {
candidates = append(candidates, vpc.GetChangeOwnerCandidateDomainIds())
}
candidates = append(candidates, db.ISharableChangeOwnerCandidateDomainIds(wire))
}
return db.ISharableMergeChangeOwnerCandidateDomainIds(net, candidates...)
+1
View File
@@ -819,6 +819,7 @@ func (manager *SSecurityGroupManager) InitializeData() error {
secGrp.DomainId = auth.AdminCredential().GetProjectDomainId()
// secGrp.IsEmulated = false
secGrp.IsPublic = true
secGrp.PublicScope = string(rbacutils.ScopeSystem)
err = manager.TableSpec().Insert(secGrp)
if err != nil {
log.Errorf("Insert default secgroup failed!!! %s", err)
+3 -1
View File
@@ -573,6 +573,7 @@ func (manager *SVpcManager) InitializeData() error {
defVpc.Description = "Default VPC"
defVpc.Status = api.VPC_STATUS_AVAILABLE
defVpc.IsDefault = true
defVpc.IsPublic = true
defVpc.PublicScope = string(rbacutils.ScopeSystem)
err = manager.TableSpec().Insert(&defVpc)
if err != nil {
@@ -1093,12 +1094,13 @@ func (manager *SVpcManager) totalCount(
func (vpc *SVpc) GetChangeOwnerCandidateDomainIds() []string {
candidates := [][]string{
db.ISharableChangeOwnerCandidateDomainIds(vpc),
vpc.SManagedResourceBase.GetChangeOwnerCandidateDomainIds(),
}
globalVpc, _ := vpc.GetGlobalVpc()
if globalVpc != nil {
candidates = append(candidates, db.ISharableChangeOwnerCandidateDomainIds(globalVpc))
}
log.Debugf("Candidate: %s", candidates)
return db.ISharableMergeChangeOwnerCandidateDomainIds(vpc, candidates...)
}
+4 -4
View File
@@ -1011,12 +1011,12 @@ func (model *SWire) CustomizeCreate(ctx context.Context, userCred mcclient.Token
}
func (wire *SWire) GetChangeOwnerCandidateDomainIds() []string {
candidates := [][]string{
db.ISharableChangeOwnerCandidateDomainIds(wire),
}
candidates := [][]string{}
vpc := wire.GetVpc()
if vpc != nil {
candidates = append(candidates, db.ISharableChangeOwnerCandidateDomainIds(vpc))
candidates = append(candidates,
vpc.GetChangeOwnerCandidateDomainIds(),
db.ISharableChangeOwnerCandidateDomainIds(vpc))
}
return db.ISharableMergeChangeOwnerCandidateDomainIds(wire, candidates...)
}
+1 -1
View File
@@ -22,7 +22,7 @@ var (
func init() {
Vpcs = NewComputeManager("vpc", "vpcs",
[]string{"ID", "Name", "Enabled", "Status", "Cloudregion_Id", "Is_default", "Cidr_Block", "Region", "Public_Scope"},
[]string{"ID", "Name", "Enabled", "Status", "Cloudregion_Id", "Is_default", "Cidr_Block", "Region", "Public_Scope", "Domain_Id", "Domain"},
[]string{})
registerCompute(&Vpcs)