update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b second try
[osm/SO.git] / common / python / rift / mano / dts / subscriber / ns_subscriber.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 @file ns_subscriber.py
19 @author Varun Prasad (varun.prasad@riftio.com)
20 @date 09-Jul-2016
21
22 """
23
24 import gi
25 gi.require_version('RwDts', '1.0')
26 from gi.repository import RwDts as rwdts
27
28 from . import core
29
30
31 class NsrCatalogSubscriber(core.AbstractOpdataSubscriber):
32 """Nsr Listener """
33
34 def key_name(self):
35 return "ns_instance_config_ref"
36
37 def get_reg_flags(self):
38 # Hack to around DTS issue with NSR and RwNsr
39 return rwdts.Flag.SUBSCRIBER|rwdts.Flag.DELTA_READY
40
41 def get_xpath(self):
42 return self._project.add_project("D,/nsr:ns-instance-opdata/nsr:nsr")
43
44
45 class NsdCatalogSubscriber(core.AbstractConfigSubscriber):
46 """ The network service descriptor DTS handler """
47
48 def key_name(self):
49 return "id"
50
51 def get_xpath(self):
52 return self._project.add_project("C,/project-nsd:nsd-catalog/project-nsd:nsd")
53
54
55 class NsInstanceConfigSubscriber(core.AbstractConfigSubscriber):
56 """ The network service descriptor DTS handler """
57
58 def key_name(self):
59 return "id"
60
61 def get_xpath(self):
62 return self._project.add_project("C,/nsr:ns-instance-config/nsr:nsr")