cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
monia.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.views.user.monia
22 # @alldecoratedby{src.cm.utils.decorators.user_log}
23 #
24 # @author Tomek WojtoƄ
25 #
26 
27 from cm.utils.decorators import user_log
28 from cm.utils.monia import RrdHandler
29 from common.states import stat_resolutions, stat_names, stat_ranges
30 
31 
32 @user_log(log=False)
33 ##
34 #
35 # Returns statistics for specified VM.
36 #
37 # @cmview_user
38 # @param_post{vm_id,int}
39 # @param_post{stat_name,string} type of required statistics
40 # @param_post{time,string} time of last row
41 # @param_post{stat_range,string} period of time from @prm{time} to past
42 # @param_post{resolution,string} statistics resolution
43 #
44 # @response{dict} list of the total usage of VM resources from start VM
45 #
46 def vm_stats(caller_id, vm_id, stat_name, time, stat_range, resolution):
47 
48  if type(stat_name) is int:
49  stat_name = [stat_name]
50 
51  n = []
52  for stat in stat_name:
53  n.append(stat_names.keys()[stat_names.values().index(stat)])
54  p = int(stat_ranges.keys()[stat_ranges.values().index(int(stat_range))])
55  r = int(stat_resolutions.keys()[stat_resolutions.values().index(resolution)])
56 
57  return RrdHandler().get_vm_stats('vm-%d-%d' % (vm_id, caller_id), n, int(time) - p, time, r)
58