mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
Merge pull request #1218 from Zexi/hotfix/sched-forcast-net-domain
scheduler: fix network filter specify is_public check
This commit is contained in:
@@ -88,30 +88,34 @@ func (p *NetworkSchedtagPredicate) IsResourceFitInput(u *core.Unit, _ core.Candi
|
||||
return fmt.Errorf("Wire %s != %s", net.Wire, network.WireId)
|
||||
}
|
||||
}
|
||||
netTypes := p.GetNetworkTypes(net.NetType)
|
||||
if net.Network == "" && !utils.IsInStringArray(network.ServerType, netTypes) {
|
||||
return fmt.Errorf("Network %s type %s not in %v", network.Name, network.ServerType, netTypes)
|
||||
}
|
||||
schedData := u.SchedData()
|
||||
if net.Private {
|
||||
if network.IsPublic {
|
||||
return fmt.Errorf("Network %s is public", network.Name)
|
||||
|
||||
if net.Network == "" {
|
||||
netTypes := p.GetNetworkTypes(net.NetType)
|
||||
if !utils.IsInStringArray(network.ServerType, netTypes) {
|
||||
return fmt.Errorf("Network %s type %s not in %v", network.Name, network.ServerType, netTypes)
|
||||
}
|
||||
if network.ProjectId != schedData.Project {
|
||||
return fmt.Errorf("Network project %s not owner by %s", network.ProjectId, schedData.Project)
|
||||
}
|
||||
} else {
|
||||
if !network.IsPublic {
|
||||
return fmt.Errorf("Network %s is private", network.Name)
|
||||
}
|
||||
if rbacutils.TRbacScope(network.PublicScope) == rbacutils.ScopeDomain {
|
||||
netDomain := network.DomainId
|
||||
reqDomain := net.Domain
|
||||
if netDomain != reqDomain {
|
||||
return fmt.Errorf("Network domain scope %s not owner by %s", netDomain, reqDomain)
|
||||
schedData := u.SchedData()
|
||||
if net.Private {
|
||||
if network.IsPublic {
|
||||
return fmt.Errorf("Network %s is public", network.Name)
|
||||
}
|
||||
if network.ProjectId != schedData.Project {
|
||||
return fmt.Errorf("Network project %s not owner by %s", network.ProjectId, schedData.Project)
|
||||
}
|
||||
} else {
|
||||
if !network.IsPublic {
|
||||
return fmt.Errorf("Network %s is private", network.Name)
|
||||
}
|
||||
if rbacutils.TRbacScope(network.PublicScope) == rbacutils.ScopeDomain {
|
||||
netDomain := network.DomainId
|
||||
reqDomain := net.Domain
|
||||
if netDomain != reqDomain {
|
||||
return fmt.Errorf("Network domain scope %s not owner by %s", netDomain, reqDomain)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if len(net.Address) > 0 {
|
||||
ipAddr, err := netutils.NewIPV4Addr(net.Address)
|
||||
if err != nil {
|
||||
|
||||
@@ -34,7 +34,7 @@ func baremetalPredicates() sets.String {
|
||||
factory.RegisterFitPredicate("c-BaremetalCPUFilter", &predicatebm.CPUPredicate{}),
|
||||
factory.RegisterFitPredicate("d-BaremetalMemoryFilter", &predicatebm.MemoryPredicate{}),
|
||||
factory.RegisterFitPredicate("e-BaremetalStorageFilter", &predicatebm.StoragePredicate{}),
|
||||
factory.RegisterFitPredicate("f-BaremetalNetFilter", &predicatebm.NetworkPredicate{}),
|
||||
//factory.RegisterFitPredicate("f-BaremetalNetFilter", &predicatebm.NetworkPredicate{}),
|
||||
factory.RegisterFitPredicate("g-BaremetalResourceTypeFilter", &predicates.ResourceTypePredicate{}),
|
||||
factory.RegisterFitPredicate("h-DiskschedtagFilter", &predicates.DiskSchedtagPredicate{}),
|
||||
factory.RegisterFitPredicate("i-NetschedtagFilter", &predicates.NetworkSchedtagPredicate{}),
|
||||
|
||||
@@ -39,7 +39,7 @@ func defaultPredicates() sets.String {
|
||||
factory.RegisterFitPredicate("g-GuestCPUFilter", &predicateguest.CPUPredicate{}),
|
||||
factory.RegisterFitPredicate("h-GuestMemoryFilter", &predicateguest.MemoryPredicate{}),
|
||||
factory.RegisterFitPredicate("i-GuestStorageFilter", &predicateguest.StoragePredicate{}),
|
||||
factory.RegisterFitPredicate("j-GuestNetworkFilter", &predicateguest.NetworkPredicate{}),
|
||||
//factory.RegisterFitPredicate("j-GuestNetworkFilter", &predicateguest.NetworkPredicate{}),
|
||||
factory.RegisterFitPredicate("k-GuestIsolatedDeviceFilter", &predicateguest.IsolatedDevicePredicate{}),
|
||||
factory.RegisterFitPredicate("l-GuestResourceTypeFilter", &predicates.ResourceTypePredicate{}),
|
||||
factory.RegisterFitPredicate("m-GuestDiskschedtagFilter", &predicates.DiskSchedtagPredicate{}),
|
||||
|
||||
Reference in New Issue
Block a user