diff --git a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoring.py b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoring.py index 8fdbaada38540d882f139e9917df4100c3e45a3c..33a681ec1e8bc8b0987a2287efe25c81e556614b 100644 --- a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoring.py +++ b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoring.py @@ -93,7 +93,9 @@ class MenuAwareMonitoring: def __get_athena_version__(self): "Get the current Athena version." - self.ms.current_athena_version = self.get_release_setup().replace(",","-") + release = self.get_release_setup() + self.ms.current_athena_version = release[0].replace(",","-") + self.ms.current_nightly_version = release[1].replace(",","-") def get_release_setup(self): @@ -142,13 +144,26 @@ class MenuAwareMonitoring: release = os.environ['AtlasBuildBranch'] setup="%s,%s,%s"%(project,release,current_nightly) elif 'AtlasBuildStamp' in os.environ: - release = os.environ['AtlasBuildBranch'] - current_nightly = os.environ['AtlasBuildStamp'] # denotes a cmakegit nightly - setup="%s,%s,%s"%(project,release,current_nightly) + current_nightly = os.environ['AtlasBuildStamp'] + if current_nightly in os.environ['ATLAS_RELEASE_BASE']: + # this is a nightly + release = os.environ['AtlasBuildBranch'] + setup = "%s,%s,%s"%(project,release,current_nightly) + else: + # this is not a nightly + setup = "%s,%s"%(project,release) + # also save the nightly it was built from + release = os.environ['AtlasBuildBranch'] + base_nightly = "%s,%s,%s"%(project,release,current_nightly) else: setup="%s,%s"%(project,release) - return setup + try: + # this is a full release, save the base nightly + return setup,base_nightly + except: + # this is not a git/cmake release with a base nightly + return setup,setup def __get_tag__(self,package=""): @@ -832,7 +847,7 @@ class MenuAwareMonitoring: mck_info = self.ms.oi.read_mck_info_from_db(mck_id) mck_athena_version = mck_info['MCK_ATHENA_VERSION'] - return self.ms.check_compatibility_of_two_release_versions(mck_athena_version,self.ms.current_athena_version) + return self.ms.check_compatibility_of_two_release_versions(mck_athena_version,[self.ms.current_athena_version,self.ms.current_nightly_version]) def does_smck_athena_version_match_current_athena_version(self, smck_id): @@ -841,7 +856,7 @@ class MenuAwareMonitoring: smck_info = self.ms.oi.read_smck_info_from_db(smck_id) smck_athena_version = smck_info['SMCK_ATHENA_VERSION'] - return self.ms.check_compatibility_of_two_release_versions(smck_athena_version,self.ms.current_athena_version) + return self.ms.check_compatibility_of_two_release_versions(smck_athena_version,[self.ms.current_athena_version,self.ms.current_nightly_version]) def apply_mck(self,input1="",print_output_here=""): @@ -1206,7 +1221,7 @@ class MenuAwareMonitoring: comment = self.ms.__ask_for_comment__() # need to get release accurately and in a form the command can run - use get_release_setup - release = self.get_release_setup() + release = self.get_release_setup()[0] # this is not a default, so we need to get the default and perform the diff before dumping print "Will get default in clean directory for release",release #release diff --git a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoringStandalone.py b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoringStandalone.py index 422599208a4a50830f4d7c6e58ec00a4456cc36e..02ecb984b89194cde56489b6d504f2bbaeb08c78 100644 --- a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoringStandalone.py +++ b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/MenuAwareMonitoringStandalone.py @@ -30,7 +30,7 @@ class MenuAwareMonitoringStandalone: self.version = '1.4.8' # flag for setting whether to print out anything to screen or not self.print_output = True - # create oracle interaction object + # create oracle interaction objects self.oi = OracleInterface() # holder for current user self.current_user = "" @@ -38,6 +38,7 @@ class MenuAwareMonitoringStandalone: # Since this code is Athena-independent, we use a dummy 'Athena version' # If called from MenuAwareMonitoring, this will be updated to the real version self.current_athena_version = "MaMStandalone" + self.current_nightly_version = "MaMStandalone" # holder for default global_info self.default_global_info = {} # holder for current local global_info @@ -620,17 +621,12 @@ class MenuAwareMonitoringStandalone: """ Check if two releases versions are compatible. If they do, MAM will apply MCKs from either release in the other.""" - project1 = "DummyProject" - project2 = project1 - - if ( "-" in version1 ) and ( "-" in version2 ): - project1 = version1.split("-")[0] - version1 = version1.split("-")[1] - project2 = version2.split("-")[0] - version2 = version2.split("-")[1] - - if ( version1.startswith(version2) or version1.startswith(version2) ) and project1.upper() == project2.upper(): - return True + if type(version2) is list: + if version1 in version2: + return True + elif version1 == version2: + return True + return False def clone_mck_for_new_release(self,mck_id,project="",version=""):