lbagent: fend off unexpected resources just in case

As resource we do not know whether they are bad, but surely we know
they are not what we expect
This commit is contained in:
Yousong Zhou
2020-04-22 18:25:18 +08:00
parent e55bb827a1
commit 7f982d5b29
2 changed files with 33 additions and 0 deletions
+26
View File
@@ -50,6 +50,10 @@ func (set Loadbalancers) NewModel() models.IVirtualResource {
func (set Loadbalancers) addModelCallback(i models.IVirtualResource) error {
m, _ := i.(*models.Loadbalancer)
if m.ManagerId != "" || m.ExternalId != "" {
log.Errorf("unexpected lb: %#v", m)
return nil
}
set[m.Id] = &Loadbalancer{
Loadbalancer: m,
listeners: LoadbalancerListeners{},
@@ -114,6 +118,10 @@ func (set LoadbalancerListeners) NewModel() models.IVirtualResource {
func (set LoadbalancerListeners) addModelCallback(i models.IVirtualResource) error {
m, _ := i.(*models.LoadbalancerListener)
if m.ManagerId != "" || m.ExternalId != "" || m.LoadbalancerId == "" {
log.Errorf("unexpected lblistener: %#v", m)
return nil
}
set[m.Id] = &LoadbalancerListener{
LoadbalancerListener: m,
rules: LoadbalancerListenerRules{},
@@ -172,6 +180,10 @@ func (set LoadbalancerListenerRules) NewModel() models.IVirtualResource {
func (set LoadbalancerListenerRules) addModelCallback(i models.IVirtualResource) error {
m, _ := i.(*models.LoadbalancerListenerRule)
if m.ManagerId != "" || m.ExternalId != "" || m.ListenerId == "" {
log.Errorf("unexpected lblistenerrule: %#v", m)
return nil
}
set[m.Id] = &LoadbalancerListenerRule{
LoadbalancerListenerRule: m,
}
@@ -225,6 +237,10 @@ func (set LoadbalancerBackendGroups) NewModel() models.IVirtualResource {
func (set LoadbalancerBackendGroups) addModelCallback(i models.IVirtualResource) error {
m, _ := i.(*models.LoadbalancerBackendGroup)
if m.ManagerId != "" || m.ExternalId != "" || m.LoadbalancerId == "" {
log.Errorf("unexpected lbbg: %#v", m)
return nil
}
set[m.Id] = &LoadbalancerBackendGroup{
LoadbalancerBackendGroup: m,
backends: LoadbalancerBackends{},
@@ -264,6 +280,10 @@ func (set LoadbalancerBackends) NewModel() models.IVirtualResource {
func (set LoadbalancerBackends) addModelCallback(i models.IVirtualResource) error {
m, _ := i.(*models.LoadbalancerBackend)
if m.ManagerId != "" || m.ExternalId != "" || m.BackendGroupId == "" {
log.Errorf("unexpected lbb: %#v", m)
return nil
}
set[m.Id] = &LoadbalancerBackend{
LoadbalancerBackend: m,
}
@@ -280,6 +300,9 @@ func (set LoadbalancerAcls) NewModel() models.IVirtualResource {
func (set LoadbalancerAcls) addModelCallback(i models.IVirtualResource) error {
m, _ := i.(*models.LoadbalancerAcl)
if m.ManagerId != "" || m.ExternalId != "" {
return nil
}
set[m.Id] = &LoadbalancerAcl{
LoadbalancerAcl: m,
}
@@ -296,6 +319,9 @@ func (set LoadbalancerCertificates) NewModel() models.IVirtualResource {
func (set LoadbalancerCertificates) addModelCallback(i models.IVirtualResource) error {
m, _ := i.(*models.LoadbalancerCertificate)
if m.ManagerId != "" || m.ExternalId != "" {
return nil
}
set[m.Id] = &LoadbalancerCertificate{
LoadbalancerCertificate: m,
}
+7
View File
@@ -21,6 +21,7 @@ import (
type Loadbalancer struct {
VirtualResource
ManagedResource
ExternalizedResource
EgressMbps int
Address string
@@ -72,6 +73,7 @@ type LoadbalancerHTTPRedirect struct {
type LoadbalancerListener struct {
VirtualResource
ManagedResource
ExternalizedResource
CloudregionId string
LoadbalancerId string
@@ -122,6 +124,7 @@ type LoadbalancerListener struct {
type LoadbalancerListenerRule struct {
VirtualResource
ManagedResource
ExternalizedResource
CloudregionId string
ListenerId string
@@ -137,6 +140,7 @@ type LoadbalancerListenerRule struct {
type LoadbalancerBackendGroup struct {
VirtualResource
ManagedResource
ExternalizedResource
Type string
LoadbalancerId string
@@ -146,6 +150,7 @@ type LoadbalancerBackendGroup struct {
type LoadbalancerBackend struct {
VirtualResource
ManagedResource
ExternalizedResource
CloudregionId string
BackendGroupId string
@@ -168,6 +173,7 @@ type LoadbalancerAclEntries []*LoadbalancerAclEntry
type LoadbalancerAcl struct {
SharableVirtualResource
ManagedResource
ExternalizedResource
AclEntries *LoadbalancerAclEntries
CloudregionId string
@@ -176,6 +182,7 @@ type LoadbalancerAcl struct {
type LoadbalancerCertificate struct {
VirtualResource
ManagedResource
ExternalizedResource
Certificate string
PrivateKey string