3 # Copyright 2016 RIFT.IO Inc
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
9 # http://www.apache.org/licenses/LICENSE-2.0
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.
20 from gi
.repository
import (
30 logger
= logging
.getLogger('rwmon.mock')
33 rwstatus
= rw_status
.rwstatus_from_exc_map({
34 IndexError: RwTypes
.RwStatus
.NOTFOUND
,
35 KeyError: RwTypes
.RwStatus
.NOTFOUND
,
39 class NullImpl(object):
40 def nfvi_metrics(self
, account
, vm_id
):
41 return rwmon
.NfviMetrics()
43 def nfvi_vcpu_metrics(self
, account
, vm_id
):
44 return rwmon
.NfviMetrics_Vcpu()
46 def nfvi_memory_metrics(self
, account
, vm_id
):
47 return rwmon
.NfviMetrics_Memory()
49 def nfvi_storage_metrics(self
, account
, vm_id
):
50 return rwmon
.NfviMetrics_Storage()
52 def nfvi_metrics_available(self
, account
):
55 def alarm_create(self
, account
, vim_id
, alarm
):
58 def alarm_update(self
, account
, alarm
):
61 def alarm_delete(self
, account
, alarm_id
):
64 def alarm_list(self
, account
):
68 class MockMonitoringPlugin(GObject
.Object
, RwMon
.Monitoring
):
70 GObject
.Object
.__init
__(self
)
71 self
._impl
= NullImpl()
74 def do_init(self
, rwlog_ctx
):
75 if not any(isinstance(h
, rwlogger
.RwLogger
) for h
in logger
.handlers
):
78 category
="rw-monitor-log",
85 def do_nfvi_metrics(self
, account
, vm_id
):
86 return self
._impl
.nfvi_metrics(account
, vm_id
)
89 def do_nfvi_vcpu_metrics(self
, account
, vm_id
):
90 return self
._impl
.nfvi_vcpu_metrics(account
, vm_id
)
93 def do_nfvi_memory_metrics(self
, account
, vm_id
):
94 return self
._impl
.nfvi_memory_metrics(account
, vm_id
)
97 def do_nfvi_storage_metrics(self
, account
, vm_id
):
98 return self
._impl
.nfvi_storage_metrics(account
, vm_id
)
101 def do_nfvi_metrics_available(self
, account
):
102 return self
._impl
.nfvi_metrics_available(account
)
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
)
108 @rwstatus(ret_on_failure
=[None])
109 def do_alarm_update(self
, account
, alarm
):
110 return self
._impl
.alarm_update(account
, alarm
)
112 @rwstatus(ret_on_failure
=[None])
113 def do_alarm_delete(self
, account
, alarm_id
):
114 return self
._impl
.alarm_delete(account
, alarm_id
)
116 @rwstatus(ret_on_failure
=[None])
117 def do_alarm_list(self
, account
):
118 return self
._impl
.alarm_list(account
)
120 def set_impl(self
, impl
):