X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=rwlaunchpad%2Fra%2Fpytest%2Fns%2Fhaproxy%2Ftest_scaling.py;fp=rwlaunchpad%2Fra%2Fpytest%2Fns%2Fhaproxy%2Ftest_scaling.py;h=ec472a93a2353adad1bb96d49031e9c933d86a43;hb=4870d0ee29789b859931e4e2c73e13dcb29537d5;hp=846ef2e5ff48df38e8e5c54700af27e7599d3c16;hpb=6f1a3fe149e4a6b9803382cb299c902f4cf58ec9;p=osm%2FSO.git diff --git a/rwlaunchpad/ra/pytest/ns/haproxy/test_scaling.py b/rwlaunchpad/ra/pytest/ns/haproxy/test_scaling.py index 846ef2e5..ec472a93 100644 --- a/rwlaunchpad/ra/pytest/ns/haproxy/test_scaling.py +++ b/rwlaunchpad/ra/pytest/ns/haproxy/test_scaling.py @@ -15,18 +15,26 @@ # limitations under the License. # +import gi import pytest -from gi.repository import NsrYang, RwNsrYang, RwVnfrYang, NsdYang, RwNsdYang +from gi.repository import ( + NsrYang, + RwNsrYang, + RwVnfrYang, + RwProjectNsdYang, + ) import rift.auto.session +gi.require_version('RwKeyspec', '1.0') +from gi.repository.RwKeyspec import quoted_key @pytest.fixture(scope='module') def proxy(request, mgmt_session): return mgmt_session.proxy -ScalingGroupInstance = NsrYang.YangData_Nsr_NsInstanceConfig_Nsr_ScalingGroup_Instance -ScalingGroup = NsrYang.YangData_Nsr_NsInstanceConfig_Nsr_ScalingGroup +ScalingGroupInstance = NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr_ScalingGroup_Instance +ScalingGroup = NsrYang.YangData_RwProject_Project_NsInstanceConfig_Nsr_ScalingGroup INSTANCE_ID = 1 @@ -41,9 +49,9 @@ class TestScaling: proxy (Callable): Proxy for launchpad session. state (str): Expected state """ - nsr_opdata = proxy(RwNsrYang).get('/ns-instance-opdata') + nsr_opdata = proxy(RwNsrYang).get('/rw-project:project[rw-project:name="default"]/ns-instance-opdata') nsr = nsr_opdata.nsr[0] - xpath = "/ns-instance-opdata/nsr[ns-instance-config-ref='{}']/operational-status".format(nsr.ns_instance_config_ref) + xpath = "/rw-project:project[rw-project:name='default']/ns-instance-opdata/nsr[ns-instance-config-ref={}]/operational-status".format(quoted_key(nsr.ns_instance_config_ref)) proxy(RwNsrYang).wait_for(xpath, state, timeout=240) def verify_scaling_group(self, proxy, group_name, expected_records_count, scale_out=True): @@ -58,12 +66,12 @@ class TestScaling: 2. Status of the scaling group 3. New vnfr record has been created. """ - nsr_opdata = proxy(RwNsrYang).get('/ns-instance-opdata') + nsr_opdata = proxy(RwNsrYang).get('/rw-project:project[rw-project:name="default"]/ns-instance-opdata') nsr_id = nsr_opdata.nsr[0].ns_instance_config_ref - xpath = ('/ns-instance-opdata/nsr[ns-instance-config-ref="{}"]' - '/scaling-group-record[scaling-group-name-ref="{}"]').format( - nsr_id, group_name) + xpath = ('/rw-project:project[rw-project:name="default"]/ns-instance-opdata/nsr[ns-instance-config-ref={}]' + '/scaling-group-record[scaling-group-name-ref={}]').format( + quoted_key(nsr_id), quoted_key(group_name)) scaling_record = proxy(NsrYang).get(xpath) @@ -74,7 +82,7 @@ class TestScaling: for vnfr in instance.vnfrs: vnfr_record = proxy(RwVnfrYang).get( - "/vnfr-catalog/vnfr[id='{}']".format(vnfr)) + "/rw-project:project[rw-project:name='default']/vnfr-catalog/vnfr[id={}]".format(quoted_key(vnfr))) assert vnfr_record is not None def verify_scale_up(self, proxy, group_name, expected): @@ -105,38 +113,38 @@ class TestScaling: """Wait till the NSR state moves to configured before starting scaling tests. """ - nsr_opdata = proxy(RwNsrYang).get('/ns-instance-opdata') + nsr_opdata = proxy(RwNsrYang).get('/rw-project:project[rw-project:name="default"]/ns-instance-opdata') nsrs = nsr_opdata.nsr assert len(nsrs) == 1 current_nsr = nsrs[0] - xpath = "/ns-instance-opdata/nsr[ns-instance-config-ref='{}']/config-status".format(current_nsr.ns_instance_config_ref) + xpath = "/rw-project:project[rw-project:name='default']/ns-instance-opdata/nsr[ns-instance-config-ref={}]/config-status".format(quoted_key(current_nsr.ns_instance_config_ref)) proxy(RwNsrYang).wait_for(xpath, "configured", timeout=240) def test_min_max_scaling(self, proxy): - nsr_opdata = proxy(RwNsrYang).get('/ns-instance-opdata') + nsr_opdata = proxy(RwNsrYang).get('/rw-project:project[rw-project:name="default"]/ns-instance-opdata') nsrs = nsr_opdata.nsr nsd_id = nsrs[0].nsd_ref nsr_id = nsrs[0].ns_instance_config_ref # group_name = "http_client_group" - xpath = "/ns-instance-opdata/nsr[ns-instance-config-ref='{}']/scaling-group-record".format(nsr_id) + xpath = "/rw-project:project[rw-project:name='default']/ns-instance-opdata/nsr[ns-instance-config-ref={}]/scaling-group-record".format(quoted_key(nsr_id)) scaling_records = proxy(RwNsrYang).get(xpath, list_obj=True) for scaling_record in scaling_records.scaling_group_record: group_name = scaling_record.scaling_group_name_ref - xpath = "/nsd-catalog/nsd[id='{}']/scaling-group-descriptor[name='{}']".format( - nsd_id, group_name) - scaling_group_desc = proxy(NsdYang).get(xpath) + xpath = "/rw-project:project[rw-project:name='default']/nsd-catalog/nsd[id={}]/scaling-group-descriptor[name={}]".format( + quoted_key(nsd_id), quoted_key(group_name)) + scaling_group_desc = proxy(RwProjectNsdYang).get(xpath) # Add + 1 to go beyond the threshold for instance_id in range(1, scaling_group_desc.max_instance_count + 1): - xpath = '/ns-instance-config/nsr[id="{}"]/scaling-group[scaling-group-name-ref="{}"]'.format( - nsr_id, - group_name) + xpath = '/rw-project:project[rw-project:name="default"]/ns-instance-config/nsr[id={}]/scaling-group[scaling-group-name-ref={}]'.format( + quoted_key(nsr_id), + quoted_key(group_name)) instance = ScalingGroupInstance.from_dict({"id": instance_id}) scaling_group = proxy(NsrYang).get(xpath) @@ -155,10 +163,10 @@ class TestScaling: assert instance_id == scaling_group_desc.max_instance_count for instance_id in range(1, scaling_group_desc.max_instance_count): - xpath = ('/ns-instance-config/nsr[id="{}"]/scaling-group' - '[scaling-group-name-ref="{}"]/' - 'instance[id="{}"]').format( - nsr_id, group_name, instance_id) + xpath = ('/rw-project:project[rw-project:name="default"]/ns-instance-config/nsr[id={}]/scaling-group' + '[scaling-group-name-ref={}]/' + 'instance[id={}]').format( + quoted_key(nsr_id), quoted_key(group_name), quoted_key(instance_id)) proxy(NsrYang).delete_config(xpath) self.verify_scale_in(proxy, group_name, instance_id)