Improve equals
This commit is contained in:
parent
8584b25432
commit
34e052b5cc
2 changed files with 198 additions and 210 deletions
|
@ -70,15 +70,9 @@ func (c1 *Configuration) Equal(c2 *Configuration) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, c1s := range c1.Servers {
|
// Servers are sorted
|
||||||
found := false
|
for idx, c1s := range c1.Servers {
|
||||||
for _, c2s := range c2.Servers {
|
if !c1s.Equal(c2.Servers[idx]) {
|
||||||
if c1s.Equal(c2s) {
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !found {
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -306,15 +300,9 @@ func (s1 *Server) Equal(s2 *Server) bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, s1l := range s1.Locations {
|
// Location are sorted
|
||||||
found := false
|
for idx, s1l := range s1.Locations {
|
||||||
for _, sl2 := range s2.Locations {
|
if !s1l.Equal(s2.Locations[idx]) {
|
||||||
if s1l.Equal(sl2) {
|
|
||||||
found = true
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if !found {
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -199,198 +199,6 @@
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
"servers": [{
|
"servers": [{
|
||||||
"hostname": "domain.tld",
|
|
||||||
"sslPassthrough": false,
|
|
||||||
"sslCertificate": "",
|
|
||||||
"sslExpireTime": "0001-01-01T00:00:00Z",
|
|
||||||
"sslPemChecksum": "",
|
|
||||||
"locations": [{
|
|
||||||
"path": "/dashboard",
|
|
||||||
"isDefBackend": false,
|
|
||||||
"backend": "kube-system-kubernetes-dashboard-80",
|
|
||||||
"service": {
|
|
||||||
"metadata": {
|
|
||||||
"name": "kubernetes-dashboard",
|
|
||||||
"namespace": "kube-system",
|
|
||||||
"selfLink": "/api/v1/namespaces/kube-system/services/kubernetes-dashboard",
|
|
||||||
"uid": "b957713f-5176-11e7-b3db-080027494b5d",
|
|
||||||
"resourceVersion": "82",
|
|
||||||
"creationTimestamp": "2017-06-15T03:00:01Z",
|
|
||||||
"labels": {
|
|
||||||
"addonmanager.kubernetes.io/mode": "Reconcile",
|
|
||||||
"app": "kubernetes-dashboard",
|
|
||||||
"kubernetes.io/minikube-addons": "dashboard",
|
|
||||||
"kubernetes.io/minikube-addons-endpoint": "dashboard"
|
|
||||||
},
|
|
||||||
"annotations": {
|
|
||||||
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"app\":\"kubernetes-dashboard\",\"kubernetes.io/minikube-addons\":\"dashboard\",\"kubernetes.io/minikube-addons-endpoint\":\"dashboard\"},\"name\":\"kubernetes-dashboard\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"nodePort\":30000,\"port\":80,\"targetPort\":9090}],\"selector\":{\"app\":\"kubernetes-dashboard\"},\"type\":\"NodePort\"}}\n"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"spec": {
|
|
||||||
"ports": [{
|
|
||||||
"protocol": "TCP",
|
|
||||||
"port": 80,
|
|
||||||
"targetPort": 9090,
|
|
||||||
"nodePort": 30000
|
|
||||||
}],
|
|
||||||
"selector": {
|
|
||||||
"app": "kubernetes-dashboard"
|
|
||||||
},
|
|
||||||
"clusterIP": "10.0.0.120",
|
|
||||||
"type": "NodePort",
|
|
||||||
"sessionAffinity": "None"
|
|
||||||
},
|
|
||||||
"status": {
|
|
||||||
"loadBalancer": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"port": 80,
|
|
||||||
"basicDigestAuth": {
|
|
||||||
"type": "",
|
|
||||||
"realm": "",
|
|
||||||
"file": "",
|
|
||||||
"secured": false,
|
|
||||||
"fileSha": ""
|
|
||||||
},
|
|
||||||
"externalAuth": {
|
|
||||||
"url": "",
|
|
||||||
"host": "",
|
|
||||||
"signinUrl": "",
|
|
||||||
"method": "",
|
|
||||||
"sendBody": false,
|
|
||||||
"responseHeaders": null
|
|
||||||
},
|
|
||||||
"rateLimit": {
|
|
||||||
"connections": {
|
|
||||||
"name": "",
|
|
||||||
"limit": 0,
|
|
||||||
"burst": 0,
|
|
||||||
"sharedSize": 0
|
|
||||||
},
|
|
||||||
"rps": {
|
|
||||||
"name": "",
|
|
||||||
"limit": 0,
|
|
||||||
"burst": 0,
|
|
||||||
"sharedSize": 0
|
|
||||||
},
|
|
||||||
"rpm": {
|
|
||||||
"name": "",
|
|
||||||
"limit": 0,
|
|
||||||
"burst": 0,
|
|
||||||
"sharedSize": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"redirect": {
|
|
||||||
"target": "/",
|
|
||||||
"addBaseUrl": false,
|
|
||||||
"sslRedirect": true,
|
|
||||||
"forceSSLRedirect": false,
|
|
||||||
"appRoot": ""
|
|
||||||
},
|
|
||||||
"whitelist": {
|
|
||||||
"cidr": null
|
|
||||||
},
|
|
||||||
"proxy": {
|
|
||||||
"bodySize": "1m",
|
|
||||||
"conectTimeout": 5,
|
|
||||||
"sendTimeout": 60,
|
|
||||||
"readTimeout": 60,
|
|
||||||
"bufferSize": "4k",
|
|
||||||
"cookieDomain": "off",
|
|
||||||
"cookiePath": "off",
|
|
||||||
"nextUpstream": "error timeout invalid_header http_502 http_503 http_504"
|
|
||||||
},
|
|
||||||
"certificateAuth": {
|
|
||||||
"authSSLCert": {
|
|
||||||
"secret": "",
|
|
||||||
"caFilename": "",
|
|
||||||
"pemSha": ""
|
|
||||||
},
|
|
||||||
"validationDepth": 0
|
|
||||||
},
|
|
||||||
"use-port-in-redirects": false,
|
|
||||||
"configuration-snippet": ""
|
|
||||||
}, {
|
|
||||||
"path": "/",
|
|
||||||
"isDefBackend": true,
|
|
||||||
"backend": "upstream-default-backend",
|
|
||||||
"service": {
|
|
||||||
"metadata": {
|
|
||||||
"creationTimestamp": null
|
|
||||||
},
|
|
||||||
"spec": {},
|
|
||||||
"status": {
|
|
||||||
"loadBalancer": {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"port": 0,
|
|
||||||
"basicDigestAuth": {
|
|
||||||
"type": "",
|
|
||||||
"realm": "",
|
|
||||||
"file": "",
|
|
||||||
"secured": false,
|
|
||||||
"fileSha": ""
|
|
||||||
},
|
|
||||||
"externalAuth": {
|
|
||||||
"url": "",
|
|
||||||
"host": "",
|
|
||||||
"signinUrl": "",
|
|
||||||
"method": "",
|
|
||||||
"sendBody": false,
|
|
||||||
"responseHeaders": null
|
|
||||||
},
|
|
||||||
"rateLimit": {
|
|
||||||
"connections": {
|
|
||||||
"name": "",
|
|
||||||
"limit": 0,
|
|
||||||
"burst": 0,
|
|
||||||
"sharedSize": 0
|
|
||||||
},
|
|
||||||
"rps": {
|
|
||||||
"name": "",
|
|
||||||
"limit": 0,
|
|
||||||
"burst": 0,
|
|
||||||
"sharedSize": 0
|
|
||||||
},
|
|
||||||
"rpm": {
|
|
||||||
"name": "",
|
|
||||||
"limit": 0,
|
|
||||||
"burst": 0,
|
|
||||||
"sharedSize": 0
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"redirect": {
|
|
||||||
"target": "",
|
|
||||||
"addBaseUrl": false,
|
|
||||||
"sslRedirect": false,
|
|
||||||
"forceSSLRedirect": false,
|
|
||||||
"appRoot": ""
|
|
||||||
},
|
|
||||||
"whitelist": {
|
|
||||||
"cidr": null
|
|
||||||
},
|
|
||||||
"proxy": {
|
|
||||||
"bodySize": "1m",
|
|
||||||
"conectTimeout": 5,
|
|
||||||
"sendTimeout": 60,
|
|
||||||
"readTimeout": 60,
|
|
||||||
"bufferSize": "4k",
|
|
||||||
"cookieDomain": "off",
|
|
||||||
"cookiePath": "off",
|
|
||||||
"nextUpstream": "error timeout invalid_header http_502 http_503 http_504"
|
|
||||||
},
|
|
||||||
"certificateAuth": {
|
|
||||||
"authSSLCert": {
|
|
||||||
"secret": "",
|
|
||||||
"caFilename": "",
|
|
||||||
"pemSha": ""
|
|
||||||
},
|
|
||||||
"validationDepth": 0
|
|
||||||
},
|
|
||||||
"use-port-in-redirects": false,
|
|
||||||
"configuration-snippet": ""
|
|
||||||
}]
|
|
||||||
},{
|
|
||||||
"hostname": "_",
|
"hostname": "_",
|
||||||
"sslPassthrough": false,
|
"sslPassthrough": false,
|
||||||
"sslCertificate": "/ingress-controller/ssl/default-fake-certificate.pem",
|
"sslCertificate": "/ingress-controller/ssl/default-fake-certificate.pem",
|
||||||
|
@ -683,6 +491,198 @@
|
||||||
"use-port-in-redirects": false,
|
"use-port-in-redirects": false,
|
||||||
"configuration-snippet": ""
|
"configuration-snippet": ""
|
||||||
}]
|
}]
|
||||||
|
}, {
|
||||||
|
"hostname": "domain.tld",
|
||||||
|
"sslPassthrough": false,
|
||||||
|
"sslCertificate": "",
|
||||||
|
"sslExpireTime": "0001-01-01T00:00:00Z",
|
||||||
|
"sslPemChecksum": "",
|
||||||
|
"locations": [{
|
||||||
|
"path": "/dashboard",
|
||||||
|
"isDefBackend": false,
|
||||||
|
"backend": "kube-system-kubernetes-dashboard-80",
|
||||||
|
"service": {
|
||||||
|
"metadata": {
|
||||||
|
"name": "kubernetes-dashboard",
|
||||||
|
"namespace": "kube-system",
|
||||||
|
"selfLink": "/api/v1/namespaces/kube-system/services/kubernetes-dashboard",
|
||||||
|
"uid": "b957713f-5176-11e7-b3db-080027494b5d",
|
||||||
|
"resourceVersion": "82",
|
||||||
|
"creationTimestamp": "2017-06-15T03:00:01Z",
|
||||||
|
"labels": {
|
||||||
|
"addonmanager.kubernetes.io/mode": "Reconcile",
|
||||||
|
"app": "kubernetes-dashboard",
|
||||||
|
"kubernetes.io/minikube-addons": "dashboard",
|
||||||
|
"kubernetes.io/minikube-addons-endpoint": "dashboard"
|
||||||
|
},
|
||||||
|
"annotations": {
|
||||||
|
"kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"v1\",\"kind\":\"Service\",\"metadata\":{\"annotations\":{},\"labels\":{\"addonmanager.kubernetes.io/mode\":\"Reconcile\",\"app\":\"kubernetes-dashboard\",\"kubernetes.io/minikube-addons\":\"dashboard\",\"kubernetes.io/minikube-addons-endpoint\":\"dashboard\"},\"name\":\"kubernetes-dashboard\",\"namespace\":\"kube-system\"},\"spec\":{\"ports\":[{\"nodePort\":30000,\"port\":80,\"targetPort\":9090}],\"selector\":{\"app\":\"kubernetes-dashboard\"},\"type\":\"NodePort\"}}\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
"ports": [{
|
||||||
|
"protocol": "TCP",
|
||||||
|
"port": 80,
|
||||||
|
"targetPort": 9090,
|
||||||
|
"nodePort": 30000
|
||||||
|
}],
|
||||||
|
"selector": {
|
||||||
|
"app": "kubernetes-dashboard"
|
||||||
|
},
|
||||||
|
"clusterIP": "10.0.0.120",
|
||||||
|
"type": "NodePort",
|
||||||
|
"sessionAffinity": "None"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"loadBalancer": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"port": 80,
|
||||||
|
"basicDigestAuth": {
|
||||||
|
"type": "",
|
||||||
|
"realm": "",
|
||||||
|
"file": "",
|
||||||
|
"secured": false,
|
||||||
|
"fileSha": ""
|
||||||
|
},
|
||||||
|
"externalAuth": {
|
||||||
|
"url": "",
|
||||||
|
"host": "",
|
||||||
|
"signinUrl": "",
|
||||||
|
"method": "",
|
||||||
|
"sendBody": false,
|
||||||
|
"responseHeaders": null
|
||||||
|
},
|
||||||
|
"rateLimit": {
|
||||||
|
"connections": {
|
||||||
|
"name": "",
|
||||||
|
"limit": 0,
|
||||||
|
"burst": 0,
|
||||||
|
"sharedSize": 0
|
||||||
|
},
|
||||||
|
"rps": {
|
||||||
|
"name": "",
|
||||||
|
"limit": 0,
|
||||||
|
"burst": 0,
|
||||||
|
"sharedSize": 0
|
||||||
|
},
|
||||||
|
"rpm": {
|
||||||
|
"name": "",
|
||||||
|
"limit": 0,
|
||||||
|
"burst": 0,
|
||||||
|
"sharedSize": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"redirect": {
|
||||||
|
"target": "/",
|
||||||
|
"addBaseUrl": false,
|
||||||
|
"sslRedirect": true,
|
||||||
|
"forceSSLRedirect": false,
|
||||||
|
"appRoot": ""
|
||||||
|
},
|
||||||
|
"whitelist": {
|
||||||
|
"cidr": null
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"bodySize": "1m",
|
||||||
|
"conectTimeout": 5,
|
||||||
|
"sendTimeout": 60,
|
||||||
|
"readTimeout": 60,
|
||||||
|
"bufferSize": "4k",
|
||||||
|
"cookieDomain": "off",
|
||||||
|
"cookiePath": "off",
|
||||||
|
"nextUpstream": "error timeout invalid_header http_502 http_503 http_504"
|
||||||
|
},
|
||||||
|
"certificateAuth": {
|
||||||
|
"authSSLCert": {
|
||||||
|
"secret": "",
|
||||||
|
"caFilename": "",
|
||||||
|
"pemSha": ""
|
||||||
|
},
|
||||||
|
"validationDepth": 0
|
||||||
|
},
|
||||||
|
"use-port-in-redirects": false,
|
||||||
|
"configuration-snippet": ""
|
||||||
|
}, {
|
||||||
|
"path": "/",
|
||||||
|
"isDefBackend": true,
|
||||||
|
"backend": "upstream-default-backend",
|
||||||
|
"service": {
|
||||||
|
"metadata": {
|
||||||
|
"creationTimestamp": null
|
||||||
|
},
|
||||||
|
"spec": {},
|
||||||
|
"status": {
|
||||||
|
"loadBalancer": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"port": 0,
|
||||||
|
"basicDigestAuth": {
|
||||||
|
"type": "",
|
||||||
|
"realm": "",
|
||||||
|
"file": "",
|
||||||
|
"secured": false,
|
||||||
|
"fileSha": ""
|
||||||
|
},
|
||||||
|
"externalAuth": {
|
||||||
|
"url": "",
|
||||||
|
"host": "",
|
||||||
|
"signinUrl": "",
|
||||||
|
"method": "",
|
||||||
|
"sendBody": false,
|
||||||
|
"responseHeaders": null
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"bodySize": "1m",
|
||||||
|
"conectTimeout": 5,
|
||||||
|
"sendTimeout": 60,
|
||||||
|
"readTimeout": 60,
|
||||||
|
"bufferSize": "4k",
|
||||||
|
"cookieDomain": "off",
|
||||||
|
"cookiePath": "off",
|
||||||
|
"nextUpstream": "error timeout invalid_header http_502 http_503 http_504"
|
||||||
|
},
|
||||||
|
"certificateAuth": {
|
||||||
|
"authSSLCert": {
|
||||||
|
"secret": "",
|
||||||
|
"caFilename": "",
|
||||||
|
"pemSha": ""
|
||||||
|
},
|
||||||
|
"validationDepth": 0
|
||||||
|
},
|
||||||
|
"use-port-in-redirects": false,
|
||||||
|
"configuration-snippet": "",
|
||||||
|
"rateLimit": {
|
||||||
|
"connections": {
|
||||||
|
"name": "",
|
||||||
|
"limit": 0,
|
||||||
|
"burst": 0,
|
||||||
|
"sharedSize": 0
|
||||||
|
},
|
||||||
|
"rps": {
|
||||||
|
"name": "",
|
||||||
|
"limit": 0,
|
||||||
|
"burst": 0,
|
||||||
|
"sharedSize": 0
|
||||||
|
},
|
||||||
|
"rpm": {
|
||||||
|
"name": "",
|
||||||
|
"limit": 0,
|
||||||
|
"burst": 0,
|
||||||
|
"sharedSize": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"redirect": {
|
||||||
|
"target": "",
|
||||||
|
"addBaseUrl": false,
|
||||||
|
"sslRedirect": false,
|
||||||
|
"forceSSLRedirect": false,
|
||||||
|
"appRoot": ""
|
||||||
|
},
|
||||||
|
"whitelist": {
|
||||||
|
"cidr": null
|
||||||
|
}
|
||||||
|
}]
|
||||||
}],
|
}],
|
||||||
"TCPBackends": [],
|
"TCPBackends": [],
|
||||||
"UDPBackends": []
|
"UDPBackends": []
|
||||||
|
|
Loading…
Reference in a new issue