#!/usr/bin/python
#

# Copyright (C) 2014 Google Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.


# pylint: disable=C0103

"""Hook to be run after upgrading to this version.

"""

import sys

from ganeti import utils
from ganeti import cli


def main():
  """Main program.

  """
  if len(sys.argv) != 2:
    cli.ToStderr("Expecting precisely one argument, the version upgrading from")
    return 1
  versionstring = sys.argv[1]

  version = utils.version.ParseVersion(versionstring)

  if utils.version.IsBefore(version, 2, 11, 0):
    result = utils.RunCmd(["gnt-cluster", "renew-crypto",
                           "--new-node-certificates", "-f"])
    if result.failed:
      cli.ToStderr("Failed to create node certificates: %s; Output %s" %
                   (result.fail_reason, result.output))
  return 0

if __name__ == "__main__":
  exit(main())
