3 # Copyright 2016-2017 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 import rift
.mano
.dts
as mano_dts
22 gi
.require_version('RwKeyspec', '1.0')
23 from gi
.repository
.RwKeyspec
import quoted_key
25 class NsrMonParamSubscriber(mano_dts
.AbstractOpdataSubscriber
):
26 """Registers for NSR monitoring parameter changes.
29 monp_id (str): Monitoring Param ID
32 def __init__(self
, log
, dts
, loop
, project
, nsr_id
, monp_id
=None, callback
=None):
33 super().__init
__(log
, dts
, loop
, project
, callback
)
35 self
.monp_id
= monp_id
38 return self
.project
.add_project("D,/nsr:ns-instance-opdata/nsr:nsr" +
39 "[nsr:ns-instance-config-ref={}]".format(quoted_key(self
.nsr_id
)) +
40 "/nsr:monitoring-param" +
41 ("[nsr:id={}]".format(quoted_key(self
.monp_id
)) if self
.monp_id
else ""))
44 class NsrScalingGroupRecordSubscriber(mano_dts
.AbstractOpdataSubscriber
):
45 def __init__(self
, log
, dts
, loop
, project
, nsr_id
, scaling_group
, callback
=None):
46 super().__init
__(log
, dts
, loop
, project
, callback
)
48 self
.scaling_group
= scaling_group
51 return self
.project
.add_project("D,/nsr:ns-instance-opdata/nsr:nsr" +
52 "[nsr:ns-instance-config-ref={}]".format(quoted_key(self
.nsr_id
)) +
53 "/nsr:scaling-group-record" +
54 "[nsr:scaling-group-name-ref={}]/instance".format(quoted_key(self
.scaling_group
)))