コード例 #1
0
    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
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
    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