def render(self, session, network_environment, dns_environment, comments, **arguments): validate_basic("network environment", network_environment) NetworkEnvironment.get_unique(session, network_environment, preclude=True) dbdns_env = DnsEnvironment.get_unique(session, dns_environment, compel=True) # Currently input.xml lists --building only, but that may change location = get_location(session, **arguments) dbnet_env = NetworkEnvironment(name=network_environment, dns_environment=dbdns_env, location=location, comments=comments) if dbdns_env.is_default != dbnet_env.is_default: raise ArgumentError("Only the default network environment may be " "associated with the default DNS environment.") session.add(dbnet_env) session.flush() return
def render(self, session, network_environment, **arguments): options = [ undefer("comments"), joinedload("dns_environment"), undefer("dns_environment.comments") ] dbnet_env = NetworkEnvironment.get_unique(session, network_environment, compel=True, query_options=options) return dbnet_env
def render(self, session, network_environment, clear_location, comments, **arguments): dbnet_env = NetworkEnvironment.get_unique(session, network_environment, compel=True) # Currently input.xml lists --building only, but that may change location = get_location(session, **arguments) if location: dbnet_env.location = location if clear_location: dbnet_env.location = None if comments is not None: dbnet_env.comments = comments session.flush() return
def render(self, session, network_environment, **arguments): dbnet_env = NetworkEnvironment.get_unique(session, network_environment, compel=True) if dbnet_env.is_default: raise ArgumentError( "{0} is the default network environment, " "therefore it cannot be deleted.".format(dbnet_env)) if session.query(Network).filter_by( network_environment=dbnet_env).first(): raise ArgumentError("{0} still has networks defined, delete them " "first.".format(dbnet_env)) session.delete(dbnet_env) session.flush() return