mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 01:40:07 +00:00
GCE: Add functions for Alpha address and forwarding rules
This commit is contained in:
parent
6858bb4e60
commit
84c9c25edf
@ -21,6 +21,7 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -71,6 +72,16 @@ func (gce *GCECloud) ReserveRegionAddress(addr *compute.Address, region string)
|
|||||||
return gce.waitForRegionOp(op, region, mc)
|
return gce.waitForRegionOp(op, region, mc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ReserveAlphaRegionAddress creates an Alpha, regional address.
|
||||||
|
func (gce *GCECloud) ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error {
|
||||||
|
mc := newAddressMetricContext("reserve", region)
|
||||||
|
op, err := gce.serviceAlpha.Addresses.Insert(gce.projectID, region, addr).Do()
|
||||||
|
if err != nil {
|
||||||
|
return mc.Observe(err)
|
||||||
|
}
|
||||||
|
return gce.waitForRegionOp(op, region, mc)
|
||||||
|
}
|
||||||
|
|
||||||
// DeleteRegionAddress deletes a region address by name.
|
// DeleteRegionAddress deletes a region address by name.
|
||||||
func (gce *GCECloud) DeleteRegionAddress(name, region string) error {
|
func (gce *GCECloud) DeleteRegionAddress(name, region string) error {
|
||||||
mc := newAddressMetricContext("delete", region)
|
mc := newAddressMetricContext("delete", region)
|
||||||
@ -88,6 +99,13 @@ func (gce *GCECloud) GetRegionAddress(name, region string) (*compute.Address, er
|
|||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAlphaRegionAddress returns the Alpha, regional address by name.
|
||||||
|
func (gce *GCECloud) GetAlphaRegionAddress(name, region string) (*computealpha.Address, error) {
|
||||||
|
mc := newAddressMetricContext("get", region)
|
||||||
|
v, err := gce.serviceAlpha.Addresses.Get(gce.projectID, region, name).Do()
|
||||||
|
return v, mc.Observe(err)
|
||||||
|
}
|
||||||
|
|
||||||
// GetRegionAddressByIP returns the regional address matching the given IP
|
// GetRegionAddressByIP returns the regional address matching the given IP
|
||||||
// address.
|
// address.
|
||||||
func (gce *GCECloud) GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error) {
|
func (gce *GCECloud) GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error) {
|
||||||
|
@ -20,6 +20,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
"google.golang.org/api/googleapi"
|
"google.golang.org/api/googleapi"
|
||||||
)
|
)
|
||||||
@ -103,3 +104,11 @@ func (cas *FakeCloudAddressService) GetRegionAddressByIP(region, ipAddress strin
|
|||||||
}
|
}
|
||||||
return nil, makeGoogleAPINotFoundError("")
|
return nil, makeGoogleAPINotFoundError("")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (cas *FakeCloudAddressService) GetAlphaRegionAddress(name, region string) (*computealpha.Address, error) {
|
||||||
|
return nil, fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cas *FakeCloudAddressService) ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error {
|
||||||
|
return fmt.Errorf("not implemented")
|
||||||
|
}
|
||||||
|
@ -19,6 +19,7 @@ package gce
|
|||||||
import (
|
import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
compute "google.golang.org/api/compute/v1"
|
compute "google.golang.org/api/compute/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -85,6 +86,13 @@ func (gce *GCECloud) GetRegionForwardingRule(name, region string) (*compute.Forw
|
|||||||
return v, mc.Observe(err)
|
return v, mc.Observe(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAlphaRegionForwardingRule returns the Alpha forwarding rule by name & region.
|
||||||
|
func (gce *GCECloud) GetAlphaRegionForwardingRule(name, region string) (*computealpha.ForwardingRule, error) {
|
||||||
|
mc := newForwardingRuleMetricContext("get", region)
|
||||||
|
v, err := gce.serviceAlpha.ForwardingRules.Get(gce.projectID, region, name).Do()
|
||||||
|
return v, mc.Observe(err)
|
||||||
|
}
|
||||||
|
|
||||||
// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
|
// ListRegionForwardingRules lists all RegionalForwardingRules in the project & region.
|
||||||
func (gce *GCECloud) ListRegionForwardingRules(region string) (*compute.ForwardingRuleList, error) {
|
func (gce *GCECloud) ListRegionForwardingRules(region string) (*compute.ForwardingRuleList, error) {
|
||||||
mc := newForwardingRuleMetricContext("list", region)
|
mc := newForwardingRuleMetricContext("list", region)
|
||||||
@ -105,6 +113,18 @@ func (gce *GCECloud) CreateRegionForwardingRule(rule *compute.ForwardingRule, re
|
|||||||
return gce.waitForRegionOp(op, region, mc)
|
return gce.waitForRegionOp(op, region, mc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// CreateAlphaRegionForwardingRule creates and returns an Alpha
|
||||||
|
// forwarding fule in the given region.
|
||||||
|
func (gce *GCECloud) CreateAlphaRegionForwardingRule(rule *computealpha.ForwardingRule, region string) error {
|
||||||
|
mc := newForwardingRuleMetricContext("create", region)
|
||||||
|
op, err := gce.serviceAlpha.ForwardingRules.Insert(gce.projectID, region, rule).Do()
|
||||||
|
if err != nil {
|
||||||
|
return mc.Observe(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return gce.waitForRegionOp(op, region, mc)
|
||||||
|
}
|
||||||
|
|
||||||
// DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region.
|
// DeleteRegionForwardingRule deletes the RegionalForwardingRule by name & region.
|
||||||
func (gce *GCECloud) DeleteRegionForwardingRule(name, region string) error {
|
func (gce *GCECloud) DeleteRegionForwardingRule(name, region string) error {
|
||||||
mc := newForwardingRuleMetricContext("delete", region)
|
mc := newForwardingRuleMetricContext("delete", region)
|
||||||
|
@ -16,7 +16,10 @@ limitations under the License.
|
|||||||
|
|
||||||
package gce
|
package gce
|
||||||
|
|
||||||
import compute "google.golang.org/api/compute/v1"
|
import (
|
||||||
|
computealpha "google.golang.org/api/compute/v0.alpha"
|
||||||
|
compute "google.golang.org/api/compute/v1"
|
||||||
|
)
|
||||||
|
|
||||||
// CloudAddressService is an interface for managing addresses
|
// CloudAddressService is an interface for managing addresses
|
||||||
type CloudAddressService interface {
|
type CloudAddressService interface {
|
||||||
@ -25,4 +28,8 @@ type CloudAddressService interface {
|
|||||||
GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error)
|
GetRegionAddressByIP(region, ipAddress string) (*compute.Address, error)
|
||||||
// TODO: Mock `DeleteRegionAddress(name, region string) endpoint
|
// TODO: Mock `DeleteRegionAddress(name, region string) endpoint
|
||||||
// TODO: Mock Global endpoints
|
// TODO: Mock Global endpoints
|
||||||
|
|
||||||
|
// Alpha API.
|
||||||
|
GetAlphaRegionAddress(name, region string) (*computealpha.Address, error)
|
||||||
|
ReserveAlphaRegionAddress(addr *computealpha.Address, region string) error
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user