cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
functions.py
Go to the documentation of this file.
1 # -*- coding: utf-8 -*-
2 # @COPYRIGHT_begin
3 #
4 # Copyright [2010-2014] Institute of Nuclear Physics PAN, Krakow, Poland
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # @COPYRIGHT_end
19 
20 ##
21 # @package src.cm.utils.functions
22 # @author Tomek Sośnicki <tom.sosnicki@gmail.com>
23 # @author Maciej Nabożny <di.dijo@gmail.com>
24 #
25 import subprocess
26 from cm.utils import log
27 
28 
29 def execute(command_list):
30  try:
31  log.debug(0, "Execute command: %s" % str(command_list))
32  log_file = file('/var/log/cc1/cm_thread.log', 'a')
33  r = subprocess.call(command_list, stdout=log_file, stderr=log_file)
34  log_file.close()
35  except Exception, e:
36  log.error(0, "Execute command %s failed: %s" % (str(command_list), e))
37  return r
38 
39 
40 def execute_with_output(command_list):
41  try:
42  log.debug(0, "Execute command (with output): %s" % str(command_list))
43  p = subprocess.Popen(command_list, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
44  r = p.communicate()
45  except Exception, e:
46  log.error(0, "Execute command (with output) %s failed: %s" % (str(command_list), e))
47  return r
48