summaryrefslogtreecommitdiff
path: root/vendor/github.com/containernetworking/plugins/plugins
diff options
context:
space:
mode:
authorReinhard Tartler <siretart@tauware.de>2020-12-02 09:24:47 -0500
committerReinhard Tartler <siretart@tauware.de>2020-12-02 09:24:58 -0500
commit29cc1453eab24cbbfcdd21b9b86a36ff3183a840 (patch)
tree6a8ea32fea737936384e95e2ba2109dfc373697c /vendor/github.com/containernetworking/plugins/plugins
parent8086b728c2d5c06e05010693cdbe64e972a31128 (diff)
delete vendor tree
Diffstat (limited to 'vendor/github.com/containernetworking/plugins/plugins')
-rw-r--r--vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/backend.go209
-rw-r--r--vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/lock.go59
-rw-r--r--vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/store.go28
3 files changed, 0 insertions, 296 deletions
diff --git a/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/backend.go b/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/backend.go
deleted file mode 100644
index 56f1638..0000000
--- a/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/backend.go
+++ /dev/null
@@ -1,209 +0,0 @@
-// Copyright 2015 CNI authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package disk
-
-import (
- "io/ioutil"
- "net"
- "os"
- "path/filepath"
- "runtime"
- "strings"
-
- "github.com/containernetworking/plugins/plugins/ipam/host-local/backend"
-)
-
-const lastIPFilePrefix = "last_reserved_ip."
-const LineBreak = "\r\n"
-
-var defaultDataDir = "/var/lib/cni/networks"
-
-// Store is a simple disk-backed store that creates one file per IP
-// address in a given directory. The contents of the file are the container ID.
-type Store struct {
- *FileLock
- dataDir string
-}
-
-// Store implements the Store interface
-var _ backend.Store = &Store{}
-
-func New(network, dataDir string) (*Store, error) {
- if dataDir == "" {
- dataDir = defaultDataDir
- }
- dir := filepath.Join(dataDir, network)
- if err := os.MkdirAll(dir, 0755); err != nil {
- return nil, err
- }
-
- lk, err := NewFileLock(dir)
- if err != nil {
- return nil, err
- }
- return &Store{lk, dir}, nil
-}
-
-func (s *Store) Reserve(id string, ifname string, ip net.IP, rangeID string) (bool, error) {
- fname := GetEscapedPath(s.dataDir, ip.String())
-
- f, err := os.OpenFile(fname, os.O_RDWR|os.O_EXCL|os.O_CREATE, 0644)
- if os.IsExist(err) {
- return false, nil
- }
- if err != nil {
- return false, err
- }
- if _, err := f.WriteString(strings.TrimSpace(id) + LineBreak + ifname); err != nil {
- f.Close()
- os.Remove(f.Name())
- return false, err
- }
- if err := f.Close(); err != nil {
- os.Remove(f.Name())
- return false, err
- }
- // store the reserved ip in lastIPFile
- ipfile := GetEscapedPath(s.dataDir, lastIPFilePrefix+rangeID)
- err = ioutil.WriteFile(ipfile, []byte(ip.String()), 0644)
- if err != nil {
- return false, err
- }
- return true, nil
-}
-
-// LastReservedIP returns the last reserved IP if exists
-func (s *Store) LastReservedIP(rangeID string) (net.IP, error) {
- ipfile := GetEscapedPath(s.dataDir, lastIPFilePrefix+rangeID)
- data, err := ioutil.ReadFile(ipfile)
- if err != nil {
- return nil, err
- }
- return net.ParseIP(string(data)), nil
-}
-
-func (s *Store) Release(ip net.IP) error {
- return os.Remove(GetEscapedPath(s.dataDir, ip.String()))
-}
-
-func (s *Store) FindByKey(id string, ifname string, match string) (bool, error) {
- found := false
-
- err := filepath.Walk(s.dataDir, func(path string, info os.FileInfo, err error) error {
- if err != nil || info.IsDir() {
- return nil
- }
- data, err := ioutil.ReadFile(path)
- if err != nil {
- return nil
- }
- if strings.TrimSpace(string(data)) == match {
- found = true
- }
- return nil
- })
- return found, err
-
-}
-
-func (s *Store) FindByID(id string, ifname string) bool {
- s.Lock()
- defer s.Unlock()
-
- found := false
- match := strings.TrimSpace(id) + LineBreak + ifname
- found, err := s.FindByKey(id, ifname, match)
-
- // Match anything created by this id
- if !found && err == nil {
- match := strings.TrimSpace(id)
- found, err = s.FindByKey(id, ifname, match)
- }
-
- return found
-}
-
-func (s *Store) ReleaseByKey(id string, ifname string, match string) (bool, error) {
- found := false
- err := filepath.Walk(s.dataDir, func(path string, info os.FileInfo, err error) error {
- if err != nil || info.IsDir() {
- return nil
- }
- data, err := ioutil.ReadFile(path)
- if err != nil {
- return nil
- }
- if strings.TrimSpace(string(data)) == match {
- if err := os.Remove(path); err != nil {
- return nil
- }
- found = true
- }
- return nil
- })
- return found, err
-
-}
-
-// N.B. This function eats errors to be tolerant and
-// release as much as possible
-func (s *Store) ReleaseByID(id string, ifname string) error {
- found := false
- match := strings.TrimSpace(id) + LineBreak + ifname
- found, err := s.ReleaseByKey(id, ifname, match)
-
- // For backwards compatibility, look for files written by a previous version
- if !found && err == nil {
- match := strings.TrimSpace(id)
- found, err = s.ReleaseByKey(id, ifname, match)
- }
- return err
-}
-
-// GetByID returns the IPs which have been allocated to the specific ID
-func (s *Store) GetByID(id string, ifname string) []net.IP {
- var ips []net.IP
-
- match := strings.TrimSpace(id) + LineBreak + ifname
- // matchOld for backwards compatibility
- matchOld := strings.TrimSpace(id)
-
- // walk through all ips in this network to get the ones which belong to a specific ID
- _ = filepath.Walk(s.dataDir, func(path string, info os.FileInfo, err error) error {
- if err != nil || info.IsDir() {
- return nil
- }
- data, err := ioutil.ReadFile(path)
- if err != nil {
- return nil
- }
- if strings.TrimSpace(string(data)) == match || strings.TrimSpace(string(data)) == matchOld {
- _, ipString := filepath.Split(path)
- if ip := net.ParseIP(ipString); ip != nil {
- ips = append(ips, ip)
- }
- }
- return nil
- })
-
- return ips
-}
-
-func GetEscapedPath(dataDir string, fname string) string {
- if runtime.GOOS == "windows" {
- fname = strings.Replace(fname, ":", "_", -1)
- }
- return filepath.Join(dataDir, fname)
-}
diff --git a/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/lock.go b/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/lock.go
deleted file mode 100644
index fe7b480..0000000
--- a/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/disk/lock.go
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2015 CNI authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package disk
-
-import (
- "github.com/alexflint/go-filemutex"
- "os"
- "path"
-)
-
-// FileLock wraps os.File to be used as a lock using flock
-type FileLock struct {
- f *filemutex.FileMutex
-}
-
-// NewFileLock opens file/dir at path and returns unlocked FileLock object
-func NewFileLock(lockPath string) (*FileLock, error) {
- fi, err := os.Stat(lockPath)
- if err != nil {
- return nil, err
- }
-
- if fi.IsDir() {
- lockPath = path.Join(lockPath, "lock")
- }
-
- f, err := filemutex.New(lockPath)
- if err != nil {
- return nil, err
- }
-
- return &FileLock{f}, nil
-}
-
-func (l *FileLock) Close() error {
- return l.f.Close()
-}
-
-// Lock acquires an exclusive lock
-func (l *FileLock) Lock() error {
- return l.f.Lock()
-}
-
-// Unlock releases the lock
-func (l *FileLock) Unlock() error {
- return l.f.Unlock()
-}
diff --git a/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/store.go b/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/store.go
deleted file mode 100644
index 7211ddf..0000000
--- a/vendor/github.com/containernetworking/plugins/plugins/ipam/host-local/backend/store.go
+++ /dev/null
@@ -1,28 +0,0 @@
-// Copyright 2015 CNI authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package backend
-
-import "net"
-
-type Store interface {
- Lock() error
- Unlock() error
- Close() error
- Reserve(id string, ifname string, ip net.IP, rangeID string) (bool, error)
- LastReservedIP(rangeID string) (net.IP, error)
- Release(ip net.IP) error
- ReleaseByID(id string, ifname string) error
- GetByID(id string, ifname string) []net.IP
-}