mirror of
https://git.dn42.dev/dn42/registry.git
synced 2025-05-06 20:55:23 +08:00
add use_file
This commit is contained in:
parent
28d12eb224
commit
f02dec9fc7
1 changed files with 23 additions and 21 deletions
|
@ -108,7 +108,7 @@ class SchemaDOM:
|
||||||
status = "FAIL"
|
status = "FAIL"
|
||||||
|
|
||||||
for k, v, l in f.dom:
|
for k, v, l in f.dom:
|
||||||
if k == self.primary and not f.src.endswith("/" + v.replace("/","_").replace(" ","")):
|
if k == self.primary and not f.src.endswith(v.replace("/","_").replace(" ","")):
|
||||||
log.error("%s Line %d: Primary [%s: %s] does not match filename." % (f.src, l, k, v))
|
log.error("%s Line %d: Primary [%s: %s] does not match filename." % (f.src, l, k, v))
|
||||||
status = "FAIL"
|
status = "FAIL"
|
||||||
|
|
||||||
|
@ -181,9 +181,6 @@ class FileDOM:
|
||||||
|
|
||||||
last_multi = None
|
last_multi = None
|
||||||
|
|
||||||
if dom[-1][0] == 'use-schema':
|
|
||||||
schema = dom[-1][1]
|
|
||||||
|
|
||||||
if dom[-1][0] == 'mnt-by':
|
if dom[-1][0] == 'mnt-by':
|
||||||
mntner.append(dom[-1][1])
|
mntner.append(dom[-1][1])
|
||||||
|
|
||||||
|
@ -191,7 +188,7 @@ class FileDOM:
|
||||||
self.keys = keys
|
self.keys = keys
|
||||||
self.multi = multi
|
self.multi = multi
|
||||||
self.mntner = mntner
|
self.mntner = mntner
|
||||||
self.schema = schema
|
self.schema = SCHEMA_NAMESPACE + dom[0][0]
|
||||||
self.src = src
|
self.src = src
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -253,7 +250,7 @@ def scan_index(infile, mntner=None):
|
||||||
for line in f.readlines():
|
for line in f.readlines():
|
||||||
line = line.split()
|
line = line.split()
|
||||||
idx[(line[0], line[1])] = line[2:]
|
idx[(line[0], line[1])] = line[2:]
|
||||||
if line[0] == SCHEMA_NAMEPACE + 'schema':
|
if line[0] == SCHEMA_NAMESPACE + 'schema':
|
||||||
s = SchemaDOM(line[2])
|
s = SchemaDOM(line[2])
|
||||||
log.info("read schema: %s" % (s.name))
|
log.info("read schema: %s" % (s.name))
|
||||||
schemas[s.ref] = s
|
schemas[s.ref] = s
|
||||||
|
@ -261,8 +258,8 @@ def scan_index(infile, mntner=None):
|
||||||
return __scan_index(idx, schemas, mntner)
|
return __scan_index(idx, schemas, mntner)
|
||||||
|
|
||||||
|
|
||||||
def scan_files(path, mntner=None):
|
def scan_files(path, mntner=None, use_file=None):
|
||||||
arr = __index_files(path)
|
arr = __index_files(path, use_file)
|
||||||
|
|
||||||
idx = {}
|
idx = {}
|
||||||
schemas = {}
|
schemas = {}
|
||||||
|
@ -274,9 +271,10 @@ def scan_files(path, mntner=None):
|
||||||
log.info("read schema: %s" % (s.name))
|
log.info("read schema: %s" % (s.name))
|
||||||
schemas[s.ref] = s
|
schemas[s.ref] = s
|
||||||
|
|
||||||
return __scan_index(idx, schemas, mntner)
|
return __scan_index(idx, schemas, mntner, use_file)
|
||||||
|
|
||||||
def __scan_index(idx, schemas, mntner):
|
|
||||||
|
def __scan_index(idx, schemas, mntner, use_file):
|
||||||
ok = True
|
ok = True
|
||||||
for k, v in idx.items():
|
for k, v in idx.items():
|
||||||
log.debug(k)
|
log.debug(k)
|
||||||
|
@ -287,6 +285,9 @@ def __scan_index(idx, schemas, mntner):
|
||||||
if mntner is not None and mntner not in mlist:
|
if mntner is not None and mntner not in mlist:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if use_file is not None and use_file != v[0]:
|
||||||
|
continue
|
||||||
|
|
||||||
s = schemas.get(k[0], None)
|
s = schemas.get(k[0], None)
|
||||||
if s is None:
|
if s is None:
|
||||||
log.error("No schema found for %s" % (k[1]))
|
log.error("No schema found for %s" % (k[1]))
|
||||||
|
@ -302,7 +303,7 @@ def __scan_index(idx, schemas, mntner):
|
||||||
return ok
|
return ok
|
||||||
|
|
||||||
|
|
||||||
def __index_files(path):
|
def __index_files(path, use_file):
|
||||||
xlat = {
|
xlat = {
|
||||||
"dns/": SCHEMA_NAMESPACE + "domain",
|
"dns/": SCHEMA_NAMESPACE + "domain",
|
||||||
"inetnum/": SCHEMA_NAMESPACE + "inetnum",
|
"inetnum/": SCHEMA_NAMESPACE + "inetnum",
|
||||||
|
@ -325,21 +326,20 @@ def __index_files(path):
|
||||||
ignore = True
|
ignore = True
|
||||||
for t in xlat.keys():
|
for t in xlat.keys():
|
||||||
if root+"/" == os.path.join(path, t):
|
if root+"/" == os.path.join(path, t):
|
||||||
ignore = False
|
ignore = False
|
||||||
break
|
break
|
||||||
if ignore:
|
if ignore:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for f in files:
|
for f in files:
|
||||||
|
|
||||||
dom = FileDOM(os.path.join(root, f))
|
dom = FileDOM(os.path.join(root, f))
|
||||||
|
|
||||||
for t, s in xlat.items():
|
|
||||||
if dom.src.startswith(os.path.join(path, t)):
|
|
||||||
dom.schema = s
|
|
||||||
|
|
||||||
yield (dom.schema, dom.src.split("/")[-1].replace("_", "/"), dom.src, ",".join(dom.mntner))
|
yield (dom.schema, dom.src.split("/")[-1].replace("_", "/"), dom.src, ",".join(dom.mntner))
|
||||||
|
|
||||||
|
if use_file is not None:
|
||||||
|
dom = FileDOM(use_file)
|
||||||
|
yield (dom.schema, dom.src.split("/")[-1].replace("_", "/"), dom.src, ",".join(dom.mntner))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def index_files(path):
|
def index_files(path):
|
||||||
idx = __index_files(path)
|
idx = __index_files(path)
|
||||||
|
@ -757,6 +757,8 @@ def get_args():
|
||||||
'path', nargs="?", help="Path for dn42 data", type=str)
|
'path', nargs="?", help="Path for dn42 data", type=str)
|
||||||
parser_scan.add_argument('-m', '--use-mntner', nargs='?',
|
parser_scan.add_argument('-m', '--use-mntner', nargs='?',
|
||||||
help="Only scan files that has a matching MNT [Default None]", action="store")
|
help="Only scan files that has a matching MNT [Default None]", action="store")
|
||||||
|
parser_scan.add_argument('-f', '--use-file', nargs='?',
|
||||||
|
help="Only scan file given [Default None]", action="store")
|
||||||
|
|
||||||
parser_fmt = subparsers.add_parser('fmt', help='Format file')
|
parser_fmt = subparsers.add_parser('fmt', help='Format file')
|
||||||
parser_fmt.add_argument(
|
parser_fmt.add_argument(
|
||||||
|
@ -809,7 +811,7 @@ if __name__ == '__main__':
|
||||||
elif args["command"] == "scan":
|
elif args["command"] == "scan":
|
||||||
import time
|
import time
|
||||||
log.notice("## Scan Started at %s" %(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())))
|
log.notice("## Scan Started at %s" %(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())))
|
||||||
ck = scan_files(args["path"], args["use_mntner"])
|
ck = scan_files(args["path"], args["use_mntner"], args["use_file"])
|
||||||
log.notice("## Scan Completed at %s" %(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())))
|
log.notice("## Scan Completed at %s" %(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime())))
|
||||||
|
|
||||||
if ck == "INFO":
|
if ck == "INFO":
|
||||||
|
|
Loading…
Add table
Reference in a new issue