[GLBC] Support backside re-encryption (#519)
Support backside re-encryption
This commit is contained in:
parent
7f3763590a
commit
642cb74cc7
21 changed files with 1046 additions and 433 deletions
|
|
@ -17,86 +17,98 @@ limitations under the License.
|
|||
package healthchecks
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
compute "google.golang.org/api/compute/v1"
|
||||
|
||||
"k8s.io/ingress/controllers/gce/utils"
|
||||
"google.golang.org/api/googleapi"
|
||||
)
|
||||
|
||||
// NewFakeHealthChecks returns a new FakeHealthChecks.
|
||||
func NewFakeHealthChecks() *FakeHealthChecks {
|
||||
return &FakeHealthChecks{hc: []*compute.HttpHealthCheck{}}
|
||||
func fakeNotFoundErr() *googleapi.Error {
|
||||
return &googleapi.Error{Code: 404}
|
||||
}
|
||||
|
||||
// FakeHealthCheckGetter implements the healthCheckGetter interface for tests.
|
||||
type FakeHealthCheckGetter struct {
|
||||
DefaultHealthCheck *compute.HttpHealthCheck
|
||||
}
|
||||
|
||||
// HealthCheck returns the health check for the given port. If a health check
|
||||
// isn't stored under the DefaultHealthCheck member, it constructs one.
|
||||
func (h *FakeHealthCheckGetter) HealthCheck(port int64) (*compute.HttpHealthCheck, error) {
|
||||
if h.DefaultHealthCheck == nil {
|
||||
return utils.DefaultHealthCheckTemplate(port), nil
|
||||
// NewFakeHealthCheckProvider returns a new FakeHealthChecks.
|
||||
func NewFakeHealthCheckProvider() *FakeHealthCheckProvider {
|
||||
return &FakeHealthCheckProvider{
|
||||
http: make(map[string]compute.HttpHealthCheck),
|
||||
generic: make(map[string]compute.HealthCheck),
|
||||
}
|
||||
return h.DefaultHealthCheck, nil
|
||||
}
|
||||
|
||||
// FakeHealthChecks fakes out health checks.
|
||||
type FakeHealthChecks struct {
|
||||
hc []*compute.HttpHealthCheck
|
||||
// FakeHealthCheckProvider fakes out health checks.
|
||||
type FakeHealthCheckProvider struct {
|
||||
http map[string]compute.HttpHealthCheck
|
||||
generic map[string]compute.HealthCheck
|
||||
}
|
||||
|
||||
// CreateHttpHealthCheck fakes out http health check creation.
|
||||
func (f *FakeHealthChecks) CreateHttpHealthCheck(hc *compute.HttpHealthCheck) error {
|
||||
f.hc = append(f.hc, hc)
|
||||
func (f *FakeHealthCheckProvider) CreateHttpHealthCheck(hc *compute.HttpHealthCheck) error {
|
||||
v := *hc
|
||||
v.SelfLink = "https://fake.google.com/compute/httpHealthChecks/" + hc.Name
|
||||
f.http[hc.Name] = v
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetHttpHealthCheck fakes out getting a http health check from the cloud.
|
||||
func (f *FakeHealthChecks) GetHttpHealthCheck(name string) (*compute.HttpHealthCheck, error) {
|
||||
for _, h := range f.hc {
|
||||
if h.Name == name {
|
||||
return h, nil
|
||||
}
|
||||
func (f *FakeHealthCheckProvider) GetHttpHealthCheck(name string) (*compute.HttpHealthCheck, error) {
|
||||
if hc, found := f.http[name]; found {
|
||||
return &hc, nil
|
||||
}
|
||||
return nil, fmt.Errorf("health check %v not found", name)
|
||||
|
||||
return nil, fakeNotFoundErr()
|
||||
}
|
||||
|
||||
// DeleteHttpHealthCheck fakes out deleting a http health check.
|
||||
func (f *FakeHealthChecks) DeleteHttpHealthCheck(name string) error {
|
||||
healthChecks := []*compute.HttpHealthCheck{}
|
||||
exists := false
|
||||
for _, h := range f.hc {
|
||||
if h.Name == name {
|
||||
exists = true
|
||||
continue
|
||||
}
|
||||
healthChecks = append(healthChecks, h)
|
||||
func (f *FakeHealthCheckProvider) DeleteHttpHealthCheck(name string) error {
|
||||
if _, exists := f.http[name]; !exists {
|
||||
return fakeNotFoundErr()
|
||||
}
|
||||
if !exists {
|
||||
return fmt.Errorf("failed to find health check %v", name)
|
||||
}
|
||||
f.hc = healthChecks
|
||||
|
||||
delete(f.http, name)
|
||||
return nil
|
||||
}
|
||||
|
||||
// UpdateHttpHealthCheck sends the given health check as an update.
|
||||
func (f *FakeHealthChecks) UpdateHttpHealthCheck(hc *compute.HttpHealthCheck) error {
|
||||
healthChecks := []*compute.HttpHealthCheck{}
|
||||
found := false
|
||||
for _, h := range f.hc {
|
||||
if h.Name == hc.Name {
|
||||
healthChecks = append(healthChecks, hc)
|
||||
found = true
|
||||
} else {
|
||||
healthChecks = append(healthChecks, h)
|
||||
}
|
||||
func (f *FakeHealthCheckProvider) UpdateHttpHealthCheck(hc *compute.HttpHealthCheck) error {
|
||||
if _, exists := f.http[hc.Name]; !exists {
|
||||
return fakeNotFoundErr()
|
||||
}
|
||||
if !found {
|
||||
return fmt.Errorf("cannot update a non-existent health check %v", hc.Name)
|
||||
}
|
||||
f.hc = healthChecks
|
||||
|
||||
f.http[hc.Name] = *hc
|
||||
return nil
|
||||
}
|
||||
|
||||
// CreateHealthCheck fakes out http health check creation.
|
||||
func (f *FakeHealthCheckProvider) CreateHealthCheck(hc *compute.HealthCheck) error {
|
||||
v := *hc
|
||||
v.SelfLink = "https://fake.google.com/compute/healthChecks/" + hc.Name
|
||||
f.generic[hc.Name] = v
|
||||
return nil
|
||||
}
|
||||
|
||||
// GetHealthCheck fakes out getting a http health check from the cloud.
|
||||
func (f *FakeHealthCheckProvider) GetHealthCheck(name string) (*compute.HealthCheck, error) {
|
||||
if hc, found := f.generic[name]; found {
|
||||
return &hc, nil
|
||||
}
|
||||
|
||||
return nil, fakeNotFoundErr()
|
||||
}
|
||||
|
||||
// DeleteHealthCheck fakes out deleting a http health check.
|
||||
func (f *FakeHealthCheckProvider) DeleteHealthCheck(name string) error {
|
||||
if _, exists := f.generic[name]; !exists {
|
||||
return fakeNotFoundErr()
|
||||
}
|
||||
|
||||
delete(f.generic, name)
|
||||
return nil
|
||||
}
|
||||
|
||||
// UpdateHealthCheck sends the given health check as an update.
|
||||
func (f *FakeHealthCheckProvider) UpdateHealthCheck(hc *compute.HealthCheck) error {
|
||||
if _, exists := f.generic[hc.Name]; !exists {
|
||||
return fakeNotFoundErr()
|
||||
}
|
||||
|
||||
f.generic[hc.Name] = *hc
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue