88import argparse
99import os
1010import settings
11+ import sys
1112
1213
1314counter = Counter (added = 0 , updated = 0 , manufacturer = 0 )
@@ -54,7 +55,8 @@ def getFiles(vendors=None):
5455 return files , discoveredVendors
5556
5657
57- def readYAMl (files ):
58+ def readYAMl (files , ** kwargs ):
59+ slugs = kwargs .get ('slugs' , None )
5860 deviceTypes = []
5961 manufacturers = []
6062 for file in files :
@@ -68,6 +70,11 @@ def readYAMl(files):
6870 data ['manufacturer' ] = {}
6971 data ['manufacturer' ]['name' ] = manufacturer
7072 data ['manufacturer' ]['slug' ] = slugFormat (manufacturer )
73+
74+ if slugs and data ['slug' ] not in slugs :
75+ print (f"Skipping { data ['model' ]} " )
76+ continue
77+
7178 deviceTypes .append (data )
7279 manufacturers .append (manufacturer )
7380 return deviceTypes
@@ -388,19 +395,21 @@ def main():
388395
389396 VENDORS = settings .VENDORS
390397 REPO_URL = settings .REPO_URL
391- REPO_BRANCH = settings .REPO_BRANCH
392398
399+ SLUGS = settings .SLUGS
400+ REPO_BRANCH = settings .REPO_BRANCH
393401
394402 parser = argparse .ArgumentParser (description = 'Import Netbox Device Types' )
395403 parser .add_argument ('--vendors' , nargs = '+' , default = VENDORS ,
396404 help = "List of vendors to import eg. apc cisco" )
397405 parser .add_argument ('--url' , '--git' , default = REPO_URL ,
398406 help = "Git URL with valid Device Type YAML files" )
407+ parser .add_argument ('--slugs' , nargs = '+' , default = SLUGS ,
408+ help = "List of device-type slugs to import eg. ap4431 ws-c3850-24t-l" )
399409 parser .add_argument ('--branch' , default = REPO_BRANCH ,
400410 help = "Git branch to use from repo" )
401411 args = parser .parse_args ()
402412
403-
404413 try :
405414 if os .path .isdir ('./repo' ):
406415 print (f"Package devicetype-library is already installed, "
@@ -421,8 +430,8 @@ def main():
421430
422431
423432 print (str (len (vendors )) + " Vendors Found" )
424- print ( str ( len ( files )) + " Device-Types Found" )
425- deviceTypes = readYAMl ( files )
433+ deviceTypes = readYAMl ( files , slugs = args . slugs )
434+ print ( str ( len ( deviceTypes )) + " Device-Types Found" )
426435 createManufacturers (vendors , nb )
427436 createDeviceTypes (deviceTypes , nb )
428437
0 commit comments