annet 0.14.3__py3-none-any.whl → 0.14.5__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.
Potentially problematic release.
This version of annet might be problematic. Click here for more details.
- annet/adapters/netbox/common/storage_opts.py +2 -1
- annet/adapters/netbox/provider.py +3 -0
- annet/adapters/netbox/v37/storage.py +5 -4
- annet/annlib/netdev/devdb/data/devdb.json +6 -0
- annet/api/__init__.py +3 -3
- annet/cli.py +4 -5
- annet/cli_args.py +4 -9
- annet/configs/context.yml +7 -0
- annet/connectors.py +2 -1
- annet/storage.py +23 -6
- {annet-0.14.3.dist-info → annet-0.14.5.dist-info}/METADATA +2 -2
- {annet-0.14.3.dist-info → annet-0.14.5.dist-info}/RECORD +17 -17
- {annet-0.14.3.dist-info → annet-0.14.5.dist-info}/WHEEL +1 -1
- {annet-0.14.3.dist-info → annet-0.14.5.dist-info}/AUTHORS +0 -0
- {annet-0.14.3.dist-info → annet-0.14.5.dist-info}/LICENSE +0 -0
- {annet-0.14.3.dist-info → annet-0.14.5.dist-info}/entry_points.txt +0 -0
- {annet-0.14.3.dist-info → annet-0.14.5.dist-info}/top_level.txt +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import os
|
|
2
|
+
from typing import Any
|
|
2
3
|
|
|
3
4
|
|
|
4
5
|
class NetboxStorageOpts:
|
|
@@ -7,7 +8,7 @@ class NetboxStorageOpts:
|
|
|
7
8
|
self.token = token
|
|
8
9
|
|
|
9
10
|
@classmethod
|
|
10
|
-
def
|
|
11
|
+
def parse_params(cls, conf_params: dict[str, str] | None, cli_opts: Any):
|
|
11
12
|
return cls(
|
|
12
13
|
url=os.getenv("NETBOX_URL", "http://localhost"),
|
|
13
14
|
token=os.getenv("NETBOX_TOKEN", "").strip(),
|
|
@@ -4,7 +4,7 @@ from ipaddress import ip_interface
|
|
|
4
4
|
from collections import defaultdict
|
|
5
5
|
|
|
6
6
|
from adaptix import P
|
|
7
|
-
from adaptix.conversion import impl_converter, link
|
|
7
|
+
from adaptix.conversion import impl_converter, link, link_constant
|
|
8
8
|
from annetbox.v37 import models as api_models
|
|
9
9
|
from annetbox.v37.client_sync import NetboxV37
|
|
10
10
|
|
|
@@ -24,13 +24,13 @@ logger = getLogger(__name__)
|
|
|
24
24
|
@impl_converter(recipe=[
|
|
25
25
|
link(P[api_models.Device].name, P[models.NetboxDevice].hostname),
|
|
26
26
|
link(P[api_models.Device].name, P[models.NetboxDevice].fqdn),
|
|
27
|
+
link_constant(P[models.NetboxDevice].neighbours, value=None),
|
|
27
28
|
])
|
|
28
29
|
def extend_device_base(
|
|
29
30
|
device: api_models.Device,
|
|
30
31
|
interfaces: List[models.Interface],
|
|
31
32
|
hw: Optional[HardwareView],
|
|
32
33
|
breed: str,
|
|
33
|
-
neighbours: Optional[List[models.NetboxDevice]],
|
|
34
34
|
storage: Storage,
|
|
35
35
|
) -> models.NetboxDevice:
|
|
36
36
|
...
|
|
@@ -45,7 +45,7 @@ def extend_device(
|
|
|
45
45
|
platform_name: str = ""
|
|
46
46
|
if device.platform:
|
|
47
47
|
platform_name = device.platform.name
|
|
48
|
-
|
|
48
|
+
res = extend_device_base(
|
|
49
49
|
device=device,
|
|
50
50
|
interfaces=interfaces,
|
|
51
51
|
breed=get_breed(
|
|
@@ -57,9 +57,10 @@ def extend_device(
|
|
|
57
57
|
device.device_type.model,
|
|
58
58
|
platform_name,
|
|
59
59
|
),
|
|
60
|
-
neighbours=neighbours,
|
|
61
60
|
storage=storage,
|
|
62
61
|
)
|
|
62
|
+
res.neighbours = neighbours
|
|
63
|
+
return res
|
|
63
64
|
|
|
64
65
|
|
|
65
66
|
@impl_converter
|
|
@@ -52,6 +52,8 @@
|
|
|
52
52
|
"Huawei.CE.CE8800.CE8850": " CE8850",
|
|
53
53
|
"Huawei.CE.CE8800.CE8851": " CE8851",
|
|
54
54
|
"Huawei.CE.CE9800": " CE98\\d\\d",
|
|
55
|
+
"Huawei.DC": " DC\\d+",
|
|
56
|
+
"Huawei.DC.DC908": " DC908",
|
|
55
57
|
"Huawei.Quidway": " S\\d+",
|
|
56
58
|
"Huawei.Quidway.S2x": " S2\\d{3}",
|
|
57
59
|
"Huawei.Quidway.S2x.S2300": " S23\\d\\d",
|
|
@@ -129,6 +131,10 @@
|
|
|
129
131
|
"Aruba.AP.AP500": " AP-5\\d\\d",
|
|
130
132
|
"Aruba.AP.AP500.AP514": " AP-514",
|
|
131
133
|
"Aruba.AP.AP500.AP515": " AP-515",
|
|
134
|
+
"Aruba.AP.AP600": " AP-6\\d\\d",
|
|
135
|
+
"Aruba.AP.AP600.AP615": " AP-615",
|
|
136
|
+
"Aruba.AP.AP600.AP635": " AP-635",
|
|
137
|
+
"Aruba.AP.AP600.AP655": " AP-655",
|
|
132
138
|
"Aruba.AP.IAP": " IAP-",
|
|
133
139
|
"Aruba.AP.IAP.IAP300": " IAP-3\\d\\d",
|
|
134
140
|
"Aruba.AP.IAP.IAP300.IAP304": " IAP-304",
|
annet/api/__init__.py
CHANGED
|
@@ -45,7 +45,7 @@ from annet.output import (
|
|
|
45
45
|
)
|
|
46
46
|
from annet.parallel import Parallel, TaskResult
|
|
47
47
|
from annet.reference import RefTracker
|
|
48
|
-
from annet.storage import Device,
|
|
48
|
+
from annet.storage import Device, get_storage
|
|
49
49
|
from annet.types import Diff, ExitCode, OldNewResult, Op, PCDiff, PCDiffFile
|
|
50
50
|
|
|
51
51
|
|
|
@@ -218,8 +218,8 @@ def log_host_progress_cb(pool: Parallel, task_result: TaskResult):
|
|
|
218
218
|
stacklevel=2,
|
|
219
219
|
)
|
|
220
220
|
args = cast(cli_args.QueryOptions, pool.args[0])
|
|
221
|
-
connector =
|
|
222
|
-
storage_opts = connector.opts().
|
|
221
|
+
connector, connector_opts = get_storage()
|
|
222
|
+
storage_opts = connector.opts().parse_params(connector_opts, args)
|
|
223
223
|
with connector.storage()(storage_opts) as storage:
|
|
224
224
|
fqdns = storage.resolve_fdnds_by_query(args.query)
|
|
225
225
|
PoolProgressLogger(device_fqdns=fqdns)(pool, task_result)
|
annet/cli.py
CHANGED
|
@@ -19,7 +19,7 @@ from annet.diff import gen_sort_diff
|
|
|
19
19
|
from annet.gen import Loader, old_raw
|
|
20
20
|
from annet.lib import get_context_path, repair_context_file
|
|
21
21
|
from annet.output import output_driver_connector, OutputDriver
|
|
22
|
-
from annet.storage import
|
|
22
|
+
from annet.storage import get_storage
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
def fill_base_args(parser: ArgParser, pkg_name: str, logging_config: str):
|
|
@@ -62,12 +62,11 @@ def _gen_current_items(
|
|
|
62
62
|
@contextmanager
|
|
63
63
|
def get_loader(gen_args: cli_args.GenOptions, args: cli_args.QueryOptions):
|
|
64
64
|
exit_stack = ExitStack()
|
|
65
|
-
connectors = storage_connector.get_all()
|
|
66
65
|
storages = []
|
|
67
66
|
with exit_stack:
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
connector, connector_opts = get_storage()
|
|
68
|
+
storage_opts = connector.opts().parse_params(connector_opts, args)
|
|
69
|
+
storages.append(exit_stack.enter_context(connector.storage()(storage_opts)))
|
|
71
70
|
yield Loader(*storages, args=gen_args)
|
|
72
71
|
|
|
73
72
|
|
annet/cli_args.py
CHANGED
|
@@ -10,7 +10,7 @@ from valkit.common import valid_string_list
|
|
|
10
10
|
|
|
11
11
|
from annet.argparse import Arg, ArgGroup, DefaultFromEnv
|
|
12
12
|
from annet.hardware import hardware_connector
|
|
13
|
-
from annet.storage import Query,
|
|
13
|
+
from annet.storage import Query, get_storage
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
# ====
|
|
@@ -361,14 +361,9 @@ class QueryOptionsBase(CacheOptions):
|
|
|
361
361
|
def __init__(self, *args, **kwargs):
|
|
362
362
|
super().__init__(*args, **kwargs)
|
|
363
363
|
if not isinstance(self.query, Query):
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
elif len(connectors) == 1:
|
|
368
|
-
query_type = connectors[0].query()
|
|
369
|
-
self.query = query_type.new(self.query, hosts_range=self.hosts_range)
|
|
370
|
-
else:
|
|
371
|
-
logging.warning("Multiple connectors found, skip parsing query")
|
|
364
|
+
storage, _ = get_storage()
|
|
365
|
+
query_type = storage.query()
|
|
366
|
+
self.query = query_type.new(self.query, hosts_range=self.hosts_range)
|
|
372
367
|
|
|
373
368
|
|
|
374
369
|
class QueryOptions(QueryOptionsBase):
|
annet/configs/context.yml
CHANGED
|
@@ -10,9 +10,16 @@ generators:
|
|
|
10
10
|
default:
|
|
11
11
|
- annet_generators.example
|
|
12
12
|
|
|
13
|
+
storage:
|
|
14
|
+
default:
|
|
15
|
+
adapter: annet.adapters.file.provider
|
|
16
|
+
params:
|
|
17
|
+
path: /path/to/file
|
|
18
|
+
|
|
13
19
|
context:
|
|
14
20
|
default:
|
|
15
21
|
connection: default
|
|
16
22
|
generators: default
|
|
23
|
+
storage: default
|
|
17
24
|
|
|
18
25
|
selected_context: default
|
annet/connectors.py
CHANGED
|
@@ -3,6 +3,7 @@ from abc import ABC
|
|
|
3
3
|
from functools import cached_property
|
|
4
4
|
from importlib.metadata import entry_points
|
|
5
5
|
from typing import Generic, Optional, Type, TypeVar, List
|
|
6
|
+
from annet.lib import get_context
|
|
6
7
|
|
|
7
8
|
T = TypeVar("T")
|
|
8
9
|
|
|
@@ -33,7 +34,7 @@ class Connector(ABC, Generic[T]):
|
|
|
33
34
|
res = self._classes[0]
|
|
34
35
|
return res(*args, **kwargs)
|
|
35
36
|
|
|
36
|
-
def get_all(self, *args, **kwargs) -> T:
|
|
37
|
+
def get_all(self, *args, **kwargs) -> list[T]:
|
|
37
38
|
if self._classes is None:
|
|
38
39
|
self._classes = self._entry_point or [self._get_default()]
|
|
39
40
|
|
annet/storage.py
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import abc
|
|
2
2
|
from typing import Any, Iterable, Optional, Type, Union, Protocol
|
|
3
|
-
|
|
4
|
-
try:
|
|
5
|
-
from annet.connectors import Connector
|
|
6
|
-
except ImportError:
|
|
7
|
-
from noc.annushka.annet.connectors import Connector # noqa: F401
|
|
3
|
+
from annet.connectors import Connector, get_context
|
|
8
4
|
|
|
9
5
|
|
|
10
6
|
class _StorageConnector(Connector["StorageProvider"]):
|
|
@@ -28,6 +24,10 @@ class StorageProvider(abc.ABC):
|
|
|
28
24
|
def query(self) -> Type["Query"]:
|
|
29
25
|
pass
|
|
30
26
|
|
|
27
|
+
@abc.abstractmethod
|
|
28
|
+
def name(self) -> str:
|
|
29
|
+
pass
|
|
30
|
+
|
|
31
31
|
|
|
32
32
|
class Storage(abc.ABC):
|
|
33
33
|
@abc.abstractmethod
|
|
@@ -69,7 +69,7 @@ class Storage(abc.ABC):
|
|
|
69
69
|
class StorageOpts(abc.ABC):
|
|
70
70
|
@classmethod
|
|
71
71
|
@abc.abstractmethod
|
|
72
|
-
def
|
|
72
|
+
def parse_params(cls, conf_params: dict[str, str] | None, cli_opts: Any):
|
|
73
73
|
pass
|
|
74
74
|
|
|
75
75
|
|
|
@@ -123,3 +123,20 @@ class Device(Protocol):
|
|
|
123
123
|
@abc.abstractmethod
|
|
124
124
|
def breed(self):
|
|
125
125
|
pass
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def get_storage() -> (Storage, dict[str, Any]):
|
|
129
|
+
connectors = storage_connector.get_all()
|
|
130
|
+
seen: list[str] = []
|
|
131
|
+
if context_storage := get_context().get("storage"):
|
|
132
|
+
for connector in connectors:
|
|
133
|
+
con_name = connector.name()
|
|
134
|
+
seen.append(con_name)
|
|
135
|
+
if "adapter" not in context_storage:
|
|
136
|
+
raise Exception("adapter is not set in %s" % context_storage)
|
|
137
|
+
if context_storage["adapter"] == con_name:
|
|
138
|
+
return connector, context_storage.get("params", {})
|
|
139
|
+
else:
|
|
140
|
+
raise Exception("unknown storage %s: seen %s" % (context_storage["adapter"], seen))
|
|
141
|
+
else:
|
|
142
|
+
return connectors[0], {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: annet
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.5
|
|
4
4
|
Summary: annet
|
|
5
5
|
Home-page: https://github.com/annetutil/annet
|
|
6
6
|
License: MIT
|
|
@@ -21,6 +21,6 @@ Requires-Dist: contextlog >=1.1
|
|
|
21
21
|
Requires-Dist: valkit >=0.1.4
|
|
22
22
|
Requires-Dist: aiohttp >=3.8.4
|
|
23
23
|
Requires-Dist: yarl >=1.8.2
|
|
24
|
-
Requires-Dist: adaptix ==3.0.
|
|
24
|
+
Requires-Dist: adaptix ==3.0.0b7
|
|
25
25
|
Requires-Dist: dataclass-rest ==0.4
|
|
26
26
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
annet/__init__.py,sha256=oyElxAW97sHgQccGafhaWVBveBn1gSjjdP_xHROaRLg,2139
|
|
2
2
|
annet/annet.py,sha256=TMdEuM7GJQ4TjRVmuK3bCTZN-21lxjQ9sXqEdILUuBk,725
|
|
3
3
|
annet/argparse.py,sha256=MoBD0LPnHdA6HU7z1uQNArYlkD92znoeGIFTMnS4dRM,12608
|
|
4
|
-
annet/cli.py,sha256=
|
|
5
|
-
annet/cli_args.py,sha256=
|
|
6
|
-
annet/connectors.py,sha256=
|
|
4
|
+
annet/cli.py,sha256=MxdH5m4r2MfXYwCbgSDUqjSibxw7VzSg7_hsB47RWnw,9601
|
|
5
|
+
annet/cli_args.py,sha256=1RZ_Sy5oSiiUNzf4FIefvUa_s-JsR8IYd-SvN7apocw,15823
|
|
6
|
+
annet/connectors.py,sha256=fJXwSjOnI7xu571nMspgXmvQZmjXP8mWp8pWoHFAEVQ,2511
|
|
7
7
|
annet/deploy.py,sha256=B8E0P_VvCrS2URjFvgmUiIkHp95g7pAWfmT34igaDeo,18893
|
|
8
8
|
annet/diff.py,sha256=zLcaCnb4lZRUb7frpH1CstQ3kacRcCblZs1uLG8J5lk,3391
|
|
9
9
|
annet/executor.py,sha256=EaeQ_JeRFuUUHUoR2LXDcNvY7IVg0eA2d6zSmQVJt-M,19216
|
|
@@ -16,25 +16,25 @@ annet/output.py,sha256=hJNGzL4Z3KgvqaCBkkmuuiXPhb64F1QV8YHkwnfhaaI,6852
|
|
|
16
16
|
annet/parallel.py,sha256=hLkzEht0KhzmzUWDdO4QFYQHzhxs3wPlTA8DxbB2ziw,17160
|
|
17
17
|
annet/patching.py,sha256=nILbY5oJajN0b1j3f0HEJm05H3HVThnWvB7vDVh7UQw,559
|
|
18
18
|
annet/reference.py,sha256=B8mH8VUMcecPnzULiTVb_kTQ7jQrCL7zp4pfIZQa5fk,4035
|
|
19
|
-
annet/storage.py,sha256=
|
|
19
|
+
annet/storage.py,sha256=DU-j-I2bQHva_ZQOT407TnGOHx1rd0AA_W7OcLXiPzM,3086
|
|
20
20
|
annet/tabparser.py,sha256=ZjiI43ZVbrpMVR8qNbTbNh_U3oZ26VDc_2Y9wkkDkYA,874
|
|
21
21
|
annet/text_term_format.py,sha256=CHb6viv45vmYl-SK1A1vyPHGhaEni6jVybBusaQnct8,2813
|
|
22
22
|
annet/tracing.py,sha256=ndpM-au1c88uBBpOuH_z52qWZL773edYozNyys_wA68,4044
|
|
23
23
|
annet/types.py,sha256=f2HwqoKa6AucwFwDMszoouB6m1B8n6VmdjHMktO30Kc,7175
|
|
24
24
|
annet/adapters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
25
|
annet/adapters/netbox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
-
annet/adapters/netbox/provider.py,sha256=
|
|
26
|
+
annet/adapters/netbox/provider.py,sha256=Gymku2Ad7um4GR9MqzQzm2o2cBLHLhIYbF1Ytl0r0MA,1076
|
|
27
27
|
annet/adapters/netbox/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
28
|
annet/adapters/netbox/common/client.py,sha256=-lWZmphD-OPuLIHNKhW_h2bnjrVaiyKYAD_MUPasEbo,2483
|
|
29
29
|
annet/adapters/netbox/common/manufacturer.py,sha256=van_-9-3cnBadZkF3Srae_m8cUSjf8KQCCCHFcdeQyo,1758
|
|
30
30
|
annet/adapters/netbox/common/models.py,sha256=bJP6lIWFB85AW5gLNyfd0VHeqEtYIdLJcNH9r8cb8RI,2859
|
|
31
31
|
annet/adapters/netbox/common/query.py,sha256=OgUuF-bvshpoBUkrOs0tsMUAhjTsttzx3VV30ryFl0Y,577
|
|
32
32
|
annet/adapters/netbox/common/status_client.py,sha256=W4nTb2yvBlJ2UkWUmUhKQ2PaSQb1shjhHj5ebb4s2s4,591
|
|
33
|
-
annet/adapters/netbox/common/storage_opts.py,sha256=
|
|
33
|
+
annet/adapters/netbox/common/storage_opts.py,sha256=idOm1na_2Axdi4MdLN4tAsPvsp5zBtJYD9j7cUiI-W8,400
|
|
34
34
|
annet/adapters/netbox/v24/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
35
|
annet/adapters/netbox/v24/storage.py,sha256=ogCu5XXIpcpPtuz7dWfDFIbqtz8k5G96PL6mhAQWwBU,6026
|
|
36
36
|
annet/adapters/netbox/v37/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
|
-
annet/adapters/netbox/v37/storage.py,sha256=
|
|
37
|
+
annet/adapters/netbox/v37/storage.py,sha256=plqHzb_jH0Etagmg3K8lmNw5hOWUocoSZtAPBlnnOQY,7524
|
|
38
38
|
annet/annlib/__init__.py,sha256=fT1l4xV5fqqg8HPw9HqmZVN2qwS8i6X1aIm2zGDjxKY,252
|
|
39
39
|
annet/annlib/command.py,sha256=uuBddMQphtn8P5MO5kzIa8_QrtMns-k05VeKv1bcAuA,1043
|
|
40
40
|
annet/annlib/diff.py,sha256=UPt3kYFQdQdVVy3ePYzNHPAxMVmHxCrCnZnMCV6ou2Q,4587
|
|
@@ -49,7 +49,7 @@ annet/annlib/types.py,sha256=VHU0CBADfYmO0xzB_c5f-mcuU3dUumuJczQnqGlib9M,852
|
|
|
49
49
|
annet/annlib/netdev/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
50
|
annet/annlib/netdev/db.py,sha256=fI_u5aya4l61mbYSjj4JwlVfi3s7obt2jqERSuXGRUI,1634
|
|
51
51
|
annet/annlib/netdev/devdb/__init__.py,sha256=aKYjjLbJebdKBjnGDpVLQdSqrV2JL24spGm58tmMWVU,892
|
|
52
|
-
annet/annlib/netdev/devdb/data/devdb.json,sha256=
|
|
52
|
+
annet/annlib/netdev/devdb/data/devdb.json,sha256=8U-2p2yCE6jHdBehASiQoQdJ7c2_Hc9SFGefNLaGiBo,5287
|
|
53
53
|
annet/annlib/netdev/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
54
|
annet/annlib/netdev/views/dump.py,sha256=XJ6UO6sYSO5pIoe5R4eTQmKwx0_JJ71_h8QSYAURtyk,4184
|
|
55
55
|
annet/annlib/netdev/views/hardware.py,sha256=o-w-k1bOORWwEnSGsDq-9Q_oIeH3yQv9eiCJn_UgG-Y,3324
|
|
@@ -61,8 +61,8 @@ annet/annlib/rbparser/platform.py,sha256=iyqy4A-6vUKM4j6hrOA6tsgWBXk7LcvkFrS2QHg
|
|
|
61
61
|
annet/annlib/rbparser/syntax.py,sha256=eEUmszwPjdw57aofUYNQVcaxHPNV9yx9JNapjYY-BGM,3572
|
|
62
62
|
annet/annlib/rulebook/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
63
|
annet/annlib/rulebook/common.py,sha256=9kCZwZpsH5UliF2OzaN9nLs2eLlz_d__4L7_oZ3SrCw,16054
|
|
64
|
-
annet/api/__init__.py,sha256
|
|
65
|
-
annet/configs/context.yml,sha256=
|
|
64
|
+
annet/api/__init__.py,sha256=-G9wlYePC3ZgNo1p8r17vmx0WLb3UNvCw3ZJ9UhYJ-I,33169
|
|
65
|
+
annet/configs/context.yml,sha256=jzAQX9WbjFw_nsju8FLCCGfRc4ZXD0Mhb5pvO9emegI,413
|
|
66
66
|
annet/configs/logging.yaml,sha256=Hu42lRK248dssp9TgkbHCaZNl0E6f4IChGb0XaQnTVo,970
|
|
67
67
|
annet/generators/__init__.py,sha256=ACMH9UQ4I3uq2b8nDzOn2dgYxreDq4_3ojOGwht0-No,15543
|
|
68
68
|
annet/generators/base.py,sha256=rgQLcQBPZm4ecbKmRhVOpBR-GFJAiVfdb_y5f2-LUR8,3670
|
|
@@ -124,10 +124,10 @@ annet/rulebook/texts/routeros.rul,sha256=ipfxjj0mjFef6IsUlupqx4BY_Je_OUb8u_U1019
|
|
|
124
124
|
annet_generators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
125
125
|
annet_generators/example/__init__.py,sha256=zVd8_DrXuOASrNzg2Ab94rPyvJff83L-_HppDFxnUjM,228
|
|
126
126
|
annet_generators/example/lldp.py,sha256=68CLrK7vxTQQy9XIBxtywuEdBNlIlfXGYj8_wYWs5UI,1146
|
|
127
|
-
annet-0.14.
|
|
128
|
-
annet-0.14.
|
|
129
|
-
annet-0.14.
|
|
130
|
-
annet-0.14.
|
|
131
|
-
annet-0.14.
|
|
132
|
-
annet-0.14.
|
|
133
|
-
annet-0.14.
|
|
127
|
+
annet-0.14.5.dist-info/AUTHORS,sha256=rh3w5P6gEgqmuC-bw-HB68vBCr-yIBFhVL0PG4hguLs,878
|
|
128
|
+
annet-0.14.5.dist-info/LICENSE,sha256=yPxl7dno02Pw7gAcFPIFONzx_gapwDoPXsIsh6Y7lC0,1079
|
|
129
|
+
annet-0.14.5.dist-info/METADATA,sha256=afiQ_c_4hpqasJGxN74HLYQmV-sgVK3yeiGQO1ys0AQ,694
|
|
130
|
+
annet-0.14.5.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
|
|
131
|
+
annet-0.14.5.dist-info/entry_points.txt,sha256=yHimujIzR2bwNIbb--MTs_GpXiAve89Egpu2LlgTEkg,119
|
|
132
|
+
annet-0.14.5.dist-info/top_level.txt,sha256=QsoTZBsUtwp_FEcmRwuN8QITBmLOZFqjssRfKilGbP8,23
|
|
133
|
+
annet-0.14.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|