| 57 | | env_version = open(os.path.join(self.envname, 'VERSION')).read() |
| 58 | | |
| 59 | | # - compare with self._version |
| 60 | | # - if VERSION < self._version : |
| 61 | | if parse_version(env_version) < parse_version(self._version): |
| 62 | | # - call upgrade script corresponding to self._upg (?) |
| 63 | | from cleverbox.upgrades import upgrades |
| 64 | | i = 1 |
| 65 | | while i: |
| 66 | | try: |
| 67 | | upgrades['do_upgrade_' + i].__call__(self.envname, env_version) |
| 68 | | except ImportError, e: |
| 69 | | break |
| 70 | | i = i + 1 |
| 71 | | |
| 72 | | elif parse_version(env_version) > parse_version(self._version): |
| 73 | | raise |
| | 57 | try: |
| | 58 | env_version = open(os.path.join(self.envname, 'VERSION')).read().strip() |
| | 59 | |
| | 60 | # - compare with self._version |
| | 61 | # - if VERSION < self._version : |
| | 62 | if parse_version(env_version) < parse_version(_version): |
| | 63 | print "\nCleverbox environment needs to be upgraded. Please run :" |
| | 64 | print " cleverbox-admin %s upgrade\n" % self.envname |
| | 65 | sys.exit(1) |
| | 66 | except IOError, e: |
| | 67 | # no VERSION file means user wants to create an environment |
| | 68 | pass |
| | 223 | |
| | 224 | _help_upgrade = [('upgrade', 'Executes necessary operation to make environment up to date')] |
| | 225 | def do_upgrade(self, line=None): |
| | 226 | env_version = open(os.path.join(self.envname, 'VERSION')).read() |
| | 227 | if parse_version(env_version) < parse_version(_version): |
| | 228 | from cleverbox.upgrades import upgrades |
| | 229 | i = 1 |
| | 230 | while i: |
| | 231 | try: |
| | 232 | upgrade_func = getattr(upgrades, 'do_upgrade_' + str(i)) |
| | 233 | upgrade_func.__call__(self.envname, env_version) |
| | 234 | except AttributeError, e: |
| | 235 | break |
| | 236 | i = i + 1 |
| | 237 | |
| 1089 | | if args[0] in ('-h', '--help', 'help'): |
| 1090 | | return admin.onecmd("help") |
| 1091 | | elif args[0] in ('-v','--version','about'): |
| 1092 | | return admin.onecmd("about") |
| | 1103 | if len(args) > 1: |
| | 1104 | if args[1] in ('-h', '--help', 'help'): |
| | 1105 | return admin.onecmd("help") |
| | 1106 | elif args[1] in ('-v','--version','about'): |
| | 1107 | return admin.onecmd("about") |
| | 1108 | elif args[1] in ('-u', '--upgrade', 'upgrade'): |
| | 1109 | admin.envname = args[0] |
| | 1110 | return admin.onecmd("upgrade") |