def create_root_aggregate(self, defaults): """ If a root aggregate doesn't already exist, create one """ try: aggr = self.get_root_aggregate() return except ValueError, valerr: try: root_aggr_name = defaults.get("vfiler", "default_root_aggregate") xmldata = """<aggregate type="root" name="%s"/>""" % root_aggr_name node = etree.fromstring(xmldata) aggr = Aggregate() aggr.configure_from_node(node, defaults, self) self.add_child(aggr) except (NoSectionError, NoOptionError), e: raise valerr
def create_root_aggregate(self, defaults): """ If a root aggregate doesn't already exist, create one """ try: aggr = self.get_root_aggregate() return except ValueError, valerr: try: root_aggr_name = defaults.get('vfiler', 'default_root_aggregate') xmldata = """<aggregate type="root" name="%s"/>""" % root_aggr_name node = etree.fromstring(xmldata) aggr = Aggregate() aggr.configure_from_node(node, defaults, self) self.add_child(aggr) except (NoSectionError, NoOptionError), e: raise valerr
def find_target_aggr(self, targetfiler, aggrname, defaults): """ Given a name, find the target aggregate in the config, or create a reference object if we just have a name """ log.debug("Finding target aggregates...") try: targetaggr = [ x for x in targetfiler.get_aggregates() if x.name == aggrname ][0] except IndexError: # An indexerror means the aggregate isn't defined in the # project XML, which is ok. We invent an aggregate and # add it to the target filer. xmldata = """<aggregate name="%s" />""" % aggrname node = etree.fromstring(xmldata) targetaggr = Aggregate() targetaggr.configure_from_node(node, defaults, targetfiler) targetfiler.add_child(targetaggr) pass log.debug("Added a placeholder aggregate to project: %s", targetaggr) log.debug("%s", targetfiler.get_aggregates()) return targetaggr
def find_target_aggr(self, targetfiler, aggrname, defaults): """ Given a name, find the target aggregate in the config, or create a reference object if we just have a name """ log.debug("Finding target aggregates...") try: targetaggr = [ x for x in targetfiler.get_aggregates() if x.name == aggrname ][0] except IndexError: # An indexerror means the aggregate isn't defined in the # project XML, which is ok. We invent an aggregate and # add it to the target filer. xmldata = """<aggregate name="%s" />""" % aggrname node = etree.fromstring(xmldata) targetaggr = Aggregate() targetaggr.configure_from_node(node, defaults, targetfiler) targetfiler.add_child(targetaggr) pass log.debug("Added a placeholder aggregate to project: %s", targetaggr) log.debug("%s", targetfiler.get_aggregates()) return targetaggr