Ejemplo n.º 1
0
    def render(self, session, logger, prefix, dns_domain, hostname, machine,
               **args):
        if dns_domain:
            dbdns_domain = DnsDomain.get_unique(session, dns_domain,
                                                compel=True)
        else:
            dbmachine = Machine.get_unique(session, machine, compel=True)
            dbdns_domain = None
            loc = dbmachine.location
            while loc and not dbdns_domain:
                dbdns_domain = loc.default_dns_domain
                loc = loc.parent

            if not dbdns_domain:
                raise ArgumentError("There is no default DNS domain configured "
                                    "for the machine's location. Please "
                                    "specify --dns_domain.")

        # Lock the DNS domain to prevent the same name generated for
        # simultaneous requests
        dbdns_domain.lock_row()

        prefix = AqStr.normalize(prefix)
        result = search_next(session=session, cls=Fqdn, attr=Fqdn.name,
                             value=prefix, dns_domain=dbdns_domain,
                             start=None, pack=None)
        hostname = "%s%d.%s" % (prefix, result, dbdns_domain)

        CommandAddHost.render(self, session, logger, hostname=hostname,
                              machine=machine, **args)

        logger.info("Selected host name %s" % hostname)
        self.audit_result(session, 'hostname', hostname, **args)
        return hostname
Ejemplo n.º 2
0
 def render(self, session, metacluster, start, number, pack, **arguments):
     result = search_next(session=session, cls=MetaCluster,
                          attr=MetaCluster.name, value=metacluster,
                          start=start, pack=pack)
     if number:
         return str(result)
     return "%s%d" % (metacluster, result)
Ejemplo n.º 3
0
 def render(self, session, short, dns_domain, start, number, pack,
            **arguments):
     dbdns_domain = DnsDomain.get_unique(session, dns_domain, compel=True)
     result = search_next(session=session, cls=Fqdn, attr=Fqdn.name,
                          value=short, dns_domain=dbdns_domain,
                          start=start, pack=pack)
     if number:
         return str(result)
     return "%s%d.%s" % (short, result, dbdns_domain.name)
Ejemplo n.º 4
0
 def render(self, session, machine, start, number, pack, **arguments):
     result = search_next(session=session,
                          cls=Machine,
                          attr=Machine.label,
                          value=machine,
                          start=start,
                          pack=pack)
     if number:
         return str(result)
     return "%s%d" % (machine, result)
Ejemplo n.º 5
0
 def render(self, session, metacluster, start, number, pack, **arguments):
     result = search_next(session=session,
                          cls=MetaCluster,
                          attr=MetaCluster.name,
                          value=metacluster,
                          start=start,
                          pack=pack)
     if number:
         return str(result)
     return "%s%d" % (metacluster, result)
Ejemplo n.º 6
0
    def render(self, session, logger, prefix, **args):
        prefix = AqStr.normalize(prefix)
        result = search_next(session=session, cls=Machine, attr=Machine.label,
                             value=prefix, start=None, pack=None)
        machine = '%s%d' % (prefix, result)
        args['machine'] = machine
        CommandAddMachine.render(self, session, logger, **args)

        logger.info("Selected hardware label %s" % machine)
        self.audit_result(session, 'machine', machine, **args)
        return machine
Ejemplo n.º 7
0
 def render(self, session, short, dns_domain, start, number, pack,
            **arguments):
     dbdns_domain = DnsDomain.get_unique(session, dns_domain, compel=True)
     result = search_next(session=session,
                          cls=Fqdn,
                          attr=Fqdn.name,
                          value=short,
                          dns_domain=dbdns_domain,
                          start=start,
                          pack=pack)
     if number:
         return str(result)
     return "%s%d.%s" % (short, result, dbdns_domain.name)
Ejemplo n.º 8
0
    def render(self, session, logger, prefix, **args):
        prefix = AqStr.normalize(prefix)
        result = search_next(session=session,
                             cls=Machine,
                             attr=Machine.label,
                             value=prefix,
                             start=None,
                             pack=None)
        machine = '%s%d' % (prefix, result)
        args['machine'] = machine
        CommandAddMachine.render(self, session, logger, **args)

        logger.info("Selected hardware label %s" % machine)
        self.audit_result(session, 'machine', machine, **args)
        return machine
Ejemplo n.º 9
0
 def render(self, session, machine, start, number, pack, **arguments):
     result = search_next(session=session, cls=Machine, attr=Machine.label,
                          value=machine, start=start, pack=pack)
     if number:
         return str(result)
     return "%s%d" % (machine, result)