Skip to content

Commit

Permalink
fix: init sharing status of default vpc and default secgroup
Browse files Browse the repository at this point in the history
  • Loading branch information
Qiu Jian committed May 9, 2020
1 parent 8bd0205 commit 77f35ba
Show file tree
Hide file tree
Showing 7 changed files with 52 additions and 9 deletions.
8 changes: 8 additions & 0 deletions cmd/climc/shell/compute/cloudaccounts.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 30 additions & 0 deletions cmd/climc/shell/compute/globalvpcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
package compute

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"
Expand Down Expand Up @@ -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
})
}
8 changes: 5 additions & 3 deletions pkg/compute/models/networks.go
Original file line number Diff line number Diff line change
Expand Up @@ -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...)
Expand Down
1 change: 1 addition & 0 deletions pkg/compute/models/secgroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 3 additions & 1 deletion pkg/compute/models/vpcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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...)
}

Expand Down
8 changes: 4 additions & 4 deletions pkg/compute/models/wires.go
Original file line number Diff line number Diff line change
Expand Up @@ -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...)
}
Expand Down
2 changes: 1 addition & 1 deletion pkg/mcclient/modules/mod_vpcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit 77f35ba

Please sign in to comment.