Browse code

Use fmt precision to limit string length

The previous code used string slices to limit the length of certain
fields like endpoint or sandbox IDs. This assumes that these strings
are at least as long as the slice length. Unfortunately, some sandbox
IDs can be smaller than 7 characters. This fix addresses this issue
by systematically converting format string calls that were taking
fixed-slice arguments to use a precision specifier in the string format
itself. From the golang fmt package documentation:

For strings, byte slices and byte arrays, however, precision limits
the length of the input to be formatted (not the size of the output),
truncating if necessary. Normally it is measured in runes, but for
these types when formatted with the %x or %X format it is measured
in bytes.

This nicely fits the desired behavior: it will limit the number of
runes considered for string interpolation to the precision value.

Signed-off-by: Chris Telfer <ctelfer@docker.com>

Chris Telfer authored on 2018/07/06 05:33:01
Showing 22 changed files
... ...
@@ -775,7 +775,7 @@ func (d *driver) deleteNetwork(nid string) error {
775 775
 		}
776 776
 
777 777
 		if err := d.storeDelete(ep); err != nil {
778
-			logrus.Warnf("Failed to remove bridge endpoint %s from store: %v", ep.id[0:7], err)
778
+			logrus.Warnf("Failed to remove bridge endpoint %.7s from store: %v", ep.id, err)
779 779
 		}
780 780
 	}
781 781
 
... ...
@@ -1050,7 +1050,7 @@ func (d *driver) CreateEndpoint(nid, eid string, ifInfo driverapi.InterfaceInfo,
1050 1050
 	}
1051 1051
 
1052 1052
 	if err = d.storeUpdate(endpoint); err != nil {
1053
-		return fmt.Errorf("failed to save bridge endpoint %s to store: %v", endpoint.id[0:7], err)
1053
+		return fmt.Errorf("failed to save bridge endpoint %.7s to store: %v", endpoint.id, err)
1054 1054
 	}
1055 1055
 
1056 1056
 	return nil
... ...
@@ -1116,7 +1116,7 @@ func (d *driver) DeleteEndpoint(nid, eid string) error {
1116 1116
 	}
1117 1117
 
1118 1118
 	if err := d.storeDelete(ep); err != nil {
1119
-		logrus.Warnf("Failed to remove bridge endpoint %s from store: %v", ep.id[0:7], err)
1119
+		logrus.Warnf("Failed to remove bridge endpoint %.7s from store: %v", ep.id, err)
1120 1120
 	}
1121 1121
 
1122 1122
 	return nil
... ...
@@ -1290,7 +1290,7 @@ func (d *driver) ProgramExternalConnectivity(nid, eid string, options map[string
1290 1290
 	}()
1291 1291
 
1292 1292
 	if err = d.storeUpdate(endpoint); err != nil {
1293
-		return fmt.Errorf("failed to update bridge endpoint %s to store: %v", endpoint.id[0:7], err)
1293
+		return fmt.Errorf("failed to update bridge endpoint %.7s to store: %v", endpoint.id, err)
1294 1294
 	}
1295 1295
 
1296 1296
 	if !network.config.EnableICC {
... ...
@@ -1332,7 +1332,7 @@ func (d *driver) RevokeExternalConnectivity(nid, eid string) error {
1332 1332
 	clearEndpointConnections(d.nlh, endpoint)
1333 1333
 
1334 1334
 	if err = d.storeUpdate(endpoint); err != nil {
1335
-		return fmt.Errorf("failed to update bridge endpoint %s to store: %v", endpoint.id[0:7], err)
1335
+		return fmt.Errorf("failed to update bridge endpoint %.7s to store: %v", endpoint.id, err)
1336 1336
 	}
1337 1337
 
1338 1338
 	return nil
... ...
@@ -62,7 +62,7 @@ func (d *driver) populateNetworks() error {
62 62
 		if err = d.createNetwork(ncfg); err != nil {
63 63
 			logrus.Warnf("could not create bridge network for id %s bridge name %s while booting up from persistent state: %v", ncfg.ID, ncfg.BridgeName, err)
64 64
 		}
65
-		logrus.Debugf("Network (%s) restored", ncfg.ID[0:7])
65
+		logrus.Debugf("Network (%.7s) restored", ncfg.ID)
66 66
 	}
67 67
 
68 68
 	return nil
... ...
@@ -82,16 +82,16 @@ func (d *driver) populateEndpoints() error {
82 82
 		ep := kvo.(*bridgeEndpoint)
83 83
 		n, ok := d.networks[ep.nid]
84 84
 		if !ok {
85
-			logrus.Debugf("Network (%s) not found for restored bridge endpoint (%s)", ep.nid[0:7], ep.id[0:7])
86
-			logrus.Debugf("Deleting stale bridge endpoint (%s) from store", ep.id[0:7])
85
+			logrus.Debugf("Network (%.7s) not found for restored bridge endpoint (%.7s)", ep.nid, ep.id)
86
+			logrus.Debugf("Deleting stale bridge endpoint (%.7s) from store", ep.id)
87 87
 			if err := d.storeDelete(ep); err != nil {
88
-				logrus.Debugf("Failed to delete stale bridge endpoint (%s) from store", ep.id[0:7])
88
+				logrus.Debugf("Failed to delete stale bridge endpoint (%.7s) from store", ep.id)
89 89
 			}
90 90
 			continue
91 91
 		}
92 92
 		n.endpoints[ep.id] = ep
93 93
 		n.restorePortAllocations(ep)
94
-		logrus.Debugf("Endpoint (%s) restored to network (%s)", ep.id[0:7], ep.nid[0:7])
94
+		logrus.Debugf("Endpoint (%.7s) restored to network (%.7s)", ep.id, ep.nid)
95 95
 	}
96 96
 
97 97
 	return nil
... ...
@@ -382,7 +382,7 @@ func (n *bridgeNetwork) restorePortAllocations(ep *bridgeEndpoint) {
382 382
 	ep.extConnConfig.PortBindings = ep.portMapping
383 383
 	_, err := n.allocatePorts(ep, n.config.DefaultBindingIP, n.driver.config.EnableUserlandProxy)
384 384
 	if err != nil {
385
-		logrus.Warnf("Failed to reserve existing port mapping for endpoint %s:%v", ep.id[0:7], err)
385
+		logrus.Warnf("Failed to reserve existing port mapping for endpoint %.7s:%v", ep.id, err)
386 386
 	}
387 387
 	ep.extConnConfig.PortBindings = tmp
388 388
 }
... ...
@@ -53,7 +53,7 @@ func (d *driver) CreateEndpoint(nid, eid string, ifInfo driverapi.InterfaceInfo,
53 53
 	}
54 54
 
55 55
 	if err := d.storeUpdate(ep); err != nil {
56
-		return fmt.Errorf("failed to save ipvlan endpoint %s to store: %v", ep.id[0:7], err)
56
+		return fmt.Errorf("failed to save ipvlan endpoint %.7s to store: %v", ep.id, err)
57 57
 	}
58 58
 
59 59
 	n.addEndpoint(ep)
... ...
@@ -82,7 +82,7 @@ func (d *driver) DeleteEndpoint(nid, eid string) error {
82 82
 	}
83 83
 
84 84
 	if err := d.storeDelete(ep); err != nil {
85
-		logrus.Warnf("Failed to remove ipvlan endpoint %s from store: %v", ep.id[0:7], err)
85
+		logrus.Warnf("Failed to remove ipvlan endpoint %.7s from store: %v", ep.id, err)
86 86
 	}
87 87
 	n.deleteEndpoint(ep.id)
88 88
 	return nil
... ...
@@ -117,7 +117,7 @@ func (d *driver) Join(nid, eid string, sboxKey string, jinfo driverapi.JoinInfo,
117 117
 		return err
118 118
 	}
119 119
 	if err = d.storeUpdate(ep); err != nil {
120
-		return fmt.Errorf("failed to save ipvlan endpoint %s to store: %v", ep.id[0:7], err)
120
+		return fmt.Errorf("failed to save ipvlan endpoint %.7s to store: %v", ep.id, err)
121 121
 	}
122 122
 
123 123
 	return nil
... ...
@@ -156,7 +156,7 @@ func (d *driver) DeleteNetwork(nid string) error {
156 156
 		}
157 157
 
158 158
 		if err := d.storeDelete(ep); err != nil {
159
-			logrus.Warnf("Failed to remove ipvlan endpoint %s from store: %v", ep.id[0:7], err)
159
+			logrus.Warnf("Failed to remove ipvlan endpoint %.7s from store: %v", ep.id, err)
160 160
 		}
161 161
 	}
162 162
 	// delete the *network
... ...
@@ -95,15 +95,15 @@ func (d *driver) populateEndpoints() error {
95 95
 		ep := kvo.(*endpoint)
96 96
 		n, ok := d.networks[ep.nid]
97 97
 		if !ok {
98
-			logrus.Debugf("Network (%s) not found for restored ipvlan endpoint (%s)", ep.nid[0:7], ep.id[0:7])
99
-			logrus.Debugf("Deleting stale ipvlan endpoint (%s) from store", ep.id[0:7])
98
+			logrus.Debugf("Network (%.7s) not found for restored ipvlan endpoint (%.7s)", ep.nid, ep.id)
99
+			logrus.Debugf("Deleting stale ipvlan endpoint (%.7s) from store", ep.id)
100 100
 			if err := d.storeDelete(ep); err != nil {
101
-				logrus.Debugf("Failed to delete stale ipvlan endpoint (%s) from store", ep.id[0:7])
101
+				logrus.Debugf("Failed to delete stale ipvlan endpoint (%.7s) from store", ep.id)
102 102
 			}
103 103
 			continue
104 104
 		}
105 105
 		n.endpoints[ep.id] = ep
106
-		logrus.Debugf("Endpoint (%s) restored to network (%s)", ep.id[0:7], ep.nid[0:7])
106
+		logrus.Debugf("Endpoint (%.7s) restored to network (%.7s)", ep.id, ep.nid)
107 107
 	}
108 108
 
109 109
 	return nil
... ...
@@ -58,7 +58,7 @@ func (d *driver) CreateEndpoint(nid, eid string, ifInfo driverapi.InterfaceInfo,
58 58
 	}
59 59
 
60 60
 	if err := d.storeUpdate(ep); err != nil {
61
-		return fmt.Errorf("failed to save macvlan endpoint %s to store: %v", ep.id[0:7], err)
61
+		return fmt.Errorf("failed to save macvlan endpoint %.7s to store: %v", ep.id, err)
62 62
 	}
63 63
 
64 64
 	n.addEndpoint(ep)
... ...
@@ -87,7 +87,7 @@ func (d *driver) DeleteEndpoint(nid, eid string) error {
87 87
 	}
88 88
 
89 89
 	if err := d.storeDelete(ep); err != nil {
90
-		logrus.Warnf("Failed to remove macvlan endpoint %s from store: %v", ep.id[0:7], err)
90
+		logrus.Warnf("Failed to remove macvlan endpoint %.7s from store: %v", ep.id, err)
91 91
 	}
92 92
 
93 93
 	n.deleteEndpoint(ep.id)
... ...
@@ -78,7 +78,7 @@ func (d *driver) Join(nid, eid string, sboxKey string, jinfo driverapi.JoinInfo,
78 78
 		return err
79 79
 	}
80 80
 	if err := d.storeUpdate(ep); err != nil {
81
-		return fmt.Errorf("failed to save macvlan endpoint %s to store: %v", ep.id[0:7], err)
81
+		return fmt.Errorf("failed to save macvlan endpoint %.7s to store: %v", ep.id, err)
82 82
 	}
83 83
 	return nil
84 84
 }
... ...
@@ -160,7 +160,7 @@ func (d *driver) DeleteNetwork(nid string) error {
160 160
 		}
161 161
 
162 162
 		if err := d.storeDelete(ep); err != nil {
163
-			logrus.Warnf("Failed to remove macvlan endpoint %s from store: %v", ep.id[0:7], err)
163
+			logrus.Warnf("Failed to remove macvlan endpoint %.7s from store: %v", ep.id, err)
164 164
 		}
165 165
 	}
166 166
 	// delete the *network
... ...
@@ -95,15 +95,15 @@ func (d *driver) populateEndpoints() error {
95 95
 		ep := kvo.(*endpoint)
96 96
 		n, ok := d.networks[ep.nid]
97 97
 		if !ok {
98
-			logrus.Debugf("Network (%s) not found for restored macvlan endpoint (%s)", ep.nid[0:7], ep.id[0:7])
99
-			logrus.Debugf("Deleting stale macvlan endpoint (%s) from store", ep.id[0:7])
98
+			logrus.Debugf("Network (%.7s) not found for restored macvlan endpoint (%.7s)", ep.nid, ep.id)
99
+			logrus.Debugf("Deleting stale macvlan endpoint (%.7s) from store", ep.id)
100 100
 			if err := d.storeDelete(ep); err != nil {
101
-				logrus.Debugf("Failed to delete stale macvlan endpoint (%s) from store", ep.id[0:7])
101
+				logrus.Debugf("Failed to delete stale macvlan endpoint (%.7s) from store", ep.id)
102 102
 			}
103 103
 			continue
104 104
 		}
105 105
 		n.endpoints[ep.id] = ep
106
-		logrus.Debugf("Endpoint (%s) restored to network (%s)", ep.id[0:7], ep.nid[0:7])
106
+		logrus.Debugf("Endpoint (%.7s) restored to network (%.7s)", ep.id, ep.nid)
107 107
 	}
108 108
 
109 109
 	return nil
... ...
@@ -78,7 +78,7 @@ func (e *encrMap) String() string {
78 78
 }
79 79
 
80 80
 func (d *driver) checkEncryption(nid string, rIP net.IP, vxlanID uint32, isLocal, add bool) error {
81
-	logrus.Debugf("checkEncryption(%s, %v, %d, %t)", nid[0:7], rIP, vxlanID, isLocal)
81
+	logrus.Debugf("checkEncryption(%.7s, %v, %d, %t)", nid, rIP, vxlanID, isLocal)
82 82
 
83 83
 	n := d.network(nid)
84 84
 	if n == nil || !n.secure {
... ...
@@ -101,7 +101,7 @@ func (d *driver) checkEncryption(nid string, rIP net.IP, vxlanID uint32, isLocal
101 101
 			}
102 102
 			return false
103 103
 		}); err != nil {
104
-			logrus.Warnf("Failed to retrieve list of participating nodes in overlay network %s: %v", nid[0:5], err)
104
+			logrus.Warnf("Failed to retrieve list of participating nodes in overlay network %.5s: %v", nid, err)
105 105
 		}
106 106
 	default:
107 107
 		if len(d.network(nid).endpoints) > 0 {
... ...
@@ -69,7 +69,7 @@ func (d *driver) Join(nid, eid string, sboxKey string, jinfo driverapi.JoinInfo,
69 69
 	ep.ifName = containerIfName
70 70
 
71 71
 	if err = d.writeEndpointToStore(ep); err != nil {
72
-		return fmt.Errorf("failed to update overlay endpoint %s to local data store: %v", ep.id[0:7], err)
72
+		return fmt.Errorf("failed to update overlay endpoint %.7s to local data store: %v", ep.id, err)
73 73
 	}
74 74
 
75 75
 	// Set the container interface and its peer MTU to 1450 to allow
... ...
@@ -90,7 +90,7 @@ func (d *driver) CreateEndpoint(nid, eid string, ifInfo driverapi.InterfaceInfo,
90 90
 	n.addEndpoint(ep)
91 91
 
92 92
 	if err := d.writeEndpointToStore(ep); err != nil {
93
-		return fmt.Errorf("failed to update overlay endpoint %s to local store: %v", ep.id[0:7], err)
93
+		return fmt.Errorf("failed to update overlay endpoint %.7s to local store: %v", ep.id, err)
94 94
 	}
95 95
 
96 96
 	return nil
... ...
@@ -116,7 +116,7 @@ func (d *driver) DeleteEndpoint(nid, eid string) error {
116 116
 	n.deleteEndpoint(eid)
117 117
 
118 118
 	if err := d.deleteEndpointFromStore(ep); err != nil {
119
-		logrus.Warnf("Failed to delete overlay endpoint %s from local store: %v", ep.id[0:7], err)
119
+		logrus.Warnf("Failed to delete overlay endpoint %.7s from local store: %v", ep.id, err)
120 120
 	}
121 121
 
122 122
 	if ep.ifName == "" {
... ...
@@ -274,7 +274,7 @@ func (d *driver) DeleteNetwork(nid string) error {
274 274
 		}
275 275
 
276 276
 		if err := d.deleteEndpointFromStore(ep); err != nil {
277
-			logrus.Warnf("Failed to delete overlay endpoint %s from local store: %v", ep.id[0:7], err)
277
+			logrus.Warnf("Failed to delete overlay endpoint %.7s from local store: %v", ep.id, err)
278 278
 		}
279 279
 	}
280 280
 	// flush the peerDB entries
... ...
@@ -137,10 +137,10 @@ func (d *driver) restoreEndpoints() error {
137 137
 		ep := kvo.(*endpoint)
138 138
 		n := d.network(ep.nid)
139 139
 		if n == nil {
140
-			logrus.Debugf("Network (%s) not found for restored endpoint (%s)", ep.nid[0:7], ep.id[0:7])
141
-			logrus.Debugf("Deleting stale overlay endpoint (%s) from store", ep.id[0:7])
140
+			logrus.Debugf("Network (%.7s) not found for restored endpoint (%.7s)", ep.nid, ep.id)
141
+			logrus.Debugf("Deleting stale overlay endpoint (%.7s) from store", ep.id)
142 142
 			if err := d.deleteEndpointFromStore(ep); err != nil {
143
-				logrus.Debugf("Failed to delete stale overlay endpoint (%s) from store", ep.id[0:7])
143
+				logrus.Debugf("Failed to delete stale overlay endpoint (%.7s) from store", ep.id)
144 144
 			}
145 145
 			continue
146 146
 		}
... ...
@@ -80,7 +80,7 @@ func (n *network) removeEndpointWithAddress(addr *net.IPNet) {
80 80
 		_, err := hcsshim.HNSEndpointRequest("DELETE", networkEndpoint.profileID, "")
81 81
 
82 82
 		if err != nil {
83
-			logrus.Debugf("Failed to delete stale overlay endpoint (%s) from hns", networkEndpoint.id[0:7])
83
+			logrus.Debugf("Failed to delete stale overlay endpoint (%.7s) from hns", networkEndpoint.id)
84 84
 		}
85 85
 	}
86 86
 }
... ...
@@ -415,7 +415,7 @@ func (d *driver) DeleteNetwork(nid string) error {
415 415
 	// delele endpoints belong to this network
416 416
 	for _, ep := range n.endpoints {
417 417
 		if err := d.storeDelete(ep); err != nil {
418
-			logrus.Warnf("Failed to remove bridge endpoint %s from store: %v", ep.id[0:7], err)
418
+			logrus.Warnf("Failed to remove bridge endpoint %.7s from store: %v", ep.id, err)
419 419
 		}
420 420
 	}
421 421
 
... ...
@@ -704,7 +704,7 @@ func (d *driver) CreateEndpoint(nid, eid string, ifInfo driverapi.InterfaceInfo,
704 704
 	}
705 705
 
706 706
 	if err = d.storeUpdate(endpoint); err != nil {
707
-		logrus.Errorf("Failed to save endpoint %s to store: %v", endpoint.id[0:7], err)
707
+		logrus.Errorf("Failed to save endpoint %.7s to store: %v", endpoint.id, err)
708 708
 	}
709 709
 
710 710
 	return nil
... ...
@@ -731,7 +731,7 @@ func (d *driver) DeleteEndpoint(nid, eid string) error {
731 731
 	}
732 732
 
733 733
 	if err := d.storeDelete(ep); err != nil {
734
-		logrus.Warnf("Failed to remove bridge endpoint %s from store: %v", ep.id[0:7], err)
734
+		logrus.Warnf("Failed to remove bridge endpoint %.7s from store: %v", ep.id, err)
735 735
 	}
736 736
 	return nil
737 737
 }
... ...
@@ -64,7 +64,7 @@ func (d *driver) populateNetworks() error {
64 64
 		if err = d.createNetwork(ncfg); err != nil {
65 65
 			logrus.Warnf("could not create windows network for id %s hnsid %s while booting up from persistent state: %v", ncfg.ID, ncfg.HnsID, err)
66 66
 		}
67
-		logrus.Debugf("Network  %v (%s) restored", d.name, ncfg.ID[0:7])
67
+		logrus.Debugf("Network  %v (%.7s) restored", d.name, ncfg.ID)
68 68
 	}
69 69
 
70 70
 	return nil
... ...
@@ -87,15 +87,15 @@ func (d *driver) populateEndpoints() error {
87 87
 		}
88 88
 		n, ok := d.networks[ep.nid]
89 89
 		if !ok {
90
-			logrus.Debugf("Network (%s) not found for restored endpoint (%s)", ep.nid[0:7], ep.id[0:7])
91
-			logrus.Debugf("Deleting stale endpoint (%s) from store", ep.id[0:7])
90
+			logrus.Debugf("Network (%.7s) not found for restored endpoint (%.7s)", ep.nid, ep.id)
91
+			logrus.Debugf("Deleting stale endpoint (%.7s) from store", ep.id)
92 92
 			if err := d.storeDelete(ep); err != nil {
93
-				logrus.Debugf("Failed to delete stale endpoint (%s) from store", ep.id[0:7])
93
+				logrus.Debugf("Failed to delete stale endpoint (%.7s) from store", ep.id)
94 94
 			}
95 95
 			continue
96 96
 		}
97 97
 		n.endpoints[ep.id] = ep
98
-		logrus.Debugf("Endpoint (%s) restored to network (%s)", ep.id[0:7], ep.nid[0:7])
98
+		logrus.Debugf("Endpoint (%.7s) restored to network (%.7s)", ep.id, ep.nid)
99 99
 	}
100 100
 
101 101
 	return nil
... ...
@@ -1390,7 +1390,7 @@ func (n *network) addSvcRecords(eID, name, serviceID string, epIP, epIPv6 net.IP
1390 1390
 		return
1391 1391
 	}
1392 1392
 
1393
-	logrus.Debugf("%s (%s).addSvcRecords(%s, %s, %s, %t) %s sid:%s", eID, n.ID()[0:7], name, epIP, epIPv6, ipMapUpdate, method, serviceID)
1393
+	logrus.Debugf("%s (%.7s).addSvcRecords(%s, %s, %s, %t) %s sid:%s", eID, n.ID(), name, epIP, epIPv6, ipMapUpdate, method, serviceID)
1394 1394
 
1395 1395
 	c := n.getController()
1396 1396
 	c.Lock()
... ...
@@ -1426,7 +1426,7 @@ func (n *network) deleteSvcRecords(eID, name, serviceID string, epIP net.IP, epI
1426 1426
 		return
1427 1427
 	}
1428 1428
 
1429
-	logrus.Debugf("%s (%s).deleteSvcRecords(%s, %s, %s, %t) %s sid:%s ", eID, n.ID()[0:7], name, epIP, epIPv6, ipMapUpdate, method, serviceID)
1429
+	logrus.Debugf("%s (%.7s).deleteSvcRecords(%s, %s, %s, %t) %s sid:%s ", eID, n.ID(), name, epIP, epIPv6, ipMapUpdate, method, serviceID)
1430 1430
 
1431 1431
 	c := n.getController()
1432 1432
 	c.Lock()
... ...
@@ -52,7 +52,7 @@ func (l *logWriter) Write(p []byte) (int, error) {
52 52
 
53 53
 // SetKey adds a new key to the key ring
54 54
 func (nDB *NetworkDB) SetKey(key []byte) {
55
-	logrus.Debugf("Adding key %s", hex.EncodeToString(key)[0:5])
55
+	logrus.Debugf("Adding key %.5s", hex.EncodeToString(key))
56 56
 	nDB.Lock()
57 57
 	defer nDB.Unlock()
58 58
 	for _, dbKey := range nDB.config.Keys {
... ...
@@ -69,7 +69,7 @@ func (nDB *NetworkDB) SetKey(key []byte) {
69 69
 // SetPrimaryKey sets the given key as the primary key. This should have
70 70
 // been added apriori through SetKey
71 71
 func (nDB *NetworkDB) SetPrimaryKey(key []byte) {
72
-	logrus.Debugf("Primary Key %s", hex.EncodeToString(key)[0:5])
72
+	logrus.Debugf("Primary Key %.5s", hex.EncodeToString(key))
73 73
 	nDB.RLock()
74 74
 	defer nDB.RUnlock()
75 75
 	for _, dbKey := range nDB.config.Keys {
... ...
@@ -85,7 +85,7 @@ func (nDB *NetworkDB) SetPrimaryKey(key []byte) {
85 85
 // RemoveKey removes a key from the key ring. The key being removed
86 86
 // can't be the primary key
87 87
 func (nDB *NetworkDB) RemoveKey(key []byte) {
88
-	logrus.Debugf("Remove Key %s", hex.EncodeToString(key)[0:5])
88
+	logrus.Debugf("Remove Key %.5s", hex.EncodeToString(key))
89 89
 	nDB.Lock()
90 90
 	defer nDB.Unlock()
91 91
 	for i, dbKey := range nDB.config.Keys {
... ...
@@ -123,7 +123,7 @@ func (nDB *NetworkDB) clusterInit() error {
123 123
 	var err error
124 124
 	if len(nDB.config.Keys) > 0 {
125 125
 		for i, key := range nDB.config.Keys {
126
-			logrus.Debugf("Encryption key %d: %s", i+1, hex.EncodeToString(key)[0:5])
126
+			logrus.Debugf("Encryption key %d: %.5s", i+1, hex.EncodeToString(key))
127 127
 		}
128 128
 		nDB.keyring, err = memberlist.NewKeyring(nDB.config.Keys, nDB.config.Keys[0])
129 129
 		if err != nil {
... ...
@@ -244,7 +244,7 @@ func (c *controller) sandboxCleanup(activeSandboxes map[string]interface{}) {
244 244
 		}
245 245
 		sb.osSbox, err = osl.NewSandbox(sb.Key(), create, isRestore)
246 246
 		if err != nil {
247
-			logrus.Errorf("failed to create osl sandbox while trying to restore sandbox %s%s: %v", sb.ID()[0:7], msg, err)
247
+			logrus.Errorf("failed to create osl sandbox while trying to restore sandbox %.7s%s: %v", sb.ID(), msg, err)
248 248
 			continue
249 249
 		}
250 250
 
... ...
@@ -43,7 +43,7 @@ func (sb *sandbox) populateLoadBalancers(ep *endpoint) {
43 43
 
44 44
 	if n.ingress {
45 45
 		if err := addRedirectRules(sb.Key(), eIP, ep.ingressPorts); err != nil {
46
-			logrus.Errorf("Failed to add redirect rules for ep %s (%s): %v", ep.Name(), ep.ID()[0:7], err)
46
+			logrus.Errorf("Failed to add redirect rules for ep %s (%.7s): %v", ep.Name(), ep.ID(), err)
47 47
 		}
48 48
 	}
49 49
 }
... ...
@@ -106,7 +106,7 @@ func (n *network) addLBBackend(ip net.IP, lb *loadBalancer) {
106 106
 
107 107
 	i, err := ipvs.New(sb.Key())
108 108
 	if err != nil {
109
-		logrus.Errorf("Failed to create an ipvs handle for sbox %s (%s,%s) for lb addition: %v", sb.ID()[0:7], sb.ContainerID()[0:7], sb.Key(), err)
109
+		logrus.Errorf("Failed to create an ipvs handle for sbox %.7s (%.7s,%s) for lb addition: %v", sb.ID(), sb.ContainerID(), sb.Key(), err)
110 110
 		return
111 111
 	}
112 112
 	defer i.Close()
... ...
@@ -142,14 +142,14 @@ func (n *network) addLBBackend(ip net.IP, lb *loadBalancer) {
142 142
 			}
143 143
 		}
144 144
 
145
-		logrus.Debugf("Creating service for vip %s fwMark %d ingressPorts %#v in sbox %s (%s)", lb.vip, lb.fwMark, lb.service.ingressPorts, sb.ID()[0:7], sb.ContainerID()[0:7])
145
+		logrus.Debugf("Creating service for vip %s fwMark %d ingressPorts %#v in sbox %.7s (%.7s)", lb.vip, lb.fwMark, lb.service.ingressPorts, sb.ID(), sb.ContainerID())
146 146
 		if err := invokeFWMarker(sb.Key(), lb.vip, lb.fwMark, lb.service.ingressPorts, eIP, false); err != nil {
147
-			logrus.Errorf("Failed to add firewall mark rule in sbox %s (%s): %v", sb.ID()[0:7], sb.ContainerID()[0:7], err)
147
+			logrus.Errorf("Failed to add firewall mark rule in sbox %.7s (%.7s): %v", sb.ID(), sb.ContainerID(), err)
148 148
 			return
149 149
 		}
150 150
 
151 151
 		if err := i.NewService(s); err != nil && err != syscall.EEXIST {
152
-			logrus.Errorf("Failed to create a new service for vip %s fwmark %d in sbox %s (%s): %v", lb.vip, lb.fwMark, sb.ID()[0:7], sb.ContainerID()[0:7], err)
152
+			logrus.Errorf("Failed to create a new service for vip %s fwmark %d in sbox %.7s (%.7s): %v", lb.vip, lb.fwMark, sb.ID(), sb.ContainerID(), err)
153 153
 			return
154 154
 		}
155 155
 	}
... ...
@@ -164,7 +164,7 @@ func (n *network) addLBBackend(ip net.IP, lb *loadBalancer) {
164 164
 	// destination.
165 165
 	s.SchedName = ""
166 166
 	if err := i.NewDestination(s, d); err != nil && err != syscall.EEXIST {
167
-		logrus.Errorf("Failed to create real server %s for vip %s fwmark %d in sbox %s (%s): %v", ip, lb.vip, lb.fwMark, sb.ID()[0:7], sb.ContainerID()[0:7], err)
167
+		logrus.Errorf("Failed to create real server %s for vip %s fwmark %d in sbox %.7s (%.7s): %v", ip, lb.vip, lb.fwMark, sb.ID(), sb.ContainerID(), err)
168 168
 	}
169 169
 }
170 170
 
... ...
@@ -189,7 +189,7 @@ func (n *network) rmLBBackend(ip net.IP, lb *loadBalancer, rmService bool, fullR
189 189
 
190 190
 	i, err := ipvs.New(sb.Key())
191 191
 	if err != nil {
192
-		logrus.Errorf("Failed to create an ipvs handle for sbox %s (%s,%s) for lb removal: %v", sb.ID()[0:7], sb.ContainerID()[0:7], sb.Key(), err)
192
+		logrus.Errorf("Failed to create an ipvs handle for sbox %.7s (%.7s,%s) for lb removal: %v", sb.ID(), sb.ContainerID(), sb.Key(), err)
193 193
 		return
194 194
 	}
195 195
 	defer i.Close()
... ...
@@ -207,19 +207,19 @@ func (n *network) rmLBBackend(ip net.IP, lb *loadBalancer, rmService bool, fullR
207 207
 
208 208
 	if fullRemove {
209 209
 		if err := i.DelDestination(s, d); err != nil && err != syscall.ENOENT {
210
-			logrus.Errorf("Failed to delete real server %s for vip %s fwmark %d in sbox %s (%s): %v", ip, lb.vip, lb.fwMark, sb.ID()[0:7], sb.ContainerID()[0:7], err)
210
+			logrus.Errorf("Failed to delete real server %s for vip %s fwmark %d in sbox %.7s (%.7s): %v", ip, lb.vip, lb.fwMark, sb.ID(), sb.ContainerID(), err)
211 211
 		}
212 212
 	} else {
213 213
 		d.Weight = 0
214 214
 		if err := i.UpdateDestination(s, d); err != nil && err != syscall.ENOENT {
215
-			logrus.Errorf("Failed to set LB weight of real server %s to 0 for vip %s fwmark %d in sbox %s (%s): %v", ip, lb.vip, lb.fwMark, sb.ID()[0:7], sb.ContainerID()[0:7], err)
215
+			logrus.Errorf("Failed to set LB weight of real server %s to 0 for vip %s fwmark %d in sbox %.7s (%.7s): %v", ip, lb.vip, lb.fwMark, sb.ID(), sb.ContainerID(), err)
216 216
 		}
217 217
 	}
218 218
 
219 219
 	if rmService {
220 220
 		s.SchedName = ipvs.RoundRobin
221 221
 		if err := i.DelService(s); err != nil && err != syscall.ENOENT {
222
-			logrus.Errorf("Failed to delete service for vip %s fwmark %d in sbox %s (%s): %v", lb.vip, lb.fwMark, sb.ID()[0:7], sb.ContainerID()[0:7], err)
222
+			logrus.Errorf("Failed to delete service for vip %s fwmark %d in sbox %.7s (%.7s): %v", lb.vip, lb.fwMark, sb.ID(), sb.ContainerID(), err)
223 223
 		}
224 224
 
225 225
 		if sb.ingress {
... ...
@@ -234,7 +234,7 @@ func (n *network) rmLBBackend(ip net.IP, lb *loadBalancer, rmService bool, fullR
234 234
 		}
235 235
 
236 236
 		if err := invokeFWMarker(sb.Key(), lb.vip, lb.fwMark, lb.service.ingressPorts, eIP, true); err != nil {
237
-			logrus.Errorf("Failed to delete firewall mark rule in sbox %s (%s): %v", sb.ID()[0:7], sb.ContainerID()[0:7], err)
237
+			logrus.Errorf("Failed to delete firewall mark rule in sbox %.7s (%.7s): %v", sb.ID(), sb.ContainerID(), err)
238 238
 		}
239 239
 
240 240
 		// Remove IP alias from the VIP to the endpoint