// NewPortAllocatorCustom creates a PortAllocator over a util.PortRange, calling allocatorFactory to construct the backing store. func NewPortAllocatorCustom(pr util.PortRange, allocatorFactory allocator.AllocatorFactory) *PortAllocator { max := pr.Size rangeSpec := pr.String() a := &PortAllocator{ portRange: pr, } a.alloc = allocatorFactory(max, rangeSpec) return a }
// Restore restores the pool to the previously captured state. ErrMismatchedNetwork // is returned if the provided port range doesn't exactly match the previous range. func (r *PortAllocator) Restore(pr util.PortRange, data []byte) error { if pr.String() != r.portRange.String() { return ErrMismatchedNetwork } snapshottable, ok := r.alloc.(allocator.Snapshottable) if !ok { return fmt.Errorf("not a snapshottable allocator") } return snapshottable.Restore(pr.String(), data) }
"time" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "vulcan/kubernetes/pkg/api" "vulcan/kubernetes/pkg/api/errors" client "vulcan/kubernetes/pkg/client/unversioned" "vulcan/kubernetes/pkg/fields" "vulcan/kubernetes/pkg/labels" "vulcan/kubernetes/pkg/types" "vulcan/kubernetes/pkg/util" "vulcan/kubernetes/pkg/util/wait" ) // This should match whatever the default/configured range is var ServiceNodePortRange = util.PortRange{Base: 30000, Size: 2768} var _ = Describe("Services", func() { f := NewFramework("services") var c *client.Client var extraNamespaces []string BeforeEach(func() { var err error c, err = loadClient() Expect(err).NotTo(HaveOccurred()) }) AfterEach(func() { for _, ns := range extraNamespaces {