123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package ipvlan
- import (
- "fmt"
- "github.com/Sirupsen/logrus"
- "github.com/docker/libnetwork/osl"
- "github.com/docker/libnetwork/types"
- )
- func (d *driver) network(nid string) *network {
- d.Lock()
- n, ok := d.networks[nid]
- d.Unlock()
- if !ok {
- logrus.Errorf("network id %s not found", nid)
- }
- return n
- }
- func (d *driver) addNetwork(n *network) {
- d.Lock()
- d.networks[n.id] = n
- d.Unlock()
- }
- func (d *driver) deleteNetwork(nid string) {
- d.Lock()
- delete(d.networks, nid)
- d.Unlock()
- }
- // getNetworks Safely returns a slice of existng networks
- func (d *driver) getNetworks() []*network {
- d.Lock()
- defer d.Unlock()
- ls := make([]*network, 0, len(d.networks))
- for _, nw := range d.networks {
- ls = append(ls, nw)
- }
- return ls
- }
- func (n *network) endpoint(eid string) *endpoint {
- n.Lock()
- defer n.Unlock()
- return n.endpoints[eid]
- }
- func (n *network) addEndpoint(ep *endpoint) {
- n.Lock()
- n.endpoints[ep.id] = ep
- n.Unlock()
- }
- func (n *network) deleteEndpoint(eid string) {
- n.Lock()
- delete(n.endpoints, eid)
- n.Unlock()
- }
- func (n *network) getEndpoint(eid string) (*endpoint, error) {
- n.Lock()
- defer n.Unlock()
- if eid == "" {
- return nil, fmt.Errorf("endpoint id %s not found", eid)
- }
- if ep, ok := n.endpoints[eid]; ok {
- return ep, nil
- }
- return nil, nil
- }
- func validateID(nid, eid string) error {
- if nid == "" {
- return fmt.Errorf("invalid network id")
- }
- if eid == "" {
- return fmt.Errorf("invalid endpoint id")
- }
- return nil
- }
- func (n *network) sandbox() osl.Sandbox {
- n.Lock()
- defer n.Unlock()
- return n.sbox
- }
- func (n *network) setSandbox(sbox osl.Sandbox) {
- n.Lock()
- n.sbox = sbox
- n.Unlock()
- }
- func (d *driver) getNetwork(id string) (*network, error) {
- d.Lock()
- defer d.Unlock()
- if id == "" {
- return nil, types.BadRequestErrorf("invalid network id: %s", id)
- }
- if nw, ok := d.networks[id]; ok {
- return nw, nil
- }
- return nil, types.NotFoundErrorf("network not found: %s", id)
- }
|