~ubuntu-branches/ubuntu/saucy/nova/saucy-proposed

« back to all changes in this revision

Viewing changes to nova/network/minidns.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short, Chuck Short, Adam Gandleman
  • Date: 2012-01-13 09:51:10 UTC
  • mfrom: (1.1.40)
  • Revision ID: package-import@ubuntu.com-20120113095110-ffd6163drcg77wez
Tags: 2012.1~e3~20120113.12049-0ubuntu1
[Chuck Short]
* New upstream version.
* debian/nova_sudoers, debian/nova-common.install, 
  Switch out to nova-rootwrap. (LP: #681774)
* Add "get-origsource-git" which allows developers to 
  generate a tarball from github, by doing:
  fakeroot debian/rules get-orig-source-git
* debian/debian/nova-objectstore.logrotate: Dont determine
  if we are running Debian or Ubuntu. (LP: #91379)

[Adam Gandleman]
* Removed python-nova.postinst, let dh_python2 generate instead since
  python-support is not a dependency. (LP: #907543)

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
import shutil
17
17
import tempfile
18
18
 
 
19
from nova import exception
19
20
from nova import flags
20
21
 
21
22
 
41
42
            f.close()
42
43
 
43
44
    def get_zones(self):
44
 
        return ["zone1.example.org", "zone2.example.org", "zone3.example.org"]
 
45
        return flags.FLAGS.floating_ip_dns_zones
45
46
 
46
47
    def qualify(self, name, zone):
47
48
        if zone:
52
53
        return qualified
53
54
 
54
55
    def create_entry(self, name, address, type, dnszone):
 
56
 
 
57
        if self.get_entries_by_name(name, dnszone):
 
58
            raise exception.FloatingIpDNSExists(name=name, zone=dnszone)
 
59
 
55
60
        outfile = open(self.filename, 'a+')
56
61
        outfile.write("%s   %s   %s\n" %
57
62
            (address, self.qualify(name, dnszone), type))
69
74
            return entry
70
75
 
71
76
    def delete_entry(self, name, dnszone=""):
 
77
        deleted = False
72
78
        infile = open(self.filename, 'r')
73
79
        outfile = tempfile.NamedTemporaryFile('w', delete=False)
74
80
        for line in infile:
76
82
            if ((not entry) or
77
83
                entry['name'] != self.qualify(name, dnszone).lower()):
78
84
                outfile.write(line)
79
 
        infile.close()
80
 
        outfile.close()
81
 
        shutil.move(outfile.name, self.filename)
82
 
 
83
 
    def rename_entry(self, address, name, dnszone):
84
 
        infile = open(self.filename, 'r')
85
 
        outfile = tempfile.NamedTemporaryFile('w', delete=False)
86
 
        for line in infile:
87
 
            entry = self.parse_line(line)
88
 
            if entry and entry['address'] == address.lower():
89
 
                outfile.write("%s   %s   %s\n" %
90
 
                    (address, self.qualify(name, dnszone), entry['type']))
91
85
            else:
92
 
                outfile.write(line)
 
86
                deleted = True
93
87
        infile.close()
94
88
        outfile.close()
95
89
        shutil.move(outfile.name, self.filename)
 
90
        if not deleted:
 
91
            raise exception.NotFound
96
92
 
97
93
    def modify_address(self, name, address, dnszone):
 
94
 
 
95
        if not self.get_entries_by_name(name, dnszone):
 
96
            raise exception.NotFound
 
97
 
98
98
        infile = open(self.filename, 'r')
99
99
        outfile = tempfile.NamedTemporaryFile('w', delete=False)
100
100
        for line in infile:
109
109
        outfile.close()
110
110
        shutil.move(outfile.name, self.filename)
111
111
 
112
 
    def get_entries_by_address(self, address, _dnszone=""):
 
112
    def get_entries_by_address(self, address, dnszone=""):
113
113
        entries = []
114
114
        infile = open(self.filename, 'r')
115
115
        for line in infile:
116
116
            entry = self.parse_line(line)
117
117
            if entry and entry['address'].lower() == address.lower():
118
 
                entries.append(entry['name'])
 
118
                if entry['name'].lower().endswith(dnszone.lower()):
 
119
                    domain_index = entry['name'].lower().find(dnszone.lower())
 
120
                    entries.append(entry['name'][0:domain_index - 1])
119
121
        infile.close()
120
122
        return entries
121
123