def UpdateDefaultFWAction(self, spec=None): if hasattr(spec, "DefaultFWAction"): action = getattr(spec, "DefaultFWAction", None) logger.info(f"Updating security profile default FW action -> {action}") self.DefaultFWAction = utils.GetRpcSecurityRuleAction(action) self.Show() if not utils.UpdateObject(self): return False # Trigger the update on policy so that correct default FW action # is inherited from security profile. for policy in PolicyClient.Objects(self.Node): if not utils.UpdateObject(policy): logger.error(f"Failed to update the {policy}") return False return True
def ReplaceTag(self, spec): tags = getattr(spec, "tags", None) if not tags: return None old_list = self.Tags self.Tags = tags logger.info(f"{self}: Replaced the Tag {tags}") return old_list if utils.UpdateObject(self) else None
def RemoveTag(self, spec=None): tag = getattr(spec, "tag", None) if spec else None if tag: self.Tags.remove(tag) elif self.Tags: tag = self.Tags.pop() else: logger.error(f"{self} Tags empty") return None logger.info(f"{self}: Removed the Tag {tag}") return tag if utils.UpdateObject(self) else None
def UpdateUnderlayObjects(self, node): if utils.IsDryRun(): return True cfgObjects = self.__underlay_objs[node].values() logger.info( f"Updating {len(cfgObjects)} underlay {self.ObjType.name} Objects in {node}" ) result = list(map(lambda x: utils.UpdateObject(x), cfgObjects)) if not all(result): logger.info( f"Updating {len(cfgObjects)} underlay {self.ObjType.name} Objects FAILED in {node}" ) return False return True
def AppendTag(self, spec=None): tag = getattr(spec, "tag", None) if spec else None if len(self.Tags) >= self.MaxTags: logger.error(f"{self} Tags full") return None if tag: pass elif self.Tags: tag = self.Tags[-1]+1 else: tag = self.TagBase if self.TagBase else self.GetNextTag() self.Tags.append(tag) logger.info(f"{self}: Appended the Tag {tag}") return tag if utils.UpdateObject(self) else None
def CommitUpdate(self, spec=None): if not self.IsDirty(): logger.info("No changes on object %s to commit" % self) self.SetDirty(False) return utils.UpdateObject(self)