示例#1
0
    def _update_dns_db(self, dns_name, dns_domain, db_data,
                      plugin_context, has_fixed_ips):
        dns_data_db = port_obj.PortDNS.get_object(
            plugin_context,
            port_id=db_data['id'])
        if dns_data_db:
            is_dns_name_changed = (dns_name is not None and
                    dns_data_db['current_dns_name'] != dns_name)

            if is_dns_name_changed or (has_fixed_ips and
                                       dns_data_db['current_dns_name']):
                dns_data_db['previous_dns_name'] = (
                    dns_data_db['current_dns_name'])
                dns_data_db['previous_dns_domain'] = (
                    dns_data_db['current_dns_domain'])
                if is_dns_name_changed:
                    dns_data_db[dns.DNSNAME] = dns_name
                    dns_data_db['current_dns_name'] = dns_name
                    if dns_name:
                        dns_data_db['current_dns_domain'] = dns_domain
                    else:
                        dns_data_db['current_dns_domain'] = ''

            dns_data_db.update()
            return dns_data_db
        if dns_name:
            dns_data_db = port_obj.PortDNS(plugin_context,
                                           port_id=db_data['id'],
                                           current_dns_name=dns_name,
                                           current_dns_domain=dns_domain,
                                           previous_dns_name='',
                                           previous_dns_domain='',
                                           dns_name=dns_name)
            dns_data_db.create()
        return dns_data_db
示例#2
0
 def _process_only_port_update(self, plugin_context, request_data,
                               db_data):
     dns_name = request_data.get(dns.DNSNAME)
     dns_domain = request_data.get(dns.DNSDOMAIN)
     dns_data_db = port_obj.PortDNS.get_object(
         plugin_context,
         port_id=db_data['id'])
     if dns_data_db:
         if dns_name is not None and dns_data_db[dns.DNSNAME] != dns_name:
             dns_data_db[dns.DNSNAME] = dns_name
         if (dns_domain is not None and
                 dns_data_db[dns.DNSDOMAIN] != dns_domain):
             dns_data_db[dns.DNSDOMAIN] = dns_domain
         dns_data_db.update()
         return dns_data_db
     dns_data_db = port_obj.PortDNS(plugin_context,
                                    port_id=db_data['id'],
                                    current_dns_name='',
                                    current_dns_domain='',
                                    previous_dns_name='',
                                    previous_dns_domain='',
                                    dns_name=dns_name or '',
                                    dns_domain=dns_domain or '')
     dns_data_db.create()
     return dns_data_db
示例#3
0
 def _process_only_dns_name_update(self, plugin_context, db_data, dns_name):
     dns_data_db = port_obj.PortDNS.get_object(plugin_context,
                                               port_id=db_data['id'])
     if dns_data_db:
         dns_data_db['dns_name'] = dns_name
         dns_data_db.update()
         return dns_data_db
     if dns_name:
         dns_data_db = port_obj.PortDNS(plugin_context,
                                        port_id=db_data['id'],
                                        current_dns_name='',
                                        current_dns_domain='',
                                        previous_dns_name='',
                                        previous_dns_domain='',
                                        dns_name=dns_name)
         dns_data_db.create()
     return dns_data_db
示例#4
0
    def _create_port_dns_record(self, plugin_context, request_data, db_data,
                                network, dns_name):
        external_dns_domain = (request_data.get(dns.DNSDOMAIN)
                               or network.get(dns.DNSDOMAIN))
        current_dns_name, current_dns_domain = (
            self._calculate_current_dns_name_and_domain(
                dns_name, external_dns_domain,
                self.external_dns_not_needed(plugin_context, network)))

        dns_data_obj = port_obj.PortDNS(plugin_context,
                                        port_id=db_data['id'],
                                        current_dns_name=current_dns_name,
                                        current_dns_domain=current_dns_domain,
                                        previous_dns_name='',
                                        previous_dns_domain='',
                                        dns_name=dns_name,
                                        dns_domain=request_data.get(
                                            dns.DNSDOMAIN, ''))
        dns_data_obj.create()
        return dns_data_obj
示例#5
0
 def process_create_port(self, plugin_context, request_data, db_data):
     if not request_data.get(dns.DNSNAME):
         return
     dns_name, is_dns_domain_default = self._get_request_dns_name(
         request_data, db_data['network_id'], plugin_context)
     if is_dns_domain_default:
         return
     network = self._get_network(plugin_context, db_data['network_id'])
     if self.external_dns_not_needed(
             plugin_context, network) or not network[dns.DNSDOMAIN]:
         current_dns_name = ''
         current_dns_domain = ''
     else:
         current_dns_name = dns_name
         current_dns_domain = network[dns.DNSDOMAIN]
     port_obj.PortDNS(plugin_context,
                      port_id=db_data['id'],
                      current_dns_name=current_dns_name,
                      current_dns_domain=current_dns_domain,
                      previous_dns_name='',
                      previous_dns_domain='',
                      dns_name=dns_name).create()