~smoser/ubuntu/wily/maas/lp1474417

« back to all changes in this revision

Viewing changes to src/maasserver/migrations/0072_remove_ipmi_autodetect.py

  • Committer: Package Import Robot
  • Author(s): Andres Rodriguez
  • Date: 2014-04-09 18:36:55 UTC
  • mfrom: (1.2.29)
  • Revision ID: package-import@ubuntu.com-20140409183655-cum5gsxxust9j87r
Tags: 1.5+bzr2236-0ubuntu1
* New upstream bugfix release.
  - Fix simplestreams path to use the new data source path. (LP: #1305118)
  - Fix commissioning_distro_series validation failure. (LP: #1304408)
  - Fix DB migration 0072_remove_ipmi_autodetec. (LP: #1302156)
  - Update documentation.
* debian/maas-region-controller-min.maas-region-celery.upstart,
  debian/maas-region-controller-min.maas-txlongpoll.upstart: Fix ISO
  install by making sure rabbitmq user is really created if it does not
  exist (LP: #1298559)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
from django.db import models
2
1
from provisioningserver.power_schema import IPMI_DRIVER
3
 
from south.db import db
4
2
# -*- coding: utf-8 -*-
5
 
from south.utils import datetime_utils as datetime
6
3
from south.v2 import DataMigration
 
4
from django.db.utils import ProgrammingError
 
5
from maasserver import logger
7
6
 
8
7
 
9
8
class Migration(DataMigration):
12
11
        """Change IPMI nodes with default power_driver to LAN 2.0."""
13
12
        ipmi_nodes = orm['maasserver.Node'].objects.filter(power_type=u'ipmi')
14
13
        for node in ipmi_nodes:
15
 
            if node.power_parameters.get('power_driver') != '':
16
 
                continue
17
 
            node.power_parameters['power_driver'] = IPMI_DRIVER.LAN_2_0
18
 
            node.save() 
 
14
            if node.power_parameters.get('power_driver') == IPMI_DRIVER.DEFAULT:
 
15
                node.power_parameters['power_driver'] = IPMI_DRIVER.LAN_2_0
 
16
                try:
 
17
                    node.save() 
 
18
                except ProgrammingError:
 
19
                    # We catch django.db.utils.ProgrammingError here because of
 
20
                    # the failure described on bug 1302156.  Although we didn't
 
21
                    # manage to recreate the failure in a controlled environment,
 
22
                    # this try/except statement will prevent the migration from
 
23
                    # crashing if the failure reappears.
 
24
                    logger.exception(
 
25
                        "Failed to apply migration 0072_remove_ipmi_autodetect. "
 
26
                         "See bug 1302156 "
 
27
                         "(https://bugs.launchpad.net/maas/+bug/1302156).")
19
28
 
20
29
    def backwards(self, orm):
21
30
        """LAN 2.0 is valid either way, no need for backwards migration."""