2b24981686be925379b0500713ea8e512e121570
[osm/SO.git] / rwmon / plugins / vala / rwmon_mock / rwmon_mock.py
1
2 #
3 # Copyright 2016 RIFT.IO Inc
4 #
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10 #
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
16 #
17
18 import logging
19
20 from gi.repository import (
21 GObject,
22 RwMon,
23 RwTypes,
24 RwmonYang as rwmon,
25 )
26
27 import rw_status
28 import rwlogger
29
30 logger = logging.getLogger('rwmon.mock')
31
32
33 rwstatus = rw_status.rwstatus_from_exc_map({
34 IndexError: RwTypes.RwStatus.NOTFOUND,
35 KeyError: RwTypes.RwStatus.NOTFOUND,
36 })
37
38
39 class NullImpl(object):
40 def nfvi_metrics(self, account, vm_id):
41 return rwmon.NfviMetrics()
42
43 def nfvi_vcpu_metrics(self, account, vm_id):
44 return rwmon.NfviMetrics_Vcpu()
45
46 def nfvi_memory_metrics(self, account, vm_id):
47 return rwmon.NfviMetrics_Memory()
48
49 def nfvi_storage_metrics(self, account, vm_id):
50 return rwmon.NfviMetrics_Storage()
51
52 def nfvi_metrics_available(self, account):
53 return True
54
55 def alarm_create(self, account, vim_id, alarm):
56 pass
57
58 def alarm_update(self, account, alarm):
59 pass
60
61 def alarm_delete(self, account, alarm_id):
62 pass
63
64 def alarm_list(self, account):
65 return list()
66
67
68 class MockMonitoringPlugin(GObject.Object, RwMon.Monitoring):
69 def __init__(self):
70 GObject.Object.__init__(self)
71 self._impl = NullImpl()
72
73 @rwstatus
74 def do_init(self, rwlog_ctx):
75 if not any(isinstance(h, rwlogger.RwLogger) for h in logger.handlers):
76 logger.addHandler(
77 rwlogger.RwLogger(
78 category="rw-monitor-log",
79 subcategory="mock",
80 log_hdl=rwlog_ctx,
81 )
82 )
83
84 @rwstatus
85 def do_nfvi_metrics(self, account, vm_id):
86 return self._impl.nfvi_metrics(account, vm_id)
87
88 @rwstatus
89 def do_nfvi_vcpu_metrics(self, account, vm_id):
90 return self._impl.nfvi_vcpu_metrics(account, vm_id)
91
92 @rwstatus
93 def do_nfvi_memory_metrics(self, account, vm_id):
94 return self._impl.nfvi_memory_metrics(account, vm_id)
95
96 @rwstatus
97 def do_nfvi_storage_metrics(self, account, vm_id):
98 return self._impl.nfvi_storage_metrics(account, vm_id)
99
100 @rwstatus
101 def do_nfvi_metrics_available(self, account):
102 return self._impl.nfvi_metrics_available(account)
103
104 @rwstatus(ret_on_failure=[None])
105 def do_alarm_create(self, account, vim_id, alarm):
106 return self._impl.alarm_create(account, vim_id, alarm)
107
108 @rwstatus(ret_on_failure=[None])
109 def do_alarm_update(self, account, alarm):
110 return self._impl.alarm_update(account, alarm)
111
112 @rwstatus(ret_on_failure=[None])
113 def do_alarm_delete(self, account, alarm_id):
114 return self._impl.alarm_delete(account, alarm_id)
115
116 @rwstatus(ret_on_failure=[None])
117 def do_alarm_list(self, account):
118 return self._impl.alarm_list(account)
119
120 def set_impl(self, impl):
121 self._impl = impl