~harlowja/cloud-init/group-dict-fix

« back to all changes in this revision

Viewing changes to cloudinit/distros/rhel.py

  • Committer: Joshua Harlow
  • Date: 2012-11-09 22:37:21 UTC
  • mfrom: (702.2.2 cloud-init)
  • Revision ID: harlowja@yahoo-inc.com-20121109223721-tq10b450d0n0l79v
Fix the fqdn/hostname case for rhel and ubuntu
where rhel uses the fqdn for its config while
ubuntu uses the short hostname.

Show diffs side-by-side

added added

removed removed

Lines of Context:
146
146
                lines.insert(0, _make_header())
147
147
            util.write_file(fn, "\n".join(lines), 0644)
148
148
 
149
 
    def set_hostname(self, hostname):
150
 
        self._write_hostname(hostname, '/etc/sysconfig/network')
 
149
    def set_hostname(self, hostname, fqdn=None):
 
150
        # See: http://bit.ly/TwitgL
 
151
        # Should be fqdn if we can use it
 
152
        sysconfig_hostname = fqdn
 
153
        if not sysconfig_hostname:
 
154
            sysconfig_hostname = hostname
 
155
        self._write_hostname(sysconfig_hostname, '/etc/sysconfig/network')
151
156
        LOG.debug("Setting hostname to %s", hostname)
152
157
        util.subp(['hostname', hostname])
153
158
 
165
170
        }
166
171
        self._update_sysconfig_file(out_fn, host_cfg)
167
172
 
168
 
    def update_hostname(self, hostname, prev_file):
 
173
    def update_hostname(self, hostname, fqdn, prev_file):
 
174
        # See: http://bit.ly/TwitgL
 
175
        # Should be fqdn if we can use it
 
176
        sysconfig_hostname = fqdn
 
177
        if not sysconfig_hostname:
 
178
            sysconfig_hostname = hostname
169
179
        hostname_prev = self._read_hostname(prev_file)
170
180
        hostname_in_sys = self._read_hostname("/etc/sysconfig/network")
171
181
        update_files = []
172
 
        if not hostname_prev or hostname_prev != hostname:
 
182
        if not hostname_prev or hostname_prev != sysconfig_hostname:
173
183
            update_files.append(prev_file)
174
184
        if (not hostname_in_sys or
175
185
            (hostname_in_sys == hostname_prev
176
 
             and hostname_in_sys != hostname)):
 
186
             and hostname_in_sys != sysconfig_hostname)):
177
187
            update_files.append("/etc/sysconfig/network")
178
188
        for fn in update_files:
179
189
            try:
180
 
                self._write_hostname(hostname, fn)
 
190
                self._write_hostname(sysconfig_hostname, fn)
181
191
            except:
182
192
                util.logexc(LOG, "Failed to write hostname %s to %s",
183
 
                            hostname, fn)
 
193
                            sysconfig_hostname, fn)
184
194
        if (hostname_in_sys and hostname_prev and
185
195
            hostname_in_sys != hostname_prev):
186
196
            LOG.debug(("%s differs from /etc/sysconfig/network."
187
197
                        " Assuming user maintained hostname."), prev_file)
188
198
        if "/etc/sysconfig/network" in update_files:
189
 
            # Only do this if we are running in non-adjusted root mode
190
199
            LOG.debug("Setting hostname to %s", hostname)
191
200
            util.subp(['hostname', hostname])
192
201