Skip to content

Commit 25e644d

Browse files
committed
Added support for pulling yang modules from yangcatalog.org.
- Legacy-Id: 18141
1 parent 4efa035 commit 25e644d

5 files changed

Lines changed: 15 additions & 3 deletions

File tree

bin/daily

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ $DTDIR/ietf/manage.py update_external_command_info
3232
# Hardcode the rsync target to avoid any unwanted deletes:
3333
rsync -avzq --delete rsync.ietf.org::iana/yang-parameters/ /a/www/ietf-ftp/yang/ianamod/
3434

35+
# Get Yang models from Yangcatalog.
36+
rsync -avzq rsync://yangcatalog.org:10873/yangdeps /a/www/ietf-ftp/yang/catalogmod/
37+
3538
# Populate the yang repositories
3639
$DTDIR/ietf/manage.py populate_yang_model_dirs -v0
3740

ietf/checks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def check_yang_model_directories(app_configs, **kwargs):
152152
return []
153153
#
154154
errors = []
155-
for s in ("SUBMIT_YANG_RFC_MODEL_DIR", "SUBMIT_YANG_DRAFT_MODEL_DIR", "SUBMIT_YANG_IANA_MODEL_DIR", ):
155+
for s in ("SUBMIT_YANG_RFC_MODEL_DIR", "SUBMIT_YANG_DRAFT_MODEL_DIR", "SUBMIT_YANG_IANA_MODEL_DIR", "SUBMIT_YANG_CATALOG_MODEL_DIR",):
156156
p = getattr(settings, s)
157157
if not os.path.exists(p):
158158
errors.append(checks.Critical(

ietf/settings.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -819,13 +819,14 @@ def skip_unreadable_post(record):
819819
SUBMIT_YANG_RFC_MODEL_DIR = '/a/www/ietf-ftp/yang/rfcmod/'
820820
SUBMIT_YANG_DRAFT_MODEL_DIR = '/a/www/ietf-ftp/yang/draftmod/'
821821
SUBMIT_YANG_IANA_MODEL_DIR = '/a/www/ietf-ftp/yang/ianamod/'
822+
SUBMIT_YANG_CATALOG_MODEL_DIR = '/a/www/ietf-ftp/yang/catalogmod/'
822823

823824
IDSUBMIT_REPOSITORY_PATH = INTERNET_DRAFT_PATH
824825
IDSUBMIT_STAGING_PATH = '/a/www/www6s/staging/'
825826
IDSUBMIT_STAGING_URL = '//www.ietf.org/staging/'
826827
IDSUBMIT_IDNITS_BINARY = '/a/www/ietf-datatracker/scripts/idnits'
827828
SUBMIT_PYANG_COMMAND = 'pyang --verbose --ietf -p {libs} {model}'
828-
SUBMIT_YANGLINT_COMMAND = 'yanglint --verbose -p {tmplib} -p {rfclib} -p {draftlib} -p {ianalib} {model} -i'
829+
SUBMIT_YANGLINT_COMMAND = 'yanglint --verbose -p {tmplib} -p {rfclib} -p {draftlib} -p {ianalib} -p {cataloglib} {model} -i'
829830
SUBMIT_YANGLINT_COMMAND = '' # use the value above if you have yanglint installed
830831

831832
SUBMIT_YANG_CATALOG_MODULEARG = "modules[]={module}"

ietf/submit/checkers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ def check_file_txt(self, path):
201201
settings.SUBMIT_YANG_RFC_MODEL_DIR,
202202
settings.SUBMIT_YANG_DRAFT_MODEL_DIR,
203203
settings.SUBMIT_YANG_IANA_MODEL_DIR,
204+
settings.SUBMIT_YANG_CATALOG_MODEL_DIR,
204205
])
205206
if os.path.exists(path):
206207
with io.open(path) as file:
@@ -242,7 +243,8 @@ def check_file_txt(self, path):
242243
command = [ w for w in cmd_template.split() if not '=' in w ][0]
243244
cmd_version = VersionInfo.objects.get(command=command).version
244245
cmd = cmd_template.format(model=path, rfclib=settings.SUBMIT_YANG_RFC_MODEL_DIR, tmplib=workdir,
245-
draftlib=settings.SUBMIT_YANG_DRAFT_MODEL_DIR, ianalib=settings.SUBMIT_YANG_IANA_MODEL_DIR, )
246+
draftlib=settings.SUBMIT_YANG_DRAFT_MODEL_DIR, ianalib=settings.SUBMIT_YANG_IANA_MODEL_DIR,
247+
cataloglib=settings.SUBMIT_YANG_CATALOG_MODEL_DIR, )
246248
code, out, err = pipe(cmd)
247249
out = out.decode('utf-8')
248250
err = err.decode('utf-8')

ietf/submit/tests.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ def setUp(self):
103103
self.yang_iana_model_dir = self.tempdir('yang-iana-model')
104104
settings.SUBMIT_YANG_IANA_MODEL_DIR = self.yang_iana_model_dir
105105

106+
self.saved_yang_catalog_model_dir = settings.SUBMIT_YANG_CATALOG_MODEL_DIR
107+
self.yang_catalog_model_dir = self.tempdir('yang-catalog-model')
108+
settings.SUBMIT_YANG_CATALOG_MODEL_DIR = self.yang_catalog_model_dir
109+
106110
# Submit views assume there is a "next" IETF to look for cutoff dates against
107111
MeetingFactory(type_id='ietf', date=datetime.date.today()+datetime.timedelta(days=180))
108112

@@ -113,13 +117,15 @@ def tearDown(self):
113117
shutil.rmtree(self.yang_rfc_model_dir)
114118
shutil.rmtree(self.yang_draft_model_dir)
115119
shutil.rmtree(self.yang_iana_model_dir)
120+
shutil.rmtree(self.yang_catalog_model_dir)
116121
settings.IDSUBMIT_STAGING_PATH = self.saved_idsubmit_staging_path
117122
settings.INTERNET_DRAFT_PATH = self.saved_internet_draft_path
118123
settings.IDSUBMIT_REPOSITORY_PATH = self.saved_idsubmit_repository_path
119124
settings.INTERNET_DRAFT_ARCHIVE_DIR = self.saved_archive_dir
120125
settings.SUBMIT_YANG_RFC_MODEL_DIR = self.saved_yang_rfc_model_dir
121126
settings.SUBMIT_YANG_DRAFT_MODEL_DIR = self.saved_yang_draft_model_dir
122127
settings.SUBMIT_YANG_IANA_MODEL_DIR = self.saved_yang_iana_model_dir
128+
settings.SUBMIT_YANG_CATALOG_MODEL_DIR = self.saved_yang_catalog_model_dir
123129

124130

125131
def do_submission(self, name, rev, group=None, formats=["txt",], author=None):

0 commit comments

Comments
 (0)