CMS 3D CMS Logo

Functions
getPayloadData Namespace Reference

Functions

def deserialize_iovs (db, plugin_name, plot_name, tag, time_type, iovs)
 
def deserialize_twoiovs (db, plugin_name, plot_name, tag, tagtwo, iovs, iovstwo)
 
def discover ()
 
def discover_plugins ()
 
def output (description, param)
 
def supress_output (f)
 

Function Documentation

def getPayloadData.deserialize_iovs (   db,
  plugin_name,
  plot_name,
  tag,
  time_type,
  iovs 
)
Deserializes given iovs data and returns plot coordinates 

Definition at line 64 of file getPayloadData.py.

References createfilelist.int, and output().

Referenced by output().

64 def deserialize_iovs(db, plugin_name, plot_name, tag, time_type, iovs):
65  ''' Deserializes given iovs data and returns plot coordinates '''
66 
67  output('Starting to deserialize iovs: ', '')
68  output('db: ', db)
69  output('plugin name: ', plugin_name)
70  output('plot name: ', plot_name)
71  output('tag name: ', tag)
72  output('tag time type: ', time_type)
73  output('iovs: ', iovs)
74 
75  plugin_base = import_module('pluginModule_PayloadInspector')
76  output('PI plugin base: ', plugin_base)
77 
78  plugin_obj = import_module(plugin_name)
79  output('PI plugin object: ', plugin_obj)
80 
81  # get plot method and execute it with given iovs
82  plot = getattr(plugin_obj, plot_name)()
83  output('plot object: ', plot)
84 
85  if db == "Prod":
86  db_name = 'frontier://FrontierProd/CMS_CONDITIONS'
87  elif db == 'Prep' :
88  db_name = 'frontier://FrontierPrep/CMS_CONDITIONS'
89  else:
90  db_name = db
91 
92  output('full DB name: ', db_name)
93 
94 
95  success = plot.process(db_name, tag, time_type, int(iovs['start_iov']), int(iovs['end_iov']))
96  output('plot processed data successfully: ', success)
97  if not success:
98  return False
99 
100 
101  result = plot.data()
102  output('deserialized data: ', result)
103  return result
104 @supress_output
def output(description, param)
def deserialize_iovs(db, plugin_name, plot_name, tag, time_type, iovs)
def getPayloadData.deserialize_twoiovs (   db,
  plugin_name,
  plot_name,
  tag,
  tagtwo,
  iovs,
  iovstwo 
)
Deserializes given iovs data and returns plot coordinates 

Definition at line 105 of file getPayloadData.py.

References createfilelist.int, and output().

Referenced by output().

105 def deserialize_twoiovs(db, plugin_name, plot_name, tag,tagtwo,iovs,iovstwo):
106  ''' Deserializes given iovs data and returns plot coordinates '''
107  #print "Starting to deserialize iovs:"
108  #print 'First Iovs',iovs
109  #print 'Two Iovs', iovstwo
110  output('Starting to deserialize iovs: ', '')
111  output('db: ', db)
112  output('plugin name: ', plugin_name)
113  output('plot name: ', plot_name)
114  output('tag name: ', tag)
115  output('tagtwo name: ', tagtwo)
116  #output('tag time type: ', time_type)
117  output('iovs: ', iovs)
118  output('iovstwo: ', iovstwo)
119 
120  plugin_base = import_module('pluginModule_PayloadInspector')
121  output('PI plugin base: ', plugin_base)
122 
123  plugin_obj = import_module(plugin_name)
124  output('PI plugin object: ', plugin_obj)
125 
126  # get plot method and execute it with given iovs
127  plot = getattr(plugin_obj, plot_name)()
128  output('plot object: ', plot)
129 
130  db_name = 'oracle://cms_orcon_adg/CMS_CONDITIONS' if db == 'Prod' else 'oracle://cms_orcoff_prep/CMS_CONDITIONS'
131  output('full DB name: ', db_name)
132 
133 
134  success = plot.processTwoTags(db_name, tag,tagtwo,int(iovs['start_iov']), int(iovstwo['end_iov']))
135  #print "All good",success
136  output('plot processed data successfully: ', success)
137  if not success:
138  return False
139 
140 
141  result = plot.data()
142  output('deserialized data: ', result)
143  return result
144 
def output(description, param)
def deserialize_twoiovs(db, plugin_name, plot_name, tag, tagtwo, iovs, iovstwo)
def getPayloadData.discover ( )
Discovers object types and plots for a given cmssw release
    Example:
    {
        "BasicPayload": [
            {"plot": "plot_BeamSpot_x", "plot_type": "History", 
             "single_iov": false, "plugin_name": "pluginBeamSpot_PayloadInspector",
             "title": "x vs run number"},
            ...
        ],
       ...
    }

Definition at line 181 of file getPayloadData.py.

References mps_setup.append, DeadROC_duringRun.dir, discover_plugins(), and output().

Referenced by output().

181 def discover():
182  ''' Discovers object types and plots for a given cmssw release
183  Example:
184  {
185  "BasicPayload": [
186  {"plot": "plot_BeamSpot_x", "plot_type": "History",
187  "single_iov": false, "plugin_name": "pluginBeamSpot_PayloadInspector",
188  "title": "x vs run number"},
189  ...
190  ],
191  ...
192  }
193  '''
194  plugin_base = import_module('pluginModule_PayloadInspector')
195  result = {}
196  for plugin_name in discover_plugins():
197  output(' - plugin name: ', plugin_name)
198  plugin_obj = import_module(plugin_name)
199  output('*** PI plugin object: ', plugin_obj)
200  for plot in dir(plugin_obj):
201  if 'plot_' not in plot: continue # skip if method doesn't start with 'plot_' prefix
202  output(' - plot name: ', plot)
203  plot_method= getattr(plugin_obj, plot)()
204  output(' - plot object: ', plot_method)
205  payload_type = plot_method.payloadType()
206  output(' - payload type: ', payload_type)
207  plot_title = plot_method.title()
208  output(' - plot title: ', plot_title)
209  plot_type = plot_method.type()
210  output(' - plot type: ', plot_type)
211  single_iov = plot_method.isSingleIov()
212  output(' - is single iov: ', single_iov)
213  two_tags = plot_method.isTwoTags()
214  output(' - is Two Tags: ', two_tags)
215  result.setdefault(payload_type, []).append({'plot': plot, 'plugin_name': plugin_name, 'title': plot_title, 'plot_type': plot_type, 'single_iov': single_iov, 'two_tags': two_tags})
216  output('currently discovered info: ', result)
217  output('*** final output:', '')
218  return json.dumps(result)
219 
def output(description, param)
def getPayloadData.discover_plugins ( )
Returns a list of Payload Inspector plugin names
    Example:
    ['pluginBasicPayload_PayloadInspector', 'pluginBeamSpot_PayloadInspector', 'pluginSiStrip_PayloadInspector']

Definition at line 145 of file getPayloadData.py.

References output(), and python.rootplot.root2matplotlib.replace().

Referenced by discover().

146  ''' Returns a list of Payload Inspector plugin names
147  Example:
148  ['pluginBasicPayload_PayloadInspector', 'pluginBeamSpot_PayloadInspector', 'pluginSiStrip_PayloadInspector']
149  '''
150  architecture = os.environ.get('SCRAM_ARCH', None)
151  output('architecture: ', architecture)
152 
153  plugins = []
154  releases = [
155  os.environ.get('CMSSW_BASE', None),
156  os.environ.get('CMSSW_RELEASE_BASE', None)
157  ]
158 
159  for r in releases:
160  if not r: continue # skip if release base is not specified
161  output('* release: ', r)
162 
163  path = os.path.join(r, 'lib', architecture)
164  output('* full release path: ', path)
165 
166  plugins += glob.glob(path + '/plugin*_PayloadInspector.so' )
167  output('found plugins: ', plugins)
168 
169  if r: break # break loop if CMSSW_BASE is specified
170 
171  # extracts the object name from plugin path:
172  # /afs/cern.ch/cms/slc6_amd64_gcc493/cms/cmssw/CMSSW_8_0_6/lib/slc6_amd64_gcc493/pluginBasicPayload_PayloadInspector.so
173  # becomes pluginBasicPayload_PayloadInspector
174  result = []
175  for p in plugins:
176  result.append(p.split('/')[-1].replace('.so', ''))
177 
178  output('discovered plugins: ', result)
179  return result
180 
def output(description, param)
def replace(string, replacements)
def getPayloadData.output (   description,
  param 
)

Definition at line 220 of file getPayloadData.py.

References deserialize_iovs(), deserialize_twoiovs(), discover(), edm.print(), and str.

Referenced by deserialize_iovs(), deserialize_twoiovs(), discover(), and discover_plugins().

220 def output(description, param):
221  if args.verbose:
222  print('')
223  print(description, param)
224 
def output(description, param)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
def getPayloadData.supress_output (   f)
Temporarily disables stdout and stderr so that printouts from the plot
plugin does not compromise the purity of our ssh stream if 
args.suppress_output is true

Definition at line 21 of file getPayloadData.py.

References f.

21 def supress_output( f ):
22  '''
23  Temporarily disables stdout and stderr so that printouts from the plot
24  plugin does not compromise the purity of our ssh stream if
25  args.suppress_output is true
26  '''
27  def decorated( *fargs, **fkwargs ):
28 
29  suppress = args.suppress_output
30  if suppress:
31 
32  # Get rid of what is already there ( should be nothing for this script )
33  sys.stdout.flush()
34 
35  # Save file descriptors so it can be reactivated later
36  saved_stdout = os.dup( 1 )
37  saved_stderr = os.dup( 2 )
38 
39  # /dev/null is used just to discard what is being printed
40  devnull = os.open( '/dev/null', os.O_WRONLY )
41 
42  # Duplicate the file descriptor for /dev/null
43  # and overwrite the value for stdout (file descriptor 1)
44  os.dup2( devnull, 1 )
45  os.dup2( devnull, 2 )
46 
47  result = f( *fargs, **fkwargs )
48 
49  if suppress:
50 
51  # Close devnull after duplication (no longer needed)
52  os.close( devnull )
53 
54  # Reenable stdout and stderr
55  os.dup2( saved_stdout, 1 )
56  os.dup2( saved_stderr, 2 )
57 
58  return result
59 
60  return decorated
61 
62 
63 @supress_output
def supress_output(f)
double f[11][100]