from autotest.client.shared.settings import settings


def migrate_up(manager):
    # Add the column with a default first, and then drop the default.
    # We cannot add the column, populate the values, and then specify NOT NULL
    # because a record added while this is executing could enter a null value
    # into the table before NOT NULL is specified.
    manager.execute(ADD_COLUMN)
    manager.execute(DROP_DEFAULT)


def migrate_down(manager):
    manager.execute(DROP_COLUMN)


job_timeout_default = settings.get_value('AUTOTEST_WEB',
                                         'job_timeout_default')
ADD_COLUMN = ('ALTER TABLE jobs ADD COLUMN timeout INT NOT NULL DEFAULT %s' %
              job_timeout_default)
DROP_DEFAULT = 'ALTER TABLE jobs ALTER COLUMN timeout DROP DEFAULT'
DROP_COLUMN = 'ALTER TABLE jobs DROP COLUMN timeout'
