X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=rwlaunchpad%2Fplugins%2Frwvns%2Ftest%2Ftest_sdn_odl.py;fp=rwlaunchpad%2Fplugins%2Frwvns%2Ftest%2Ftest_sdn_odl.py;h=b4dda0e37b079379474911484cdb4b1ae940e7b3;hb=7b75903dd891795d4426612fd4de76c0f51cf17e;hp=0000000000000000000000000000000000000000;hpb=3fdf6a93baec6d042f79a44973a3d21ddf37bafc;p=osm%2FSO.git diff --git a/rwlaunchpad/plugins/rwvns/test/test_sdn_odl.py b/rwlaunchpad/plugins/rwvns/test/test_sdn_odl.py new file mode 100644 index 00000000..b4dda0e3 --- /dev/null +++ b/rwlaunchpad/plugins/rwvns/test/test_sdn_odl.py @@ -0,0 +1,116 @@ + +# +# Copyright 2017 RIFT.IO Inc +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +import logging +import unittest + +import rw_peas +import rwlogger + +import gi +gi.require_version('RwTypes', '1.0') +from gi.repository import RwsdnalYang +from gi.repository.RwTypes import RwStatus + + +logger = logging.getLogger('sdnodl') + +odl_info = { + 'username' : 'admin', + 'password' : 'admin', + 'url' : 'http://10.66.4.27:8181', +} + + +def get_sdn_account(): + """ + Creates an object for class RwsdnalYang.SdnAccount() + """ + account = RwsdnalYang.SDNAccount() + account.name = "grunt27" + account.account_type = "odl" + account.odl.plugin_name = "rwsdn_odl" + account.odl.username = odl_info['username'] + account.odl.password = odl_info['password'] + account.odl.url = odl_info['url'] + + return account + +def get_sdn_plugin(): + """ + Loads rw.sdn plugin via libpeas + """ + plugin = rw_peas.PeasPlugin('rwsdn_odl', 'RwSdn-1.0') + engine, info, extension = plugin() + + # Get the RwLogger context + rwloggerctx = rwlogger.RwLog.Ctx.new("SDN-Log") + + sdn = plugin.get_interface("Topology") + try: + rc = sdn.init(rwloggerctx) + assert rc == RwStatus.SUCCESS + except: + logger.error("ERROR:SDN ODL plugin instantiation failed. Aborting tests") + else: + logger.info("SDN ODL plugin successfully instantiated") + return sdn + + + +class SdnOdlTest(unittest.TestCase): + def setUp(self): + """ + Initialize test plugins + """ + self._acct = get_sdn_account() + logger.info("SDN-Odl-Test: setUp") + self.sdn = get_sdn_plugin() + logger.info("SDN-Odl-Test: setUpEND") + + def tearDown(self): + logger.info("SDN-Odl-Test: Done with tests") + + def test_validate_sdn_creds(self): + """ + First test case + """ + logger.debug("SDN-Odl-Test: Starting validate creds ") + rc, status = self.sdn.validate_sdn_creds(self._acct) + logger.debug("SDN-Odl-Test: SDN return code %s resp %s", rc, status) + self.assertEqual(rc, RwStatus.SUCCESS) + logger.info("SDN-Odl-Test: Passed validate creds") + + def test_get_network_list(self): + """ + Get-network-list test case + """ + logger.debug("SDN-Odl-Test: Getting network list ") + rc, status = self.sdn.get_network_list(self._acct) + logger.debug("SDN-Odl-Test: SDN return code %s resp %s", rc, status) + self.assertEqual(rc, RwStatus.SUCCESS) + logger.info("SDN-Odl-Test: Passed get network list") + + + +if __name__ == "__main__": + logging.basicConfig(level=logging.DEBUG) + unittest.main() + + + +