Browse code

Add getter function for Default Address Pools

ipamutils has two default address pool. Instead of allowing them to
be accessed directly, adding get functions so that other packages
can use get APIs.

Signed-off-by: selansen <elango.siva@docker.com>

selansen authored on 2018/08/17 04:48:42
Showing 2 changed files
... ...
@@ -45,9 +45,10 @@ func NewAllocator(lcDs, glDs datastore.DataStore) (*Allocator, error) {
45 45
 	a := &Allocator{}
46 46
 
47 47
 	// Load predefined subnet pools
48
+
48 49
 	a.predefined = map[string][]*net.IPNet{
49
-		localAddressSpace:  ipamutils.PredefinedLocalScopeDefaultNetworks,
50
-		globalAddressSpace: ipamutils.PredefinedGlobalScopeDefaultNetworks,
50
+		localAddressSpace:  ipamutils.GetLocalScopeDefaultNetworks(),
51
+		globalAddressSpace: ipamutils.GetGlobalScopeDefaultNetworks(),
51 52
 	}
52 53
 
53 54
 	// Initialize asIndices map
... ...
@@ -56,6 +56,20 @@ func configDefaultNetworks(defaultAddressPool []*NetworkToSplit, result *[]*net.
56 56
 	return nil
57 57
 }
58 58
 
59
+// GetGlobalScopeDefaultNetworks returns PredefinedGlobalScopeDefaultNetworks
60
+func GetGlobalScopeDefaultNetworks() []*net.IPNet {
61
+	mutex.Lock()
62
+	defer mutex.Unlock()
63
+	return PredefinedGlobalScopeDefaultNetworks
64
+}
65
+
66
+// GetLocalScopeDefaultNetworks returns PredefinedLocalScopeDefaultNetworks
67
+func GetLocalScopeDefaultNetworks() []*net.IPNet {
68
+	mutex.Lock()
69
+	defer mutex.Unlock()
70
+	return PredefinedLocalScopeDefaultNetworks
71
+}
72
+
59 73
 // ConfigGlobalScopeDefaultNetworks configures global default pool.
60 74
 // Ideally this will be called from SwarmKit as part of swarm init
61 75
 func ConfigGlobalScopeDefaultNetworks(defaultAddressPool []*NetworkToSplit) error {