Exemple #1
0
def run_upgrade_suite(vers, vmitype, num = None, enterprise = True):
    '''Runs standard set up upgrade tests for version under test.'''
    if common.props['cluster.cluster.use_em_for_dbinstall']:
        raise Exception('run_upgrade_suite does not support cluster.cluster.use_em_for_dbinstall!')
    
    runlist = []
    
    vmgr = VersionManager()
    
    baselist = common.props['testlib.runlists.upgradefrom']
    streams = baselist.split(',')
    for s in streams:
        # if the stream is the same as the version under test
        # then we need to grab the last release on this stream
        minusone = False if not vers.find(s) == 0 else True
        basever = s
        try:
            basever = vmgr.latest_release_vers(s, minusone)
        except:
            # if we get here, we assume that s is a specific version 
            # that the user wants to upgrade from
            pass
        
        if basever and ConfigSpec._version_greaterthan(vers,basever):
            if ConfigSpec._version_greaterthan(basever, '3.5.1-6' ) or \
                ConfigSpec._version_greaterthan('3.0.0-0', basever ):
                # anything between 3.0 and 3.5.1-5 does not support single server 
                # installs because of the postconfigure race issue.
                
                cfg = configs.singlenode(basever)
                cfg['boxtype'] = 'cal-centos58'
                cfg['binary'] = True
                cfg['upgrade'] = vers
                cfg['enterprise'] = enterprise
                cfg['em'] = None # guarantee no EM since this is a "legacy" boxtype
                runlist.append( (cfg, 'vagrant', tests.upgrade001()) )
    
                cfg = configs.singlenode(basever)
                cfg['boxtype'] = 'cal-debian6'
                cfg['upgrade'] = vers
                cfg['enterprise'] = enterprise
                if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                    # will not repeat this comment each time, but we can use the EM
                    # here as long as it is in attach mode and we are on a supported
                    # version
                    cfg['em'] = None
                runlist.append( (cfg, 'vagrant', tests.upgrade001()) )
    
                cfg = configs.singlenode(basever)
                cfg['boxtype'] = 'cal-centos6'
                cfg['upgrade'] = vers
                cfg['enterprise'] = enterprise
                if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                    cfg['em'] = None
                runlist.append( (cfg, 'vagrant', tests.upgrade001()) )
    
                cfg = configs.singlenode(basever)
                cfg['boxtype'] = 'cal-precise64'
                cfg['upgrade'] = vers
                cfg['enterprise'] = enterprise
                if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                    cfg['em'] = None
                runlist.append( (cfg, 'vagrant', tests.upgrade001()) )

                if ConfigSpec._version_greaterthan(basever, '3.5.1-5' ):
                    # binary install supported after 3.5.1-5
                    cfg = configs.singlenode(basever)
                    cfg['boxtype'] = 'cal-centos6'
                    cfg['idbuser'] = '******'
                    cfg['upgrade'] = vers
                    cfg['enterprise'] = enterprise
                    if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                        cfg['em'] = None
                    runlist.append( (cfg, 'vagrant', tests.upgrade001()) )
                    
        
            if not s == '2.2':
                # not going to support multi-node upgrades from 2.2 because if 
                # differences in the Calpont.xml.  Could support, but would need
                # to switch to using a postconfigure.in on the upgrade run of
                # postconfigure
                cfg = configs.multi_1um_2pm(basever)
                cfg['boxtype'] = 'cal-centos6'
                cfg['binary'] = True
                cfg['upgrade'] = vers
                cfg['enterprise'] = enterprise
                if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                    cfg['em'] = None
                runlist.append( (cfg, 'vagrant', tests.upgrade001()) )
    
                cfg = configs.multi_2umpm_combo(basever)
                cfg['boxtype'] = 'cal-centos6'
                cfg['upgrade'] = vers
                cfg['enterprise'] = enterprise
                if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                    cfg['em'] = None
                runlist.append( (cfg, 'vagrant', tests.upgrade001()) )
    
                cfg = configs.multi_1um_2pm(basever)
                cfg['boxtype'] = 'cal-debian6'
                cfg['upgrade'] = vers
                cfg['enterprise'] = enterprise
                if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                    cfg['em'] = None
                runlist.append( (cfg, 'vagrant', tests.upgrade001()) )

                if ConfigSpec._version_greaterthan(basever, '3.5.1-5' ):
                    cfg = configs.multi_2umpm_combo(basever)
                    cfg['boxtype'] = 'cal-precise64'
                    cfg['idbuser'] = '******'
                    cfg['upgrade'] = vers
                    cfg['enterprise'] = enterprise
                    if not ConfigSpec._version_greaterthan(basever, '4.5.1-3' ):
                        cfg['em'] = None
                    runlist.append( (cfg, 'vagrant', tests.upgrade001()) )

    return runlist
Exemple #2
0
 def testLatest(self):
     v = VersionManager()
     self.assertEqual( v.latest_release_vers('3.5'), '3.5.1-5' )
     with self.assertRaisesRegexp(Exception,"Latest not in the form of"):
         self.assertEqual( v.latest_release_vers('Latest'), '3.5.1-5' )
     self.assertEqual( v.latest_release_vers('3.5', minusone=True), None )