示例#1
0
 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
示例#2
0
 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
示例#3
0
 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
示例#4
0
 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
示例#5
0
 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
示例#6
0
 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)