def _scan_for_services(services_dir, pj): from son_editor.models.descriptor import Service session = db_session() try: for service_file in os.listdir(services_dir): if service_file.endswith(".yml"): service = Service() file_path = os.path.join(services_dir, service_file) load_ns_vnf_from_disk(file_path, service) db_service = session.query(Service). \ filter(Service.project == pj). \ filter(Service.name == service.name). \ filter(Service.vendor == service.vendor). \ filter(Service.version == service.version). \ first() if not db_service: logger.info("Found service in project {}: {}".format(pj.name, service.uid)) service.project = pj session.add(service) session.commit() else: session.rollback() if get_file_path("nsd", service) != file_path: shutil.move(file_path, get_file_path("nsd", service)) # rename to expected name format elif os.path.isdir(os.path.join(services_dir, service_file)): _scan_for_services(os.path.join(services_dir, service_file), pj) except: session.rollback()
def _scan_for_services(services_dir, pj): from son_editor.models.descriptor import Service session = db_session() try: for service_file in os.listdir(services_dir): if service_file.endswith(".yml"): service = Service() file_path = os.path.join(services_dir, service_file) load_ns_vnf_from_disk(file_path, service) db_service = session.query(Service). \ filter(Service.project == pj). \ filter(Service.name == service.name). \ filter(Service.vendor == service.vendor). \ filter(Service.version == service.version). \ first() if not db_service: logger.info("Found service in project {}: {}".format( pj.name, service.uid)) service.project = pj session.add(service) session.commit() else: session.rollback() if get_file_path("nsd", service) != file_path: shutil.move(file_path, get_file_path( "nsd", service)) # rename to expected name format elif os.path.isdir(os.path.join(services_dir, service_file)): _scan_for_services(os.path.join(services_dir, service_file), pj) except: session.rollback()