def import_rules_file(self, rules_file): if not os.path.isfile(rules_file): found_file = mmutils.find_file_across_common_paths(rules_file) if found_file == '': return 'Unable to find rules file:' + rules_file rules_file = found_file with open(rules_file, 'r') as f: file_content = f.read() return self.import_content(file_content)
def run(RouterTagList, BgpImportParamsTagName, CreatedRoutesTagName): plLogger = PLLogger.GetLogger('methodology') plLogger.LogInfo(" Run BgpImportRoutesCommand") this_cmd = get_this_cmd() if not BgpImportParamsTagName: return "Invalid BgpImportParamsTagName passed in" router_obj_list = tag_utils.get_tagged_objects_from_string_names(RouterTagList) # Turn into handles router_list = [] for router_obj in router_obj_list: if router_obj.IsTypeOf('EmulatedDevice'): router_list.append(router_obj) elif routerObj.IsTypeOf('RouterConfig'): router_list.append(router_obj.GetParent().GetObjectHandle()) if not router_list: this_cmd.Set('Status', "RouterTagList does not point to any routers") return False param_obj_list = \ tag_utils.get_tagged_objects_from_string_names([BgpImportParamsTagName]) route_list = [] for param_obj in param_obj_list: # Remove any existing parameter list relations exist_list = param_obj.GetObjects('Scriptable', RelationType('SelectedRouterRelation')) for exist in exist_list: param_obj.RemoveObject(exist, RelationType('SelectedRouterRelation')) for router in router_list: param_obj.AddObject(router, RelationType('SelectedRouterRelation')) router_hdl_list = [r.GetObjectHandle() for r in router_list] # Create the BgpImportRouteTableCommand with AutoCommand('BgpImportRouteTableCommand') as cmd: cmd.Set("ImportParams", param_obj.GetObjectHandle()) # Ensure BLL command gets an absolute path abs_path = \ mm_utils.find_file_across_common_paths(param_obj.Get("FileName"), search_templates=True) if len(abs_path): param_obj.Set("FileName", abs_path) cmd.SetCollection("RouterList", router_hdl_list) cmd.Set("DeleteRoutes", "NO") cmd.Execute() cmd_state = cmd.Get('State') cmd_status = cmd.Get('Status') if cmd_state != 'COMPLETED': this_cmd.Set('Status', cmd_status) return False route_list = param_obj.GetObjects('BgpRouteConfig', RelationType('WizardGenerated')) if not route_list: this_cmd.Set('Status', 'Failed to generate any ' 'route objects for {}'.format(param_obj.Get('Name'))) return False tag_wizgenerated_as_created(param_obj, CreatedRoutesTagName) return True