b69192b3b2c1bfe5406a67c788c958013b97641d
4 # Copyright 2017 RIFT.IO Inc
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
19 @file test_accounts_framework.py
20 @author Paul Laidler (Paul.Laidler@riftio.com)
22 @brief Test logical account usage with vim and ro
36 from contextlib
import contextmanager
39 import rift
.auto
.session
40 import rift
.auto
.descriptor
42 import rift
.mano
.examples
.ping_pong_nsd
44 gi
.require_version('RwVnfrYang', '1.0')
45 from gi
.repository
import (
54 logging
.basicConfig(level
=logging
.DEBUG
)
55 logger
= logging
.getLogger(__name__
)
57 @pytest.fixture(scope
='session')
58 def descriptors_pingpong():
59 return rift
.mano
.examples
.ping_pong_nsd
.generate_ping_pong_descriptors(pingcount
=1)
61 @pytest.fixture(scope
='session')
62 def packages_pingpong(descriptors_pingpong
):
63 return rift
.auto
.descriptor
.generate_descriptor_packages(descriptors_pingpong
)
65 def VerifyAllInstancesRunning(mgmt_session
):
66 ''' Verifies all network service instances reach running operational status '''
67 nsr_opdata
= mgmt_session
.proxy(RwNsrYang
).get("/rw-project:project[rw-project:name='default']/ns-instance-opdata")
71 "/rw-project:project[rw-project:name='default']/ns-instance-opdata/nsr[ns-instance-config-ref='{ns_instance_config_ref}']/operational-status"
73 ns_instance_config_ref
=nsr
.ns_instance_config_ref
75 mgmt_session
.proxy(RwNsrYang
).wait_for(xpath
, "running", fail_on
=['failed'], timeout
=300)
77 def VerifyAllInstancesConfigured(mgmt_session
):
78 ''' Verifies all network service instances reach configured config status '''
79 nsr_opdata
= mgmt_session
.proxy(RwNsrYang
).get("/rw-project:project[rw-project:name='default']/ns-instance-opdata")
83 "/rw-project:project[rw-project:name='default']/ns-instance-opdata/nsr[ns-instance-config-ref='{}']/config-status"
85 nsr
.ns_instance_config_ref
87 mgmt_session
.proxy(RwNsrYang
).wait_for(xpath
, "configured", fail_on
=['failed'], timeout
=300)
89 @pytest.mark
.depends('launchpad')
90 @pytest.mark
.setup('descriptors')
91 @pytest.mark
.incremental
92 class TestSetupPingpong(object):
93 def test_onboard(self
, mgmt_session
, packages_pingpong
):
94 for descriptor_package
in packages_pingpong
:
95 rift
.auto
.descriptor
.onboard(mgmt_session
, descriptor_package
)
97 @pytest.mark
.depends('descriptors')
98 @pytest.mark
.incremental
99 class TestInstantiateVim
:
100 def test_instantiate_vim(self
, mgmt_session
, cloud_account_name
):
101 nsd_catalog
= mgmt_session
.proxy(RwProjectNsdYang
).get_config("/rw-project:project[rw-project:name='default']/nsd-catalog")
102 nsd
= nsd_catalog
.nsd
[0]
104 nsr
= rift
.auto
.descriptor
.create_nsr(
109 mgmt_session
.proxy(RwNsrYang
).create_config("/rw-project:project[rw-project:name='default']/ns-instance-config/nsr", nsr
)
111 def test_verify_running(self
, mgmt_session
):
112 VerifyAllInstancesRunning(mgmt_session
)
114 def test_verify_configured(self
, mgmt_session
):
115 VerifyAllInstancesConfigured(mgmt_session
)
117 @pytest.mark
.depends('descriptors')
118 @pytest.mark
.incremental
119 class TestInstantiateRo
:
120 def test_instantiate_ro(self
, mgmt_session
, cloud_account_name
, ro_map
):
121 nsd_catalog
= mgmt_session
.proxy(RwProjectNsdYang
).get_config("/rw-project:project[rw-project:name='default']/nsd-catalog")
122 nsd
= nsd_catalog
.nsd
[0]
124 resource_orchestrator
, datacenter
= ro_map
[cloud_account_name
]
125 nsr
= rift
.auto
.descriptor
.create_nsr(
129 resource_orchestrator
=resource_orchestrator
131 mgmt_session
.proxy(RwNsrYang
).create_config("/rw-project:project[rw-project:name='default']/ns-instance-config/nsr", nsr
)
133 def test_verify_running(self
, mgmt_session
):
134 VerifyAllInstancesRunning(mgmt_session
)
136 def test_verify_configured(self
, mgmt_session
):
137 VerifyAllInstancesConfigured(mgmt_session
)