From 78421585a5e7092c9809f8fbf606cecc075c8f8a Mon Sep 17 00:00:00 2001 From: Jonathan Lundy Date: Fri, 26 Jun 2020 10:04:57 -0600 Subject: [PATCH] remove .rpsl/config in favor of schema/SCHEMA-SCHEMA --- .gitignore | 5 +---- data/.rpsl/config | 15 -------------- data/schema/NAMESPACE-SCHEMA | 10 ---------- data/schema/SCHEMA-SCHEMA | 29 ++++++++++++++++++---------- utils/registry/dn42/rpsl/config.py | 10 +++++----- utils/registry/dn42/rpsl/filedom.py | 2 ++ utils/registry/rpsl_init/__init__.py | 4 ++-- 7 files changed, 29 insertions(+), 46 deletions(-) delete mode 100644 data/.rpsl/config delete mode 100644 data/schema/NAMESPACE-SCHEMA diff --git a/.gitignore b/.gitignore index 9e44d8388..a7ac324e2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,4 @@ lib/ whoisd/ __pycache__ -/data/.rpsl/index -/data/.rpsl/links -/data/.rpsl/nettree -/data/.rpsl/schema \ No newline at end of file +/data/.rpsl diff --git a/data/.rpsl/config b/data/.rpsl/config deleted file mode 100644 index 2f0684327..000000000 --- a/data/.rpsl/config +++ /dev/null @@ -1,15 +0,0 @@ -namespace: dn42 -schema: schema -owners: mntner -default-owner: DN42-MNT -primary-key: person nic-hdl -primary-key: role nic-hdl -primary-key: inetnum cidr -primary-key: inet6num cidr -network-owner: inet6num inet6num -network-owner: inet6num inetnum -network-owner: inetnum inetnum -network-owner: inetnum route -network-owner: inet6num route6 -mnt-by: DN42-MNT -source: DN42 diff --git a/data/schema/NAMESPACE-SCHEMA b/data/schema/NAMESPACE-SCHEMA deleted file mode 100644 index f39e93807..000000000 --- a/data/schema/NAMESPACE-SCHEMA +++ /dev/null @@ -1,10 +0,0 @@ -schema: NAMESPACE-SCHEMA -ref: dn42.namespace -key: namespace required single primary schema > [name] -key: ns-schema required single > [schema] -key: ns-owner required single > [schema] -key: default-owner optional single lookup=dn42.mntner > [mntner] -key: network-owner optional multiple > [parent-schema] [child-schema] -key: primary-key optional multiple > [schema] [primary] -mnt-by: DN42-MNT -source: DN42 diff --git a/data/schema/SCHEMA-SCHEMA b/data/schema/SCHEMA-SCHEMA index 1e5ab797f..f27cb624c 100644 --- a/data/schema/SCHEMA-SCHEMA +++ b/data/schema/SCHEMA-SCHEMA @@ -1,15 +1,24 @@ schema: SCHEMA-SCHEMA +namespace: dn42 +primary-key: inetnum cidr +primary-key: inet6num cidr +primary-key: role nic-hdl +primary-key: person nic-hdl +namespace-owners: mntner ref: dn42.schema -key: schema required single primary schema > [name] -key: ref required single > [schema] -key: key required multiple > [key-name] - {required|optional|recommend|deprecate} - {single|multiple} {primary|} {schema|} - lookup=str '>' [spec]... -key: mnt-by required multiple lookup=dn42.mntner > [mntner] -key: remarks optional multiple > [text]... -key: source required single lookup=dn42.registry -key: network-owner optional multiple > [parent-schema] +key: schema required single primary schema > [name] +key: ref required single > [schema] +key: namespace required single +key: primary-key optional multiple > [schema] [key] +key: namespace-owners required single > [schema] +key: mnt-by required multiple lookup=dn42.mntner > [mntner] +key: remarks optional multiple > [text]... +key: source required single lookup=dn42.registry +key: network-owner optional multiple > [parent-schema] +key: key required multiple > [key-name] + {required|optional|recommend|deprecate} + {single|multiple} {primary|} {schema|} + lookup= '>' [spec]... mnt-by: DN42-MNT source: DN42 remarks: # option descriptions diff --git a/utils/registry/dn42/rpsl/config.py b/utils/registry/dn42/rpsl/config.py index 02d462122..ce6e8857f 100644 --- a/utils/registry/dn42/rpsl/config.py +++ b/utils/registry/dn42/rpsl/config.py @@ -26,12 +26,12 @@ class Config: @property def schema(self) -> str: "Get schema type name" - return self._dom.get("schema", default="schema").value + return self._dom.get("namespace-schema", default="schema").value @property def owners(self) -> str: "Get owner type name" - return self._dom.get("owner", default="mntner").value + return self._dom.get("namespace-owner", default="mntner").value @property def source(self) -> str: @@ -120,10 +120,10 @@ class Config: "Build config from parameters" FileDOM.namespace = namespace dom = FileDOM() - dom.src = os.path.join(path, "config") + dom.src = os.path.join(path, ".rpsl/config") dom.put("namespace", namespace) - dom.put("schema", schema) - dom.put("owners", owners) + dom.put("namespace-schema", schema) + dom.put("namespace-owners", owners) dom.put("default-owner", default_owner) for (k, v) in primary_keys: dom.put("primary-key", f"{k} {v}", append=True) diff --git a/utils/registry/dn42/rpsl/filedom.py b/utils/registry/dn42/rpsl/filedom.py index e97e32a6c..6fea4cf33 100644 --- a/utils/registry/dn42/rpsl/filedom.py +++ b/utils/registry/dn42/rpsl/filedom.py @@ -251,6 +251,8 @@ def index_files(path: str) -> FileDOM: if root == path: continue if root.endswith(".rpsl"): + dom = FileDOM.from_file(os.path.join(root, "config")) + yield dom continue for f in files: diff --git a/utils/registry/rpsl_init/__init__.py b/utils/registry/rpsl_init/__init__.py index 780d870b4..6211e7a76 100644 --- a/utils/registry/rpsl_init/__init__.py +++ b/utils/registry/rpsl_init/__init__.py @@ -44,12 +44,12 @@ def run(args: List[str], env: Dict[str, str]) -> int: return 1 rpsl_dir = env.get("WORKING_DIR") - schema_dir = os.path(rpsl_dir, "schema") + schema_dir = os.path.join(rpsl_dir, "schema") network_owners, primary_keys = {}, {} if os.path.exists(schema_dir): network_owners, primary_keys = _parse_schema(schema_dir) - + print(rpsl_dir) rpsl = Config.build(path=rpsl_dir, namespace=opts.namespace, schema=opts.schema,