blob: ef32bcd5de48f26d81727034a6278a9c0078c8d1 [file] [log] [blame]
Zsolt Haraszti3eb27a52017-01-03 21:56:48 -08001# Copyright 2017 the original author or authors.
Zsolt Haraszti66862032016-11-28 14:28:39 -08002#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14#
Nikolay Titov3b31db92017-08-02 18:11:33 -040015import sys
Zsolt Haraszti66862032016-11-28 14:28:39 -080016import structlog
17from grpc import StatusCode
18from twisted.internet.defer import inlineCallbacks
19from twisted.internet.defer import returnValue
20
21from common.utils.grpc_utils import twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -040022from common.utils.id_generation import \
23 create_cluster_id, create_empty_broadcast_id
Zsolt Haraszti66862032016-11-28 14:28:39 -080024from voltha.core.config.config_root import ConfigRoot
ggowdru236bd952017-06-20 20:32:55 -070025from voltha.protos.device_pb2 import PmConfigs, Images
Zsolt Haraszti66862032016-11-28 14:28:39 -080026from voltha.protos.voltha_pb2 import \
27 add_VolthaGlobalServiceServicer_to_server, VolthaLocalServiceStub, \
28 VolthaGlobalServiceServicer, Voltha, VolthaInstances, VolthaInstance, \
khenaidoo08d48d22017-06-29 19:42:49 -040029 LogicalDevice, Ports, Flows, FlowGroups, Device, SelfTestResponse, \
30 VolthaGlobalServiceStub, Devices, DeviceType, DeviceTypes, DeviceGroup, \
31 AlarmFilter, AlarmFilters
Zsolt Haraszti66862032016-11-28 14:28:39 -080032from voltha.registry import registry
33from google.protobuf.empty_pb2 import Empty
khenaidoo08d48d22017-06-29 19:42:49 -040034from dispatcher import DispatchError
Rachit Shrivastavaa182e912017-07-28 15:18:34 -040035from voltha.protos import bbf_fiber_base_pb2 as fb
Nikolay Titov3b31db92017-08-02 18:11:33 -040036from voltha.protos.bbf_fiber_base_pb2 import ChannelgroupConfig, \
37 ChannelpartitionConfig, ChannelpairConfig, ChannelterminationConfig, \
38 OntaniConfig, VOntaniConfig, VEnetConfig
39from voltha.protos.bbf_fiber_traffic_descriptor_profile_body_pb2 import \
40 TrafficDescriptorProfileData
41from voltha.protos.bbf_fiber_tcont_body_pb2 import TcontsConfigData
42from voltha.protos.bbf_fiber_gemport_body_pb2 import GemportsConfigData
43from voltha.protos.bbf_fiber_multicast_gemport_body_pb2 import \
44 MulticastGemportsConfigData
45from voltha.protos.bbf_fiber_multicast_distribution_set_body_pb2 import \
46 MulticastDistributionSetData
Zsolt Haraszti66862032016-11-28 14:28:39 -080047
48log = structlog.get_logger()
49
50
51class GlobalHandler(VolthaGlobalServiceServicer):
Nikolay Titov3b31db92017-08-02 18:11:33 -040052
53 xpon_object_type = {
54 'CreateChannelgroup': ChannelgroupConfig,
55 'UpdateChannelgroup': ChannelgroupConfig,
56 'DeleteChannelgroup': ChannelgroupConfig,
57 'CreateChannelpartition': ChannelpartitionConfig,
58 'UpdateChannelpartition': ChannelpartitionConfig,
59 'DeleteChannelpartition': ChannelpartitionConfig,
60 'CreateChannelpair': ChannelpairConfig,
61 'UpdateChannelpair': ChannelpairConfig,
62 'DeleteChannelpair': ChannelpairConfig,
63 'CreateChanneltermination': ChannelterminationConfig,
64 'UpdateChanneltermination': ChannelterminationConfig,
65 'DeleteChanneltermination': ChannelterminationConfig,
66 'CreateVOntani': VOntaniConfig,
67 'UpdateVOntani': VOntaniConfig,
68 'DeleteVOntani': VOntaniConfig,
69 'CreateOntani': OntaniConfig,
70 'UpdateOntani': OntaniConfig,
71 'DeleteOntani': OntaniConfig,
72 'CreateVEnet': VEnetConfig,
73 'UpdateVEnet': VEnetConfig,
74 'DeleteVEnet': VEnetConfig,
75 'CreateTrafficDescriptorProfileData': TrafficDescriptorProfileData,
76 'UpdateTrafficDescriptorProfileData': TrafficDescriptorProfileData,
77 'DeleteTrafficDescriptorProfileData': TrafficDescriptorProfileData,
78 'CreateTcontsConfigData': TcontsConfigData,
79 'UpdateTcontsConfigData': TcontsConfigData,
80 'DeleteTcontsConfigData': TcontsConfigData,
81 'CreateGemportsConfigData': GemportsConfigData,
82 'UpdateGemportsConfigData': GemportsConfigData,
83 'DeleteGemportsConfigData': GemportsConfigData,
84 'CreateMulticastGemportsConfigData': MulticastGemportsConfigData,
85 'UpdateMulticastGemportsConfigData': MulticastGemportsConfigData,
86 'DeleteMulticastGemportsConfigData': MulticastGemportsConfigData,
87 'CreateMulticastDistributionSetData': MulticastDistributionSetData,
88 'UpdateMulticastDistributionSetData': MulticastDistributionSetData,
89 'DeleteMulticastDistributionSetData': MulticastDistributionSetData
90 }
91
Zsolt Haraszti66862032016-11-28 14:28:39 -080092 def __init__(self, dispatcher, instance_id, **init_kw):
93 self.dispatcher = dispatcher
94 self.instance_id = instance_id
95 self.init_kw = init_kw
96 self.root = None
97 self.stopped = False
98
99 def start(self):
100 log.debug('starting')
101 self.root = ConfigRoot(Voltha(**self.init_kw))
102 registry('grpc_server').register(
103 add_VolthaGlobalServiceServicer_to_server, self)
104 log.info('started')
105 return self
106
107 def stop(self):
108 log.debug('stopping')
109 self.stopped = True
110 log.info('stopped')
111
112 # gRPC service method implementations. BE CAREFUL; THESE ARE CALLED ON
113 # the gRPC threadpool threads.
114
115 @twisted_async
116 def GetVoltha(self, request, context):
117 log.info('grpc-request', request=request)
118 return self.root.get('/', depth=1)
119
120 @twisted_async
Zsolt Haraszti66862032016-11-28 14:28:39 -0800121 def ListVolthaInstances(self, request, context):
122 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400123 items = self.dispatcher.get_cluster_instances()
124 return VolthaInstances(items=items)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800125
126 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400127 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800128 def GetVolthaInstance(self, request, context):
129 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400130 core_id = self.dispatcher.get_core_id_from_instance_id(request.id)
131 if not core_id:
132 log.info('invalid-instance-id', instance=request.id)
133 context.set_details('Voltha Instance error')
Zsolt Haraszti66862032016-11-28 14:28:39 -0800134 context.set_code(StatusCode.NOT_FOUND)
khenaidoo08d48d22017-06-29 19:42:49 -0400135 returnValue(VolthaInstance())
136
137 response = yield self.dispatcher.dispatch('GetVolthaInstance',
138 Empty(),
139 context,
140 core_id=core_id)
141 log.info('grpc-response', response=response)
142 if isinstance(response, DispatchError):
143 log.info('grpc-error-response', error=response.error_code)
144 context.set_details('Voltha Instance error')
145 context.set_code(response.error_code)
146 returnValue(VolthaInstance())
147 else:
148 log.info('grpc-success-response', response=response)
149 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800150
151 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400152 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800153 def ListLogicalDevices(self, request, context):
khenaidoo08d48d22017-06-29 19:42:49 -0400154 log.info('grpc-request', request=request)
155 response = yield self.dispatcher.dispatch('ListLogicalDevices',
156 Empty(),
157 context,
158 broadcast=True)
159 log.info('grpc-response', response=response)
160 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800161
162 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400163 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800164 def GetLogicalDevice(self, request, context):
165 log.info('grpc-request', request=request)
166
khenaidoo08d48d22017-06-29 19:42:49 -0400167 response = yield self.dispatcher.dispatch('GetLogicalDevice',
168 request,
169 context,
170 id=request.id)
171 log.info('grpc-response', response=response)
172 if isinstance(response, DispatchError):
173 log.info('grpc-error-response', error=response.error_code)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800174 context.set_details(
khenaidoo08d48d22017-06-29 19:42:49 -0400175 'Logical device \'{}\' error'.format(request.id))
176 context.set_code(response.error_code)
177 returnValue(LogicalDevice())
178 else:
179 log.info('grpc-success-response', response=response)
180 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800181
182 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400183 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800184 def ListLogicalDevicePorts(self, request, context):
185 log.info('grpc-request', request=request)
186
khenaidoo08d48d22017-06-29 19:42:49 -0400187 response = yield self.dispatcher.dispatch('ListLogicalDevicePorts',
188 request,
189 context,
190 id=request.id)
191 log.info('grpc-response', response=response)
192 if isinstance(response, DispatchError):
193 log.info('grpc-error-response', error=response.error_code)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800194 context.set_details(
khenaidoo08d48d22017-06-29 19:42:49 -0400195 'Logical device ports \'{}\' error'.format(request.id))
196 context.set_code(response.error_code)
197 returnValue(Ports())
198 else:
199 log.info('grpc-success-response', response=response)
200 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800201
202 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400203 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800204 def ListLogicalDeviceFlows(self, request, context):
205 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400206 response = yield self.dispatcher.dispatch('ListLogicalDeviceFlows',
207 request,
208 context,
209 id=request.id)
210 log.info('grpc-response', response=response)
211 if isinstance(response, DispatchError):
212 log.info('grpc-error-response', error=response.error_code)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800213 context.set_details(
khenaidoo08d48d22017-06-29 19:42:49 -0400214 'Logical device \'{}\' error'.format(request.id))
215 context.set_code(response.error_code)
216 returnValue(Flows())
217 else:
218 log.info('grpc-success-response', response=response)
219 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800220
221 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400222 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800223 def UpdateLogicalDeviceFlowTable(self, request, context):
224 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400225 response = yield self.dispatcher.dispatch(
Zsolt Haraszti66862032016-11-28 14:28:39 -0800226 'UpdateLogicalDeviceFlowTable',
227 request,
khenaidoo08d48d22017-06-29 19:42:49 -0400228 context,
229 id=request.id)
230 log.info('grpc-response', response=response)
231 if isinstance(response, DispatchError):
232 log.info('grpc-error-response', error=response.error_code)
233 context.set_details(
234 'Logical device \'{}\' error'.format(request.id))
235 context.set_code(response.error_code)
236 returnValue(Empty())
237 else:
238 log.info('grpc-success-response', response=response)
239 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800240
241 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400242 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800243 def ListLogicalDeviceFlowGroups(self, request, context):
244 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400245 response = yield self.dispatcher.dispatch(
Zsolt Haraszti66862032016-11-28 14:28:39 -0800246 'ListLogicalDeviceFlowGroups',
247 request,
khenaidoo08d48d22017-06-29 19:42:49 -0400248 context,
249 id=request.id)
250 log.info('grpc-response', response=response)
251 if isinstance(response, DispatchError):
252 log.info('grpc-error-response', error=response.error_code)
253 context.set_details(
254 'Logical device \'{}\' error'.format(request.id))
255 context.set_code(response.error_code)
256 returnValue(FlowGroups())
257 else:
258 log.info('grpc-success-response', response=response)
259 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800260
261 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400262 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800263 def UpdateLogicalDeviceFlowGroupTable(self, request, context):
264 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400265 response = yield self.dispatcher.dispatch(
Zsolt Haraszti66862032016-11-28 14:28:39 -0800266 'UpdateLogicalDeviceFlowGroupTable',
267 request,
khenaidoo08d48d22017-06-29 19:42:49 -0400268 context,
269 id=request.id)
270 log.info('grpc-response', response=response)
271 if isinstance(response, DispatchError):
272 log.info('grpc-error-response', error=response.error_code)
273 context.set_details(
274 'Logical device \'{}\' error'.format(request.id))
275 context.set_code(response.error_code)
276 returnValue(Empty())
277 else:
278 log.info('grpc-success-response', response=response)
279 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800280
281 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400282 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800283 def ListDevices(self, request, context):
khenaidoo08d48d22017-06-29 19:42:49 -0400284 log.info('grpc-request', request=request)
285 response = yield self.dispatcher.dispatch('ListDevices',
286 Empty(),
287 context,
288 broadcast=True)
289 log.info('grpc-response', response=response)
290 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800291
292 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400293 @inlineCallbacks
khenaidoo997edbc2017-07-13 10:25:58 -0400294 def ListAdapters(self, request, context):
295 log.info('grpc-request', request=request)
296 response = yield self.dispatcher.dispatch('ListAdapters',
297 Empty(),
298 context,
299 broadcast=True)
300 log.info('grpc-response', response=response)
301 returnValue(response)
302
303 @twisted_async
304 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800305 def GetDevice(self, request, context):
306 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400307 response = yield self.dispatcher.dispatch('GetDevice',
308 request,
309 context,
310 id=request.id)
311 log.info('grpc-response', response=response)
312 if isinstance(response, DispatchError):
313 log.info('grpc-error-response', error=response.error_code)
314 context.set_details('Device \'{}\' error'.format(request.id))
315 context.set_code(response.error_code)
316 returnValue(Device())
317 else:
318 log.info('grpc-success-response', response=response)
319 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800320
321 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400322 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800323 def CreateDevice(self, request, context):
324 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400325 response = yield self.dispatcher.dispatch('CreateDevice',
326 request,
327 context)
328 log.info('grpc-response', response=response)
329 if isinstance(response, DispatchError):
330 log.info('grpc-error-response', error=response.error_code)
331 context.set_details('Create device error')
332 context.set_code(response.error_code)
333 returnValue(Device())
334 else:
335 log.info('grpc-success-response', response=response)
336 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800337
338 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400339 @inlineCallbacks
Khen Nursimulud068d812017-03-06 11:44:18 -0500340 def EnableDevice(self, request, context):
Zsolt Haraszti66862032016-11-28 14:28:39 -0800341 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400342 response = yield self.dispatcher.dispatch('EnableDevice',
343 request,
344 context,
345 id=request.id)
346 log.info('grpc-response', response=response)
347 if isinstance(response, DispatchError):
348 log.info('grpc-error-response', error=response.error_code)
349 context.set_details('Device \'{}\' error'.format(request.id))
350 context.set_code(response.error_code)
351 returnValue(Device())
352 else:
353 log.info('grpc-success-response', response=response)
354 returnValue(response)
Khen Nursimulud068d812017-03-06 11:44:18 -0500355
356 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400357 @inlineCallbacks
Khen Nursimulud068d812017-03-06 11:44:18 -0500358 def DisableDevice(self, request, context):
359 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400360 response = yield self.dispatcher.dispatch('DisableDevice',
361 request,
362 context,
363 id=request.id)
364 log.info('grpc-response', response=response)
365 if isinstance(response, DispatchError):
366 log.info('grpc-error-response', error=response.error_code)
367 context.set_details('Device \'{}\' error'.format(request.id))
368 context.set_code(response.error_code)
369 returnValue(Device())
370 else:
371 log.info('grpc-success-response', response=response)
372 returnValue(response)
Khen Nursimulud068d812017-03-06 11:44:18 -0500373
374 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400375 @inlineCallbacks
Khen Nursimulud068d812017-03-06 11:44:18 -0500376 def RebootDevice(self, request, context):
377 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400378 response = yield self.dispatcher.dispatch('RebootDevice',
379 request,
380 context,
381 id=request.id)
382 log.info('grpc-response', response=response)
383 if isinstance(response, DispatchError):
384 log.info('grpc-error-response', error=response.error_code)
385 context.set_details('Device \'{}\' error'.format(request.id))
386 context.set_code(response.error_code)
387 returnValue(Device())
388 else:
389 log.info('grpc-success-response', response=response)
390 returnValue(response)
Khen Nursimulud068d812017-03-06 11:44:18 -0500391
392 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400393 @inlineCallbacks
Khen Nursimulud068d812017-03-06 11:44:18 -0500394 def DeleteDevice(self, request, context):
395 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400396 response = yield self.dispatcher.dispatch('DeleteDevice',
397 request,
398 context,
399 id=request.id)
400 log.info('grpc-response', response=response)
401 if isinstance(response, DispatchError):
402 log.info('grpc-error-response', error=response.error_code)
403 context.set_details('Device \'{}\' error'.format(request.id))
404 context.set_code(response.error_code)
405 returnValue(Empty())
406 else:
407 log.info('grpc-success-response', response=response)
408 returnValue(Empty())
Zsolt Haraszti66862032016-11-28 14:28:39 -0800409
410 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400411 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800412 def ListDevicePorts(self, request, context):
413 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400414 response = yield self.dispatcher.dispatch('ListDevicePorts',
415 request,
416 context,
417 id=request.id)
418 log.info('grpc-response', response=response)
419 if isinstance(response, DispatchError):
420 log.info('grpc-error-response', error=response.error_code)
421 context.set_details('Device \'{}\' error'.format(request.id))
422 context.set_code(response.error_code)
423 returnValue(Ports())
424 else:
425 log.info('grpc-success-response', response=response)
426 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800427
Sergio Slobodriana2eb52b2017-03-07 12:24:46 -0500428 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400429 @inlineCallbacks
Sergio Slobodriana2eb52b2017-03-07 12:24:46 -0500430 def ListDevicePmConfigs(self, request, context):
Sergio Slobodrian71960022017-03-09 10:20:57 -0500431 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400432 response = yield self.dispatcher.dispatch('ListDevicePmConfigs',
433 request,
434 context,
435 id=request.id)
436 log.info('grpc-response', response=response)
437 if isinstance(response, DispatchError):
438 log.info('grpc-error-response', error=response.error_code)
439 context.set_details('Device \'{}\' error'.format(request.id))
440 context.set_code(response.error_code)
441 returnValue(PmConfigs())
442 else:
443 log.info('grpc-success-response', response=response)
444 returnValue(response)
Sergio Slobodriana2eb52b2017-03-07 12:24:46 -0500445
Sergio Slobodriana2eb52b2017-03-07 12:24:46 -0500446 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400447 @inlineCallbacks
Sergio Slobodriana2eb52b2017-03-07 12:24:46 -0500448 def UpdateDevicePmConfigs(self, request, context):
Sergio Slobodrian4236ade2017-03-17 22:01:20 -0400449 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400450 response = yield self.dispatcher.dispatch('UpdateDevicePmConfigs',
451 request,
452 context,
453 id=request.id)
454 log.info('grpc-response', response=response)
455 if isinstance(response, DispatchError):
456 log.info('grpc-error-response', error=response.error_code)
457 context.set_details('Device \'{}\' error'.format(request.id))
458 context.set_code(response.error_code)
459 returnValue(Empty())
460 else:
461 log.info('grpc-success-response', response=response)
462 returnValue(response)
Sergio Slobodriana2eb52b2017-03-07 12:24:46 -0500463
Zsolt Haraszti66862032016-11-28 14:28:39 -0800464 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400465 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800466 def ListDeviceFlows(self, request, context):
467 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400468 response = yield self.dispatcher.dispatch('ListDeviceFlows',
469 request,
470 context,
471 id=request.id)
472 log.info('grpc-response', response=response)
473 if isinstance(response, DispatchError):
474 log.info('grpc-error-response', error=response.error_code)
475 context.set_details('Device \'{}\' error'.format(request.id))
476 context.set_code(response.error_code)
477 returnValue(Flows())
478 else:
479 log.info('grpc-success-response', response=response)
480 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800481
482 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400483 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800484 def ListDeviceFlowGroups(self, request, context):
485 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -0400486 response = yield self.dispatcher.dispatch('ListDeviceFlowGroups',
487 request,
488 context,
489 id=request.id)
490 log.info('grpc-response', response=response)
491 if isinstance(response, DispatchError):
492 log.info('grpc-error-response', error=response.error_code)
493 context.set_details('Device \'{}\' error'.format(request.id))
494 context.set_code(response.error_code)
495 returnValue(FlowGroups())
496 else:
497 log.info('grpc-success-response', response=response)
498 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800499
500 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400501 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800502 def ListDeviceTypes(self, request, context):
503 log.info('grpc-request', request=request)
504 # we always deflect this to the local instance, as we assume
505 # they all loaded the same adapters, supporting the same device
506 # types
khenaidoo08d48d22017-06-29 19:42:49 -0400507 response = yield self.dispatcher.dispatch('ListDeviceTypes',
508 request,
509 context)
510 log.info('grpc-response', response=response)
511 if isinstance(response, DispatchError):
512 log.info('grpc-error-response', error=response.error_code)
513 context.set_details('Device types error')
514 context.set_code(response.error_code)
515 returnValue(DeviceTypes())
516 else:
517 log.info('grpc-success-response', response=response)
518 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800519
520 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400521 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800522 def GetDeviceType(self, request, context):
523 log.info('grpc-request', request=request)
524 # we always deflect this to the local instance, as we assume
525 # they all loaded the same adapters, supporting the same device
526 # types
khenaidoo08d48d22017-06-29 19:42:49 -0400527 response = yield self.dispatcher.dispatch('GetDeviceType',
528 request,
529 context)
530 log.info('grpc-response', response=response)
531 if isinstance(response, DispatchError):
532 log.info('grpc-error-response', error=response.error_code)
533 context.set_details('Device type \'{}\' error'.format(
534 request.id))
535 context.set_code(response.error_code)
536 returnValue(DeviceType())
537 else:
538 log.info('grpc-success-response', response=response)
539 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800540
541 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400542 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800543 def ListDeviceGroups(self, request, context):
khenaidoo08d48d22017-06-29 19:42:49 -0400544 log.info('grpc-request', request=request)
545 response = yield self.dispatcher.dispatch('ListDeviceGroups',
546 Empty(),
547 context,
548 broadcast=True)
549 log.info('grpc-response', response=response)
550 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800551
552 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -0400553 @inlineCallbacks
Zsolt Haraszti66862032016-11-28 14:28:39 -0800554 def GetDeviceGroup(self, request, context):
khenaidoo08d48d22017-06-29 19:42:49 -0400555 log.info('grpc-request', request=request)
556 response = yield self.dispatcher.dispatch('GetDeviceGroup',
557 request,
558 context,
559 id=request.id)
560 log.info('grpc-response', response=response)
561 if isinstance(response, DispatchError):
562 log.info('grpc-error-response', error=response.error_code)
563 context.set_details('Device group\'{}\' error'.format(request.id))
564 context.set_code(response.error_code)
565 returnValue(DeviceGroup())
566 else:
567 log.info('grpc-success-response', response=response)
568 returnValue(response)
Zsolt Haraszti66862032016-11-28 14:28:39 -0800569
Nikolay Titov89004ec2017-06-19 18:22:42 -0400570 # bbf_fiber rpcs start
571 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400572 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400573 def GetAllChannelgroupConfig(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400574 log.info('grpc-request', request=request)
575 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400576 'GetAllChannelgroupConfig',
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400577 Empty(),
578 context,
579 broadcast=True)
580 if isinstance(response, DispatchError):
581 log.info('grpc-error-response', error=response.error_code)
582 context.set_details('Channelgroup error')
583 context.set_code(response.error_code)
584 returnValue(Empty())
585 else:
586 log.info('grpc-success-response', response=response)
587 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400588
589 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400590 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400591 def CreateChannelgroup(self, request, context):
Nikolay Titov3b31db92017-08-02 18:11:33 -0400592 _method_name = sys._getframe().f_code.co_name
593 return self.manage_global_xpon_object (request, context, _method_name)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400594
595 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400596 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400597 def UpdateChannelgroup(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400598 log.info('grpc-request', request=request)
599 try:
600 assert isinstance(request, fb.ChannelgroupConfig)
601 request.id = create_empty_broadcast_id()
602 except AssertionError, e:
603 context.set_details(e.message)
604 context.set_code(StatusCode.INVALID_ARGUMENT)
605 returnValue(fb.ChannelgroupConfig())
606 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400607 'UpdateChannelgroup',
608 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400609 context,
610 id=request.id,
611 broadcast=True)
612 if isinstance(response, DispatchError):
613 log.info('grpc-error-response', error=response.error_code)
614 context.set_details('Channelgroup\'{}\' error'.format(request.id))
615 context.set_code(response.error_code)
616 returnValue(fb.ChannelgroupConfig())
617 else:
618 log.info('grpc-success-response', response=response)
619 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400620
621 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400622 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400623 def DeleteChannelgroup(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400624 log.info('grpc-request', request=request)
625 try:
626 assert isinstance(request, fb.ChannelgroupConfig)
627 request.id = create_empty_broadcast_id()
628 except AssertionError, e:
629 context.set_details(e.message)
630 context.set_code(StatusCode.INVALID_ARGUMENT)
631 returnValue(fb.ChannelgroupConfig())
632 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400633 'DeleteChannelgroup',
634 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400635 context,
636 id=request.id,
637 broadcast=True)
638 if isinstance(response, DispatchError):
639 log.info('grpc-error-response', error=response.error_code)
640 context.set_details('Channelgroup\'{}\' error'.format(request.id))
641 context.set_code(response.error_code)
642 returnValue(fb.ChannelgroupConfig())
643 else:
644 log.info('grpc-success-response', response=response)
645 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400646
647 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400648 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400649 def GetAllChannelpartitionConfig(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400650 log.info('grpc-request', request=request)
651 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400652 'GetAllChannelpartitionConfig',
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400653 Empty(),
654 context,
655 broadcast=True)
656 if isinstance(response, DispatchError):
657 log.info('grpc-error-response', error=response.error_code)
658 context.set_details('Channelpartition error')
659 context.set_code(response.error_code)
660 returnValue(Empty())
661 else:
662 log.info('grpc-success-response', response=response)
663 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400664
665 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400666 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400667 def CreateChannelpartition(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400668 log.info('grpc-request', request=request)
669 try:
670 assert isinstance(request, fb.ChannelpartitionConfig)
671 request.id = create_empty_broadcast_id()
672 except AssertionError, e:
673 context.set_details(e.message)
674 context.set_code(StatusCode.INVALID_ARGUMENT)
675 returnValue(fb.ChannelpartitionConfig())
676 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400677 'CreateChannelpartition',
678 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400679 context,
680 id=request.id,
681 broadcast=True)
682 if isinstance(response, DispatchError):
683 log.info('grpc-error-response', error=response.error_code)
684 context.set_details('Channelpartition\'{}\' error'.format(
685 request.id))
686 context.set_code(response.error_code)
687 returnValue(fb.ChannelpartitionConfig())
688 else:
689 log.info('grpc-success-response', response=response)
690 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400691
692 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400693 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400694 def UpdateChannelpartition(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400695 log.info('grpc-request', request=request)
696 try:
697 assert isinstance(request, fb.ChannelpartitionConfig)
698 request.id = create_empty_broadcast_id()
699 except AssertionError, e:
700 context.set_details(e.message)
701 context.set_code(StatusCode.INVALID_ARGUMENT)
702 returnValue(fb.ChannelpartitionConfig())
703 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400704 'UpdateChannelpartition',
705 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400706 context,
707 id=request.id,
708 broadcast=True)
709 if isinstance(response, DispatchError):
710 log.info('grpc-error-response', error=response.error_code)
711 context.set_details('Channelpartition\'{}\' error'.format(
712 request.id))
713 context.set_code(response.error_code)
714 returnValue(fb.ChannelpartitionConfig())
715 else:
716 log.info('grpc-success-response', response=response)
717 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400718
719 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400720 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400721 def DeleteChannelpartition(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400722 log.info('grpc-request', request=request)
723 try:
724 assert isinstance(request, fb.ChannelpartitionConfig)
725 request.id = create_empty_broadcast_id()
726 except AssertionError, e:
727 context.set_details(e.message)
728 context.set_code(StatusCode.INVALID_ARGUMENT)
729 returnValue(fb.ChannelpartitionConfig())
730 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400731 'DeleteChannelpartition',
732 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400733 context,
734 id=request.id,
735 broadcast=True)
736 if isinstance(response, DispatchError):
737 log.info('grpc-error-response', error=response.error_code)
738 context.set_details('Channelpartition\'{}\' error'.format(
739 request.id))
740 context.set_code(response.error_code)
741 returnValue(fb.ChannelpartitionConfig())
742 else:
743 log.info('grpc-success-response', response=response)
744 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400745
746 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400747 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400748 def GetAllChannelpairConfig(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400749 log.info('grpc-request', request=request)
750 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400751 'GetAllChannelpairConfig',
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400752 Empty(),
753 context,
754 broadcast=True)
755 if isinstance(response, DispatchError):
756 log.info('grpc-error-response', error=response.error_code)
757 context.set_details('Channelpair error')
758 context.set_code(response.error_code)
759 returnValue(Empty())
760 else:
761 log.info('grpc-success-response', response=response)
762 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400763
764 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400765 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400766 def CreateChannelpair(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400767 log.info('grpc-request', request=request)
768 try:
769 assert isinstance(request, fb.ChannelpairConfig)
770 request.id = create_empty_broadcast_id()
771 except AssertionError, e:
772 context.set_details(e.message)
773 context.set_code(StatusCode.INVALID_ARGUMENT)
774 returnValue(fb.ChannelpairConfig())
775 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400776 'CreateChannelpair',
777 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400778 context,
779 id=request.id,
780 broadcast=True)
781 if isinstance(response, DispatchError):
782 log.info('grpc-error-response', error=response.error_code)
783 context.set_details('Channelpair\'{}\' error'.format(request.id))
784 context.set_code(response.error_code)
785 returnValue(fb.ChannelpairConfig())
786 else:
787 log.info('grpc-success-response', response=response)
788 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400789
790 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400791 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400792 def UpdateChannelpair(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400793 log.info('grpc-request', request=request)
794 try:
795 assert isinstance(request, fb.ChannelpairConfig)
796 request.id = create_empty_broadcast_id()
797 except AssertionError, e:
798 context.set_details(e.message)
799 context.set_code(StatusCode.INVALID_ARGUMENT)
800 returnValue(fb.ChannelpairConfig())
801 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400802 'UpdateChannelpair',
803 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400804 context,
805 id=request.id,
806 broadcast=True)
807 if isinstance(response, DispatchError):
808 log.info('grpc-error-response', error=response.error_code)
809 context.set_details('Channelpair\'{}\' error'.format(request.id))
810 context.set_code(response.error_code)
811 returnValue(fb.ChannelpairConfig())
812 else:
813 log.info('grpc-success-response', response=response)
814 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400815
816 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400817 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400818 def DeleteChannelpair(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400819 log.info('grpc-request', request=request)
820 try:
821 assert isinstance(request, fb.ChannelpairConfig)
822 request.id = create_empty_broadcast_id()
823 except AssertionError, e:
824 context.set_details(e.message)
825 context.set_code(StatusCode.INVALID_ARGUMENT)
826 returnValue(fb.ChannelpairConfig())
827 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400828 'DeleteChannelpair',
829 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400830 context,
831 id=request.id,
832 broadcast=True)
833 if isinstance(response, DispatchError):
834 log.info('grpc-error-response', error=response.error_code)
835 context.set_details('Channelpair\'{}\' error'.format(request.id))
836 context.set_code(response.error_code)
837 returnValue(fb.ChannelpairConfig())
838 else:
839 log.info('grpc-success-response', response=response)
840 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400841
842 @twisted_async
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400843 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400844 def GetAllChannelterminationConfig(self, request, context):
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400845 log.info('grpc-request', request=request)
846 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400847 'GetAllChannelterminationConfig',
848 request,
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400849 context,
850 id=request.id)
851 log.info('grpc-response', response=response)
852 if isinstance(response, DispatchError):
853 log.info('grpc-error-response', error=response.error_code)
854 context.set_details('Channeltermination \'{}\' error'.format(
855 request.id))
856 context.set_code(response.error_code)
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400857 returnValue(fb.ChannelterminationConfig())
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400858 else:
859 log.info('grpc-success-response', response=response)
860 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400861
862 @twisted_async
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400863 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400864 def CreateChanneltermination(self, request, context):
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400865 log.info('grpc-request', request=request)
866 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400867 'CreateChanneltermination',
868 request,
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400869 context,
870 id=request.id)
871 log.info('grpc-response', response=response)
872 if isinstance(response, DispatchError):
873 log.info('grpc-error-response', error=response.error_code)
874 context.set_details('Channeltermination \'{}\' error'.format(
875 request.id))
876 context.set_code(response.error_code)
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400877 returnValue(fb.ChannelterminationConfig())
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400878 else:
879 log.info('grpc-success-response', response=response)
880 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400881
882 @twisted_async
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400883 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400884 def UpdateChanneltermination(self, request, context):
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400885 log.info('grpc-request', request=request)
886 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400887 'UpdateChanneltermination',
888 request,
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400889 context,
890 id=request.id)
891 log.info('grpc-response', response=response)
892 if isinstance(response, DispatchError):
893 log.info('grpc-error-response', error=response.error_code)
894 context.set_details('Channeltermination \'{}\' error'.format(
895 request.id))
896 context.set_code(response.error_code)
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400897 returnValue(fb.ChannelterminationConfig())
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400898 else:
899 log.info('grpc-success-response', response=response)
900 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400901
902 @twisted_async
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400903 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400904 def DeleteChanneltermination(self, request, context):
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400905 log.info('grpc-request', request=request)
906 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400907 'DeleteChanneltermination',
908 request,
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400909 context,
910 id=request.id)
911 log.info('grpc-response', response=response)
912 if isinstance(response, DispatchError):
913 log.info('grpc-error-response', error=response.error_code)
914 context.set_details('Channeltermination \'{}\' error'.format(
915 request.id))
916 context.set_code(response.error_code)
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400917 returnValue(fb.ChannelterminationConfig())
918 else:
919 log.info('grpc-success-response', response=response)
920 returnValue(response)
921
922 @twisted_async
923 @inlineCallbacks
924 def GetAllOntaniConfig(self, request, context):
925 log.info('grpc-request', request=request)
926 response = yield self.dispatcher.dispatch(
927 'GetAllOntaniConfig',
928 Empty(),
929 context,
930 broadcast=True)
931 if isinstance(response, DispatchError):
932 log.info('grpc-error-response', error=response.error_code)
933 context.set_details('Ontani error')
934 context.set_code(response.error_code)
Rachit Shrivastava8f4f9bf2017-07-20 11:59:30 -0400935 returnValue(Empty())
936 else:
937 log.info('grpc-success-response', response=response)
938 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400939
940 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400941 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400942 def CreateOntani(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400943 log.info('grpc-request', request=request)
944 try:
945 assert isinstance(request, fb.OntaniConfig)
946 request.id = create_empty_broadcast_id()
947 except AssertionError, e:
948 context.set_details(e.message)
949 context.set_code(StatusCode.INVALID_ARGUMENT)
950 returnValue(fb.OntaniConfig())
951 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400952 'CreateOntani',
953 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400954 context,
955 id=request.id,
956 broadcast=True)
957 if isinstance(response, DispatchError):
958 log.info('grpc-error-response', error=response.error_code)
959 context.set_details('Ontani \'{}\' error'.format(request.id))
960 context.set_code(response.error_code)
961 returnValue(fb.OntaniConfig())
962 else:
963 log.info('grpc-success-response', response=response)
964 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400965
966 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400967 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400968 def UpdateOntani(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400969 log.info('grpc-request', request=request)
970 try:
971 assert isinstance(request, fb.OntaniConfig)
972 request.id = create_empty_broadcast_id()
973 except AssertionError, e:
974 context.set_details(e.message)
975 context.set_code(StatusCode.INVALID_ARGUMENT)
976 returnValue(fb.OntaniConfig())
977 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -0400978 'UpdateOntani',
979 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400980 context,
981 id=request.id,
982 broadcast=True)
983 if isinstance(response, DispatchError):
984 log.info('grpc-error-response', error=response.error_code)
985 context.set_details('Ontani \'{}\' error'.format(request.id))
986 context.set_code(response.error_code)
987 returnValue(fb.OntaniConfig())
988 else:
989 log.info('grpc-success-response', response=response)
990 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -0400991
992 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400993 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -0400994 def DeleteOntani(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -0400995 log.info('grpc-request', request=request)
996 try:
997 assert isinstance(request, fb.OntaniConfig)
998 request.id = create_empty_broadcast_id()
999 except AssertionError, e:
1000 context.set_details(e.message)
1001 context.set_code(StatusCode.INVALID_ARGUMENT)
1002 returnValue(fb.OntaniConfig())
1003 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001004 'DeleteOntani',
1005 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001006 context,
1007 id=request.id,
1008 broadcast=True)
1009 if isinstance(response, DispatchError):
1010 log.info('grpc-error-response', error=response.error_code)
1011 context.set_details('Ontani \'{}\' error'.format(request.id))
1012 context.set_code(response.error_code)
1013 returnValue(fb.OntaniConfig())
1014 else:
1015 log.info('grpc-success-response', response=response)
1016 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001017
1018 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001019 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001020 def GetAllVOntaniConfig(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001021 log.info('grpc-request', request=request)
1022 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001023 'GetAllVOntaniConfig',
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001024 Empty(),
1025 context,
1026 broadcast=True)
1027 if isinstance(response, DispatchError):
1028 log.info('grpc-error-response', error=response.error_code)
1029 context.set_details('VOntani error')
1030 context.set_code(response.error_code)
1031 returnValue(Empty())
1032 else:
1033 log.info('grpc-success-response', response=response)
1034 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001035
1036 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001037 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001038 def CreateVOntani(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001039 log.info('grpc-request', request=request)
1040 try:
1041 assert isinstance(request, fb.VOntaniConfig)
1042 request.id = create_empty_broadcast_id()
1043 except AssertionError, e:
1044 context.set_details(e.message)
1045 context.set_code(StatusCode.INVALID_ARGUMENT)
1046 returnValue(fb.VOntaniConfig())
1047 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001048 'CreateVOntani',
1049 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001050 context,
1051 id=request.id,
1052 broadcast=True)
1053 if isinstance(response, DispatchError):
1054 log.info('grpc-error-response', error=response.error_code)
1055 context.set_details('VOntani \'{}\' error'.format(request.id))
1056 context.set_code(response.error_code)
1057 returnValue(fb.VOntaniConfig())
1058 else:
1059 log.info('grpc-success-response', response=response)
1060 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001061
1062 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001063 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001064 def UpdateVOntani(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001065 log.info('grpc-request', request=request)
1066 try:
1067 assert isinstance(request, fb.VOntaniConfig)
1068 request.id = create_empty_broadcast_id()
1069 except AssertionError, e:
1070 context.set_details(e.message)
1071 context.set_code(StatusCode.INVALID_ARGUMENT)
1072 returnValue(fb.VOntaniConfig())
1073 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001074 'UpdateVOntani',
1075 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001076 context,
1077 id=request.id,
1078 broadcast=True)
1079 if isinstance(response, DispatchError):
1080 log.info('grpc-error-response', error=response.error_code)
1081 context.set_details('VOntani \'{}\' error'.format(request.id))
1082 context.set_code(response.error_code)
1083 returnValue(fb.VOntaniConfig())
1084 else:
1085 log.info('grpc-success-response', response=response)
1086 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001087
1088 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001089 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001090 def DeleteVOntani(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001091 log.info('grpc-request', request=request)
1092 try:
1093 assert isinstance(request, fb.VOntaniConfig)
1094 request.id = create_empty_broadcast_id()
1095 except AssertionError, e:
1096 context.set_details(e.message)
1097 context.set_code(StatusCode.INVALID_ARGUMENT)
1098 returnValue(fb.VOntaniConfig())
1099 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001100 'DeleteVOntani',
1101 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001102 context,
1103 id=request.id,
1104 broadcast=True)
1105 if isinstance(response, DispatchError):
1106 log.info('grpc-error-response', error=response.error_code)
1107 context.set_details('VOntani \'{}\' error'.format(request.id))
1108 context.set_code(response.error_code)
1109 returnValue(fb.VOntaniConfig())
1110 else:
1111 log.info('grpc-success-response', response=response)
1112 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001113
1114 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001115 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001116 def GetAllVEnetConfig(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001117 log.info('grpc-request', request=request)
1118 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001119 'GetAllVEnetConfig',
1120 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001121 context,
1122 broadcast=True)
1123 if isinstance(response, DispatchError):
1124 log.info('grpc-error-response', error=response.error_code)
1125 context.set_details('VEnet error')
1126 context.set_code(response.error_code)
1127 returnValue(Empty())
1128 else:
1129 log.info('grpc-success-response', response=response)
1130 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001131
1132 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001133 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001134 def CreateVEnet(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001135 log.info('grpc-request', request=request)
1136 try:
1137 assert isinstance(request, fb.VEnetConfig)
1138 request.id = create_empty_broadcast_id()
1139 except AssertionError, e:
1140 context.set_details(e.message)
1141 context.set_code(StatusCode.INVALID_ARGUMENT)
1142 returnValue(fb.VEnetConfig())
1143 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001144 'CreateVEnet',
1145 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001146 context,
1147 id=request.id,
1148 broadcast=True)
1149 if isinstance(response, DispatchError):
1150 log.info('grpc-error-response', error=response.error_code)
1151 context.set_details('VEnet \'{}\' error'.format(request.id))
1152 context.set_code(response.error_code)
1153 returnValue(fb.VEnetConfig())
1154 else:
1155 log.info('grpc-success-response', response=response)
1156 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001157
1158 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001159 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001160 def UpdateVEnet(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001161 log.info('grpc-request', request=request)
1162 try:
1163 assert isinstance(request, fb.VEnetConfig)
1164 request.id = create_empty_broadcast_id()
1165 except AssertionError, e:
1166 context.set_details(e.message)
1167 context.set_code(StatusCode.INVALID_ARGUMENT)
1168 returnValue(fb.VEnetConfig())
1169 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001170 'UpdateVEnet',
1171 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001172 context,
1173 id=request.id,
1174 broadcast=True)
1175 if isinstance(response, DispatchError):
1176 log.info('grpc-error-response', error=response.error_code)
1177 context.set_details('VEnet \'{}\' error'.format(request.id))
1178 context.set_code(response.error_code)
1179 returnValue(fb.VEnetConfig())
1180 else:
1181 log.info('grpc-success-response', response=response)
1182 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001183
1184 @twisted_async
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001185 @inlineCallbacks
Nikolay Titov89004ec2017-06-19 18:22:42 -04001186 def DeleteVEnet(self, request, context):
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001187 log.info('grpc-request', request=request)
1188 try:
1189 assert isinstance(request, fb.VEnetConfig)
1190 request.id = create_empty_broadcast_id()
1191 except AssertionError, e:
1192 context.set_details(e.message)
1193 context.set_code(StatusCode.INVALID_ARGUMENT)
1194 returnValue(fb.VEnetConfig())
1195 response = yield self.dispatcher.dispatch(
Nikolay Titov89004ec2017-06-19 18:22:42 -04001196 'DeleteVEnet',
1197 request,
Rachit Shrivastavaa182e912017-07-28 15:18:34 -04001198 context,
1199 id=request.id,
1200 broadcast=True)
1201 if isinstance(response, DispatchError):
1202 log.info('grpc-error-response', error=response.error_code)
1203 context.set_details('VEnet \'{}\' error'.format(request.id))
1204 context.set_code(response.error_code)
1205 returnValue(fb.VEnetConfig())
1206 else:
1207 log.info('grpc-success-response', response=response)
1208 returnValue(response)
Nikolay Titov3b31db92017-08-02 18:11:33 -04001209
1210 @twisted_async
1211 @inlineCallbacks
1212 def GetAllTrafficDescriptorProfileData(self, request, context):
1213 _method_name = sys._getframe().f_code.co_name
1214 return self.get_all_global_xpon_object_data (request, context,
1215 _method_name)
1216
1217 @twisted_async
1218 @inlineCallbacks
1219 def CreateTrafficDescriptorProfileData(self, request, context):
1220 _method_name = sys._getframe().f_code.co_name
1221 return self.manage_global_xpon_object (request, context,
1222 _method_name)
1223
1224 @twisted_async
1225 @inlineCallbacks
1226 def UpdateTrafficDescriptorProfileData(self, request, context):
1227 _method_name = sys._getframe().f_code.co_name
1228 return self.manage_global_xpon_object (request, context,
1229 _method_name)
1230
1231 @twisted_async
1232 @inlineCallbacks
1233 def DeleteTrafficDescriptorProfileData(self, request, context):
1234 _method_name = sys._getframe().f_code.co_name
1235 return self.manage_global_xpon_object (request, context,
1236 _method_name)
1237
1238 @twisted_async
1239 @inlineCallbacks
1240 def GetAllTcontsConfigData(self, request, context):
1241 _method_name = sys._getframe().f_code.co_name
1242 return self.get_all_global_xpon_object_data (request, context,
1243 _method_name)
1244
1245 @twisted_async
1246 @inlineCallbacks
1247 def CreateTcontsConfigData(self, request, context):
1248 _method_name = sys._getframe().f_code.co_name
1249 return self.manage_global_xpon_object (request, context, _method_name)
1250
1251 @twisted_async
1252 @inlineCallbacks
1253 def UpdateTcontsConfigData(self, request, context):
1254 _method_name = sys._getframe().f_code.co_name
1255 return self.manage_global_xpon_object (request, context, _method_name)
1256
1257 @twisted_async
1258 @inlineCallbacks
1259 def DeleteTcontsConfigData(self, request, context):
1260 _method_name = sys._getframe().f_code.co_name
1261 return self.manage_global_xpon_object (request, context, _method_name)
1262
1263 @twisted_async
1264 @inlineCallbacks
1265 def GetAllGemportsConfigData(self, request, context):
1266 _method_name = sys._getframe().f_code.co_name
1267 return self.get_all_global_xpon_object_data (request, context,
1268 _method_name)
1269
1270 @twisted_async
1271 @inlineCallbacks
1272 def CreateGemportsConfigData(self, request, context):
1273 _method_name = sys._getframe().f_code.co_name
1274 return self.manage_global_xpon_object (request, context, _method_name)
1275
1276 @twisted_async
1277 @inlineCallbacks
1278 def UpdateGemportsConfigData(self, request, context):
1279 _method_name = sys._getframe().f_code.co_name
1280 return self.manage_global_xpon_object (request, context, _method_name)
1281
1282 @twisted_async
1283 @inlineCallbacks
1284 def DeleteGemportsConfigData(self, request, context):
1285 _method_name = sys._getframe().f_code.co_name
1286 return self.manage_global_xpon_object (request, context, _method_name)
1287
1288 @twisted_async
1289 @inlineCallbacks
1290 def GetAllMulticastGemportsConfigData(self, request, context):
1291 _method_name = sys._getframe().f_code.co_name
1292 return self.get_all_global_xpon_object_data (request, context,
1293 _method_name)
1294
1295 @twisted_async
1296 @inlineCallbacks
1297 def CreateMulticastGemportsConfigData(self, request, context):
1298 _method_name = sys._getframe().f_code.co_name
1299 return self.manage_global_xpon_object (request, context, _method_name)
1300
1301 @twisted_async
1302 @inlineCallbacks
1303 def UpdateMulticastGemportsConfigData(self, request, context):
1304 _method_name = sys._getframe().f_code.co_name
1305 return self.manage_global_xpon_object (request, context, _method_name)
1306
1307 @twisted_async
1308 @inlineCallbacks
1309 def DeleteMulticastGemportsConfigData(self, request, context):
1310 _method_name = sys._getframe().f_code.co_name
1311 return self.manage_global_xpon_object (request, context, _method_name)
1312
1313 @twisted_async
1314 @inlineCallbacks
1315 def GetAllMulticastDistributionSetData(self, request, context):
1316 _method_name = sys._getframe().f_code.co_name
1317 return self.get_all_global_xpon_object_data (request, context,
1318 _method_name)
1319
1320 @twisted_async
1321 @inlineCallbacks
1322 def CreateMulticastDistributionSetData(self, request, context):
1323 _method_name = sys._getframe().f_code.co_name
1324 return self.manage_global_xpon_object (request, context, _method_name)
1325
1326 @twisted_async
1327 @inlineCallbacks
1328 def UpdateMulticastDistributionSetData(self, request, context):
1329 _method_name = sys._getframe().f_code.co_name
1330 return self.manage_global_xpon_object (request, context, _method_name)
1331
1332 @twisted_async
1333 @inlineCallbacks
1334 def DeleteMulticastDistributionSetData(self, request, context):
1335 _method_name = sys._getframe().f_code.co_name
1336 return self.manage_global_xpon_object (request, context, _method_name)
1337
1338 def get_all_global_xpon_object_data(self, request, context, method_name):
1339 log.info('grpc-request', request=request)
1340 response = yield self.dispatcher.dispatch(
1341 method_name,
1342 Empty(),
1343 context,
1344 broadcast=True)
1345 if isinstance(response, DispatchError):
1346 log.info('grpc-error-response', error=response.error_code)
1347 context.set_details('{}\' error' .format(type(request).__name__))
1348 context.set_code(response.error_code)
1349 returnValue(Empty())
1350 else:
1351 log.info('grpc-success-response', response=response)
1352 returnValue(response)
1353
1354 def manage_global_xpon_object(self, request, context, method_name):
1355 log.info('grpc-request', request=request)
1356 _xpon_object_type = self.xpon_object_type[method_name]
1357 try:
1358 assert isinstance(request, _xpon_object_type)
1359 request.id = create_empty_broadcast_id()
1360 except AssertionError, e:
1361 context.set_details(e.message)
1362 context.set_code(StatusCode.INVALID_ARGUMENT)
1363 returnValue(_xpon_object_type())
1364 response = yield self.dispatcher.dispatch(
1365 method_name,
1366 request,
1367 context,
1368 id=request.id,
1369 broadcast=True)
1370 if isinstance(response, DispatchError):
1371 log.info('grpc-error-response', error=response.error_code)
1372 context.set_details('{}\'{}\' error'.format(type(request).__name__,
1373 request.id))
1374 context.set_code(response.error_code)
1375 returnValue(_xpon_object_type())
1376 else:
1377 log.info('grpc-success-response', response=response)
1378 returnValue(response)
Nikolay Titov89004ec2017-06-19 18:22:42 -04001379 # bbf_fiber rpcs end
1380
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001381 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -04001382 @inlineCallbacks
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001383 def CreateAlarmFilter(self, request, context):
1384 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -04001385 # Since AlarmFilter applies to the entire cluster, it will be assigned
1386 # a global id (using a global core_id). Every Voltha instance will
1387 # have the same data. Since the voltha instances are managed by
1388 # docker swarm mode then whenever an instance goes down it will be
1389 # brought up right away, hence reducing the chance of two instances
1390 # having different data. In future phases, we should adopt the
1391 # strategy of having a unique persistence model for cluster data
1392 # compare to instance data
1393 try:
1394 assert isinstance(request, AlarmFilter)
1395 request.id = create_cluster_id()
1396 except AssertionError, e:
1397 context.set_details(e.message)
1398 context.set_code(StatusCode.INVALID_ARGUMENT)
1399 returnValue(AlarmFilter())
1400
1401 response = yield self.dispatcher.dispatch('CreateAlarmFilter',
1402 request,
1403 context,
1404 id=request.id,
1405 broadcast=True)
1406 log.info('grpc-response', response=response)
1407 if isinstance(response, DispatchError):
1408 log.info('grpc-error-response', error=response.error_code)
1409 context.set_details('Create alarm error')
1410 context.set_code(response.error_code)
1411 returnValue(AlarmFilter())
1412 else:
1413 log.info('grpc-success-response', response=response)
1414 returnValue(response)
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001415
1416 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -04001417 @inlineCallbacks
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001418 def GetAlarmFilter(self, request, context):
khenaidoo08d48d22017-06-29 19:42:49 -04001419 log.info('grpc-request', request=request)
1420 response = yield self.dispatcher.dispatch('GetAlarmFilter',
1421 request,
1422 context,
1423 id=request.id)
1424 log.info('grpc-response', response=response)
1425 if isinstance(response, DispatchError):
1426 log.info('grpc-error-response', error=response.error_code)
1427 context.set_details('Alarm filter\'{}\' error'.format(request.id))
1428 context.set_code(response.error_code)
1429 returnValue(AlarmFilter())
1430 else:
1431 log.info('grpc-success-response', response=response)
1432 returnValue(response)
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001433
1434 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -04001435 @inlineCallbacks
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001436 def UpdateAlarmFilter(self, request, context):
1437 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -04001438 response = yield self.dispatcher.dispatch('UpdateAlarmFilter',
1439 request,
1440 context,
1441 id=request.id,
1442 broadcast=True)
1443 log.info('grpc-response', response=response)
1444 if isinstance(response, DispatchError):
1445 log.info('grpc-error-response', error=response.error_code)
1446 context.set_details('Alarm filter\'{}\' error'.format(request.id))
1447 context.set_code(response.error_code)
1448 returnValue(AlarmFilter())
1449 else:
1450 log.info('grpc-success-response', response=response)
1451 returnValue(response)
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001452
1453 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -04001454 @inlineCallbacks
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001455 def DeleteAlarmFilter(self, request, context):
1456 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -04001457 response = yield self.dispatcher.dispatch('DeleteAlarmFilter',
1458 request,
1459 context,
1460 id=request.id,
1461 broadcast=True)
1462 log.info('grpc-response', response=response)
1463 if isinstance(response, DispatchError):
1464 log.info('grpc-error-response', error=response.error_code)
1465 context.set_details('Alarm filter\'{}\' error'.format(request.id))
1466 context.set_code(response.error_code)
1467 returnValue(Empty())
1468 else:
1469 log.info('grpc-success-response', response=response)
1470 returnValue(Empty())
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001471
1472 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -04001473 @inlineCallbacks
Stephane Barbarie4db8ca22017-04-24 10:30:20 -04001474 def ListAlarmFilters(self, request, context):
khenaidoo08d48d22017-06-29 19:42:49 -04001475 log.info('grpc-request', request=request)
1476 response = yield self.dispatcher.dispatch('ListAlarmFilters',
1477 Empty(),
1478 context,
1479 broadcast=True)
1480 log.info('grpc-response', response=response)
1481 if isinstance(response, DispatchError):
1482 log.info('grpc-error-response', error=response.error_code)
1483 context.set_details('Alarm filters error')
1484 context.set_code(response.error_code)
1485 returnValue(AlarmFilter())
1486 else:
1487 log.info('grpc-success-response', response=response)
1488 returnValue(response)
ggowdru236bd952017-06-20 20:32:55 -07001489
1490 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -04001491 @inlineCallbacks
ggowdru236bd952017-06-20 20:32:55 -07001492 def GetImages(self, request, context):
1493 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -04001494 response = yield self.dispatcher.dispatch('GetImages',
1495 request,
1496 context,
1497 id=request.id)
1498 log.info('grpc-response', response=response)
1499 if isinstance(response, DispatchError):
1500 log.info('grpc-error-response', error=response.error_code)
1501 context.set_details('Device \'{}\' error'.format(request.id))
1502 context.set_code(response.error_code)
1503 returnValue(Images())
1504 else:
1505 log.info('grpc-success-response', response=response)
1506 returnValue(response)
sathishg5ae86222017-06-28 15:16:29 +05301507
1508 @twisted_async
khenaidoo08d48d22017-06-29 19:42:49 -04001509 @inlineCallbacks
sathishg5ae86222017-06-28 15:16:29 +05301510 def SelfTest(self, request, context):
1511 log.info('grpc-request', request=request)
khenaidoo08d48d22017-06-29 19:42:49 -04001512 response = yield self.dispatcher.dispatch('SelfTest',
1513 request,
1514 context,
1515 id=request.id)
1516 log.info('grpc-response', response=response)
1517 if isinstance(response, DispatchError):
1518 log.info('grpc-error-response', error=response.error_code)
1519 context.set_details('Device \'{}\' error'.format(request.id))
1520 context.set_code(response.error_code)
1521 returnValue(SelfTestResponse())
1522 else:
1523 log.info('grpc-success-response', response=response)
1524 returnValue(response)