ifstate 1.11.5__py3-none-any.whl → 1.11.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ifstate
3
- Version: 1.11.5
3
+ Version: 1.11.7
4
4
  Summary: Manage host interface settings in a declarative manner
5
5
  Home-page: https://ifstate.net/
6
6
  Author: Thomas Liske
@@ -2,7 +2,7 @@ ifstate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  ifstate/ifstate.py,sha256=nKwjyC945wVUdNlFwucsyoIloEvB3yxr3ggNjhE3XxQ,7866
3
3
  ifstate/shell.py,sha256=7_JFpi4icr9MijynDzbb0v5mxhFsng6PCC4m3uQ255A,2177
4
4
  ifstate/vrrp.py,sha256=GOSwQFf3IrcWF5DbQCJQqZ7p33TaFMEVp8LwyRDolWM,4016
5
- libifstate/__init__.py,sha256=9d00JiE3iCW1nLG73858AudDkzXl8Ahn2dEPAG_juEc,30521
5
+ libifstate/__init__.py,sha256=hfGwzBulOivZb66Uh0Pa1LvIDD6qALIikzQYF4uLVHE,30521
6
6
  libifstate/exception.py,sha256=-4WgzgXHXdzLdAkaj1sJw_PVQDefzyoyH3EMXpdUN70,2407
7
7
  libifstate/log.py,sha256=M-wyjU-QcauMmZd0QK65dgdoDSZC-LmQ-ZDeiPfhGzc,3953
8
8
  libifstate/util.py,sha256=6YQLCLvK5lV1dmP8rDgesBeze5DM3qC2egJ2Gw0KZVI,9190
@@ -13,24 +13,24 @@ libifstate/bpf/map.py,sha256=cLHNMvRBDNW2yVCEf3z242_oRdU0HqVbFEYVkKXng0w,10818
13
13
  libifstate/brport/__init__.py,sha256=NzdA8F4hr2se1bXKNnyKZbvOFlCWBq_cdjwsL1H0Y-o,2964
14
14
  libifstate/fdb/__init__.py,sha256=jMplRZZQKkgwFQT2L7Ua4YCdLKwOzkd43_6OFtet2No,6262
15
15
  libifstate/link/__init__.py,sha256=QZggoC-bIscqwVedqVycaSqS1CmXB3Bx3m2FZei8Q_4,115
16
- libifstate/link/base.py,sha256=zoNU1yts5qmM7aQq2YNUPvKwPle-snh2hh1tdtty3Zg,32955
16
+ libifstate/link/base.py,sha256=oXWSMtb96BpQsI-jIDHfdNlPH6DiFBoE2VU7ky44-_I,32962
17
17
  libifstate/link/physical.py,sha256=cJiq-MCfy-3XQoU-OxzgfPZZtu_pJ8u2ioJgn9VYdGk,560
18
18
  libifstate/link/tun.py,sha256=m55o5cwO3h3DCLofUR-68fM4ggLoTKElp6ZJ2LrJSCc,959
19
19
  libifstate/link/veth.py,sha256=DtohI4PNlWoPijROf6AA6pikCvDhFXh15zQSWQBbfsA,1989
20
20
  libifstate/neighbour/__init__.py,sha256=FJJpbJvqnxvOEii6QDMYzW5jQDEbiEy71GQOEbqaS48,2463
21
- libifstate/netns/__init__.py,sha256=fsxsXRICrxnzSr5RiRp5_LHG8LuR0-cuFjZoiK50XlI,8942
21
+ libifstate/netns/__init__.py,sha256=wyF6hKr4dOcl1EUFccQQurBD22ckUjbgX2WecTKslNs,9079
22
22
  libifstate/parser/__init__.py,sha256=byz1W0G7UewVc5FFie-ti3UZjGK3-75wHIaOeq0oySQ,88
23
23
  libifstate/parser/base.py,sha256=4Y_kaUysbgQRM9u_Kg3Lr_5GWFGdTXDmP4EC3McsNzU,4628
24
24
  libifstate/parser/yaml.py,sha256=u9D9nPfVhYADTd01EYxFYIywnTBccNF1solOcGeLUjM,1345
25
25
  libifstate/routing/__init__.py,sha256=ufNsUoe-YecKOyVO3m4rtZdSMqblbd3sazFflsb7otQ,19159
26
26
  libifstate/sysctl/__init__.py,sha256=L2gkoLnac_HM6RbCaKmsEuDTNj2m7U4Rjw42TEti0kg,3074
27
27
  libifstate/tc/__init__.py,sha256=inPdampCOIr_4oKNB3awqMkW0Eh4fpPh9jvSba6sPVg,12092
28
- libifstate/wireguard/__init__.py,sha256=knI1heZiTgysbczvii3XNdnrfqVnzIQZcbsOo81u9EE,5640
28
+ libifstate/wireguard/__init__.py,sha256=1HoqHqixzCInqWsL7gkuABTz9DlhZdJj5kiso-cQoV0,5903
29
29
  libifstate/xdp/__init__.py,sha256=X1xhEIGng7R5d5F4KsChykT2g6H-XBRWbWABijoYDQA,7208
30
30
  schema/ifstate.conf.schema.json,sha256=p8yMFCqGdWgJVjc-5x1I3bjbKKeIk9EwpJkinlI91B8,191657
31
- ifstate-1.11.5.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
32
- ifstate-1.11.5.dist-info/METADATA,sha256=gfEuzhLkfcHTygDRP3ZuSL78P3fUJIJxlMPO2BxM6po,1385
33
- ifstate-1.11.5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
34
- ifstate-1.11.5.dist-info/entry_points.txt,sha256=HF6jX7Uu_nF1Ly-J9uEPeiRapOxnM6LuHsb2y6Mt-k4,52
35
- ifstate-1.11.5.dist-info/top_level.txt,sha256=A7peI7aKBaM69fsiSPvMbL3rzTKZZr5qDxKC-pHMGdE,19
36
- ifstate-1.11.5.dist-info/RECORD,,
31
+ ifstate-1.11.7.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
32
+ ifstate-1.11.7.dist-info/METADATA,sha256=u4RNPSOqo4t7YYCfR4MUCSH11mu_2GOSfEJ6LFVIzI0,1385
33
+ ifstate-1.11.7.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
34
+ ifstate-1.11.7.dist-info/entry_points.txt,sha256=HF6jX7Uu_nF1Ly-J9uEPeiRapOxnM6LuHsb2y6Mt-k4,52
35
+ ifstate-1.11.7.dist-info/top_level.txt,sha256=A7peI7aKBaM69fsiSPvMbL3rzTKZZr5qDxKC-pHMGdE,19
36
+ ifstate-1.11.7.dist-info/RECORD,,
libifstate/__init__.py CHANGED
@@ -47,7 +47,7 @@ import json
47
47
  import errno
48
48
  import logging
49
49
 
50
- __version__ = "1.11.5"
50
+ __version__ = "1.11.7"
51
51
 
52
52
 
53
53
  class IfState():
libifstate/link/base.py CHANGED
@@ -572,20 +572,22 @@ class Link(ABC):
572
572
  # set sysctl settings if required
573
573
  sysctl.apply(self.settings['ifname'], do_apply)
574
574
 
575
+ # set master if required
576
+ if master is not None:
577
+ try:
578
+ self.netns.ipr.link('set', index=self.idx, master=master)
579
+ except Exception as err:
580
+ if not isinstance(err, netlinkerror_classes):
581
+ raise
582
+ excpts.add('set', err, master=master)
583
+
575
584
  # set brport settings if required
576
585
  if self.brport:
577
586
  if self.brport.has_changes(self.idx):
578
587
  self.brport.apply(do_apply, self.idx, excpts)
579
588
 
580
- # set master and state if required
589
+ # set state if required
581
590
  if not excpts.has_op('brport'):
582
- if master is not None:
583
- try:
584
- self.netns.ipr.link('set', index=self.idx, master=master)
585
- except Exception as err:
586
- if not isinstance(err, netlinkerror_classes):
587
- raise
588
- excpts.add('set', err, master=master)
589
591
  if state is not None:
590
592
  try:
591
593
  self.netns.ipr.link('set', index=self.idx, state=state)
@@ -66,7 +66,10 @@ class NetNameSpace():
66
66
  memo[id(self)] = result
67
67
  for k, v in self.__dict__.items():
68
68
  if k == 'ipr':
69
- setattr(result, k, v)
69
+ if self.netns is None:
70
+ setattr(result, k, IPRouteExt())
71
+ else:
72
+ setattr(result, k, NetNSExt(self.netns))
70
73
  else:
71
74
  setattr(result, k, deepcopy(v, memo))
72
75
  return result
@@ -38,7 +38,14 @@ class WireGuard():
38
38
  memo[id(self)] = result
39
39
  for k, v in self.__dict__.items():
40
40
  if k == 'wg':
41
- setattr(result, k, v)
41
+ if self.netns.netns is not None:
42
+ pyroute2.netns.pushns(self.netns.netns)
43
+
44
+ try:
45
+ setattr(result, k, WG())
46
+ finally:
47
+ if self.netns.netns is not None:
48
+ pyroute2.netns.popns()
42
49
  else:
43
50
  setattr(result, k, deepcopy(v, memo))
44
51
  return result