Skip to content

Commit

Permalink
Merge pull request #9907 from apfeiffer1/condTools-for74
Browse files Browse the repository at this point in the history
backport of accumulated fixes from 7.5/7.6 for conditions tool and lib
  • Loading branch information
cmsbuild committed Jun 30, 2015
2 parents afc7059 + 0867eff commit 73f9f18
Show file tree
Hide file tree
Showing 3 changed files with 167 additions and 60 deletions.
25 changes: 18 additions & 7 deletions CondCore/Utilities/python/cond2xml.py
Expand Up @@ -4,6 +4,10 @@
import sys
import time

# as we need to load the shared lib from here, make sure it's in our path:
if os.path.join( os.environ['CMSSW_BASE'], 'src') not in sys.path:
sys.path.append( os.path.join( os.environ['CMSSW_BASE'], 'src') )

# -------------------------------------------------------------------------------------------------------

payload2xmlCodeTemplate = """
Expand Down Expand Up @@ -107,14 +111,20 @@ class CondXmlProcessor(object):
def __init__(self, condDBIn):
self.conddb = condDBIn
self._pl2xml_isPrepared = False
self._pl2xml_tmpDir = "fakeSubSys4pl/fakePkg4pl"

if not os.path.exists( os.path.join( os.environ['CMSSW_BASE'], 'src') ):
raise Exception("Looks like you are not running in a CMSSW developer area, $CMSSW_BASE/src/ does not exist")

self.fakePkgName = "fakeSubSys4pl/fakePkg4pl"
self._pl2xml_tmpDir = os.path.join( os.environ['CMSSW_BASE'], 'src', self.fakePkgName )

self.doCleanup = True

def __del__(self):

if self.doCleanup:
shutil.rmtree( self._pl2xml_tmpDir.split('/')[0] )
os.unlink('./pl2xmlComp.so')
shutil.rmtree( '/'.join( self._pl2xml_tmpDir.split('/')[:-1] ) )
os.unlink( os.path.join( os.environ['CMSSW_BASE'], 'src', './pl2xmlComp.so') )
return

def prepPayload2xml(self, session, payload):
Expand All @@ -132,8 +142,7 @@ def prepPayload2xml(self, session, payload):
code = payload2xmlCodeTemplate % info

tmpDir = self._pl2xml_tmpDir
if ( os.path.exists( tmpDir.split('/')[0] ) or
os.path.exists( tmpDir ) ) :
if ( os.path.exists( tmpDir ) ) :
msg = '\nERROR: %s already exists, please remove if you did not create that manually !!' % tmpDir
self.doCleanup = False
raise Exception(msg)
Expand All @@ -150,8 +159,10 @@ def prepPayload2xml(self, session, payload):
codeFile.write(code)
codeFile.close()

libDir = os.path.join( os.environ["CMSSW_BASE"], 'tmp', os.environ["SCRAM_ARCH"], 'src', self.fakePkgName, 'src', self.fakePkgName.replace('/',''))
libName = libDir + '/lib%s.so' % self.fakePkgName.replace('/','')
cmd = "source /afs/cern.ch/cms/cmsset_default.sh;"
cmd += "(cd %s ; scram b 2>&1 >build.log && cp %s/tmp/%s/src/%s/src/%s/lib%s.so ../../pl2xmlComp.so )" % (tmpDir, os.environ["CMSSW_BASE"], os.environ["SCRAM_ARCH"], tmpDir, tmpDir.replace('/',''), tmpDir.replace('/','') )
cmd += "(cd %s ; scram b 2>&1 >build.log && cp %s $CMSSW_BASE/src/pl2xmlComp.so )" % (tmpDir, libName)
ret = os.system(cmd)
if ret != 0 : self.doCleanup = False

Expand All @@ -174,6 +185,6 @@ def payload2xml(self, session, payload):

sys.path.append('.')
import pl2xmlComp
resultXML = pl2xmlComp.payload2xml( data, plType )
resultXML = pl2xmlComp.payload2xml( str(data), str(plType) )
print resultXML

18 changes: 9 additions & 9 deletions CondCore/Utilities/python/conddblib.py
Expand Up @@ -169,7 +169,7 @@ class TimeType(Enum):


class Tag(_Base):
__tablename__ = 'tag'
__tablename__ = 'TAG'

name = sqlalchemy.Column(sqlalchemy.String(name_length), primary_key=True)
time_type = sqlalchemy.Column(sqlalchemy.Enum(*tuple(TimeType)), nullable=False)
Expand All @@ -185,19 +185,19 @@ class Tag(_Base):


class IOV(_Base):
__tablename__ = 'iov'
__tablename__ = 'IOV'

tag_name = sqlalchemy.Column(sqlalchemy.ForeignKey('tag.name'), primary_key=True)
tag_name = sqlalchemy.Column(sqlalchemy.ForeignKey('TAG.name'), primary_key=True)
since = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
insertion_time = sqlalchemy.Column(sqlalchemy.TIMESTAMP, primary_key=True)
payload_hash = sqlalchemy.Column(sqlalchemy.ForeignKey('payload.hash'), nullable=False)
payload_hash = sqlalchemy.Column(sqlalchemy.ForeignKey('PAYLOAD.hash'), nullable=False)

tag = sqlalchemy.orm.relationship('Tag')
payload = sqlalchemy.orm.relationship('Payload')


class Payload(_Base):
__tablename__ = 'payload'
__tablename__ = 'PAYLOAD'

hash = sqlalchemy.Column(sqlalchemy.CHAR(hash_length), primary_key=True)
object_type = sqlalchemy.Column(sqlalchemy.String(name_length), nullable=False)
Expand All @@ -208,7 +208,7 @@ class Payload(_Base):


class GlobalTag(_Base):
__tablename__ = 'global_tag'
__tablename__ = 'GLOBAL_TAG'

name = sqlalchemy.Column(sqlalchemy.String(name_length), primary_key=True)
validity = sqlalchemy.Column(sqlalchemy.Integer, nullable=False)
Expand All @@ -219,12 +219,12 @@ class GlobalTag(_Base):


class GlobalTagMap(_Base):
__tablename__ = 'global_tag_map'
__tablename__ = 'GLOBAL_TAG_MAP'

global_tag_name = sqlalchemy.Column(sqlalchemy.ForeignKey('global_tag.name'), primary_key=True)
global_tag_name = sqlalchemy.Column(sqlalchemy.ForeignKey('GLOBAL_TAG.name'), primary_key=True)
record = sqlalchemy.Column(sqlalchemy.String(name_length), primary_key=True)
label = sqlalchemy.Column(sqlalchemy.String(name_length), primary_key=True)
tag_name = sqlalchemy.Column(sqlalchemy.ForeignKey('tag.name'), nullable=False)
tag_name = sqlalchemy.Column(sqlalchemy.ForeignKey('TAG.name'), nullable=False)

global_tag = sqlalchemy.orm.relationship('GlobalTag')
tag = sqlalchemy.orm.relationship('Tag')
Expand Down

0 comments on commit 73f9f18

Please sign in to comment.