X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osm_mon%2Ftests%2Funit%2Fcore%2Ftest_common_db_client.py;h=7f0768df3e77864d90994d27e9cc78ffe317d379;hb=b3173221c25ae915eaca041ebd045f6148cc447d;hp=81159eed3817f098beb533fac094ad56b676c27c;hpb=a97bdb3eafa4f3d07d61d32635f7f36f5cc36c58;p=osm%2FMON.git diff --git a/osm_mon/tests/unit/core/test_common_db_client.py b/osm_mon/tests/unit/core/test_common_db_client.py index 81159ee..7f0768d 100644 --- a/osm_mon/tests/unit/core/test_common_db_client.py +++ b/osm_mon/tests/unit/core/test_common_db_client.py @@ -20,6 +20,7 @@ # For those usages not covered by the Apache License, Version 2.0 please # contact: bdiaz@whitestack.com or glavado@whitestack.com ## + import unittest from unittest import mock @@ -27,6 +28,7 @@ from osm_common import dbmongo from osm_mon.core.common_db import CommonDbClient from osm_mon.core.config import Config +from osm_mon.core.models import Alarm class CommonDbClientTest(unittest.TestCase): @@ -37,63 +39,186 @@ class CommonDbClientTest(unittest.TestCase): @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock()) @mock.patch.object(CommonDbClient, "get_vnfr") def test_get_vim_id(self, get_vnfr): - get_vnfr.return_value = {'_id': 'a314c865-aee7-4d9b-9c9d-079d7f857f01', - '_admin': { - 'projects_read': ['admin'], 'created': 1526044312.102287, - 'modified': 1526044312.102287, 'projects_write': ['admin'] - }, - 'vim-account-id': 'c1740601-7287-48c8-a2c9-bce8fee459eb', - 'nsr-id-ref': '5ec3f571-d540-4cb0-9992-971d1b08312e', - 'vdur': [ - { - 'internal-connection-point': [], - 'vdu-id-ref': 'ubuntuvnf_vnfd-VM', - 'id': 'ffd73f33-c8bb-4541-a977-44dcc3cbe28d', - 'vim-id': '27042672-5190-4209-b844-95bbaeea7ea7', - 'name': 'ubuntuvnf_vnfd-VM' - } - ], - 'vnfd-ref': 'ubuntuvnf_vnfd', - 'member-vnf-index-ref': '1', - 'created-time': 1526044312.0999322, - 'vnfd-id': 'a314c865-aee7-4d9b-9c9d-079d7f857f01', - 'id': 'a314c865-aee7-4d9b-9c9d-079d7f857f01'} + get_vnfr.return_value = { + "_id": "a314c865-aee7-4d9b-9c9d-079d7f857f01", + "_admin": { + "projects_read": ["admin"], + "created": 1526044312.102287, + "modified": 1526044312.102287, + "projects_write": ["admin"], + }, + "vim-account-id": "c1740601-7287-48c8-a2c9-bce8fee459eb", + "nsr-id-ref": "5ec3f571-d540-4cb0-9992-971d1b08312e", + "vdur": [ + { + "internal-connection-point": [], + "vdu-id-ref": "ubuntuvnf_vnfd-VM", + "id": "ffd73f33-c8bb-4541-a977-44dcc3cbe28d", + "vim-id": "27042672-5190-4209-b844-95bbaeea7ea7", + "name": "ubuntuvnf_vnfd-VM", + } + ], + "vnfd-ref": "ubuntuvnf_vnfd", + "member-vnf-index-ref": "1", + "created-time": 1526044312.0999322, + "vnfd-id": "a314c865-aee7-4d9b-9c9d-079d7f857f01", + "id": "a314c865-aee7-4d9b-9c9d-079d7f857f01", + } common_db_client = CommonDbClient(self.config) - vim_account_id = common_db_client.get_vim_account_id('5ec3f571-d540-4cb0-9992-971d1b08312e', 1) - self.assertEqual(vim_account_id, 'c1740601-7287-48c8-a2c9-bce8fee459eb') + vim_account_id = common_db_client.get_vim_account_id( + "5ec3f571-d540-4cb0-9992-971d1b08312e", 1 + ) + self.assertEqual(vim_account_id, "c1740601-7287-48c8-a2c9-bce8fee459eb") @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock()) @mock.patch.object(dbmongo.DbMongo, "get_one") def test_get_vdur(self, get_one): - get_one.return_value = {'_id': 'a314c865-aee7-4d9b-9c9d-079d7f857f01', - '_admin': { - 'projects_read': ['admin'], 'created': 1526044312.102287, - 'modified': 1526044312.102287, 'projects_write': ['admin'] - }, - 'vim-account-id': 'c1740601-7287-48c8-a2c9-bce8fee459eb', - 'nsr-id-ref': '5ec3f571-d540-4cb0-9992-971d1b08312e', - 'vdur': [ - { - 'internal-connection-point': [], - 'vdu-id-ref': 'ubuntuvnf_vnfd-VM', - 'id': 'ffd73f33-c8bb-4541-a977-44dcc3cbe28d', - 'vim-id': '27042672-5190-4209-b844-95bbaeea7ea7', - 'name': 'ubuntuvnf_vnfd-VM' - } - ], - 'vnfd-ref': 'ubuntuvnf_vnfd', - 'member-vnf-index-ref': '1', - 'created-time': 1526044312.0999322, - 'vnfd-id': 'a314c865-aee7-4d9b-9c9d-079d7f857f01', - 'id': 'a314c865-aee7-4d9b-9c9d-079d7f857f01'} + get_one.return_value = { + "_id": "a314c865-aee7-4d9b-9c9d-079d7f857f01", + "_admin": { + "projects_read": ["admin"], + "created": 1526044312.102287, + "modified": 1526044312.102287, + "projects_write": ["admin"], + }, + "vim-account-id": "c1740601-7287-48c8-a2c9-bce8fee459eb", + "nsr-id-ref": "5ec3f571-d540-4cb0-9992-971d1b08312e", + "vdur": [ + { + "internal-connection-point": [], + "vdu-id-ref": "ubuntuvnf_vnfd-VM", + "id": "ffd73f33-c8bb-4541-a977-44dcc3cbe28d", + "vim-id": "27042672-5190-4209-b844-95bbaeea7ea7", + "name": "ubuntuvnf_vnfd-VM", + } + ], + "vnfd-ref": "ubuntuvnf_vnfd", + "member-vnf-index-ref": "1", + "created-time": 1526044312.0999322, + "vnfd-id": "a314c865-aee7-4d9b-9c9d-079d7f857f01", + "id": "a314c865-aee7-4d9b-9c9d-079d7f857f01", + } common_db_client = CommonDbClient(self.config) - vdur = common_db_client.get_vdur('5ec3f571-d540-4cb0-9992-971d1b08312e', '1', 'ubuntuvnf_vnfd-VM') + vdur = common_db_client.get_vdur( + "5ec3f571-d540-4cb0-9992-971d1b08312e", "1", "ubuntuvnf_vnfd-VM" + ) expected_vdur = { - 'internal-connection-point': [], - 'vdu-id-ref': 'ubuntuvnf_vnfd-VM', - 'id': 'ffd73f33-c8bb-4541-a977-44dcc3cbe28d', - 'vim-id': '27042672-5190-4209-b844-95bbaeea7ea7', - 'name': 'ubuntuvnf_vnfd-VM' + "internal-connection-point": [], + "vdu-id-ref": "ubuntuvnf_vnfd-VM", + "id": "ffd73f33-c8bb-4541-a977-44dcc3cbe28d", + "vim-id": "27042672-5190-4209-b844-95bbaeea7ea7", + "name": "ubuntuvnf_vnfd-VM", } self.assertDictEqual(vdur, expected_vdur) + + @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock()) + @mock.patch.object(dbmongo.DbMongo, "get_one") + @mock.patch.object(CommonDbClient, "decrypt_vim_password") + def test_get_vim_account_default_schema(self, decrypt_vim_password, get_one): + schema_version = "10.0" + vim_id = "1" + get_one.return_value = { + "_id": vim_id, + "vim_password": "vim_password", + "schema_version": schema_version, + "config": { + "admin_password": "admin_password", + "vrops_password": "vrops_password", + "nsx_password": "nsx_password", + "vcenter_password": "vcenter_password", + }, + } + + common_db_client = CommonDbClient(self.config) + common_db_client.get_vim_account("1") + + decrypt_vim_password.assert_any_call("vim_password", schema_version, vim_id) + decrypt_vim_password.assert_any_call("vrops_password", schema_version, vim_id) + decrypt_vim_password.assert_any_call("admin_password", schema_version, vim_id) + decrypt_vim_password.assert_any_call("nsx_password", schema_version, vim_id) + decrypt_vim_password.assert_any_call("vcenter_password", schema_version, vim_id) + + @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock()) + @mock.patch.object(dbmongo.DbMongo, "get_one") + @mock.patch.object(CommonDbClient, "decrypt_vim_password") + def test_get_vim_account_1_1_schema(self, decrypt_vim_password, get_one): + schema_version = "1.1" + vim_id = "1" + get_one.return_value = { + "_id": vim_id, + "vim_password": "vim_password", + "schema_version": schema_version, + "config": {"vrops_password": "vrops_password"}, + } + + common_db_client = CommonDbClient(self.config) + common_db_client.get_vim_account("1") + + decrypt_vim_password.assert_any_call("vim_password", schema_version, vim_id) + self.assertRaises( + AssertionError, + decrypt_vim_password.assert_any_call, + "vrops_password", + schema_version, + vim_id, + ) + + @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock()) + @mock.patch.object(dbmongo.DbMongo, "get_list") + def test_get_alarms(self, get_list): + get_list.return_value = [ + { + "uuid": "1", + "name": "name", + "severity": "severity", + "threshold": 50, + "operation": "operation", + "statistic": "statistic", + "tags": {}, + } + ] + + common_db_client = CommonDbClient(self.config) + alarms = common_db_client.get_alarms() + self.assertEqual("1", alarms[0].uuid) + + @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock()) + @mock.patch.object(dbmongo.DbMongo, "create") + def test_create_alarm(self, create): + alarm = Alarm( + "name", + "severity", + 50.0, + "operation", + "statistic", + "metric", + "scale_out", + {}, + "ok", + ) + alarm.uuid = "1" + common_db_client = CommonDbClient(self.config) + common_db_client.create_alarm(alarm) + create.assert_called_with( + "alarms", + { + "tags": {}, + "threshold": 50.0, + "metric": "metric", + "severity": "severity", + "statistic": "statistic", + "name": "name", + "operation": "operation", + "uuid": "1", + "alarm_status": "ok", + "extra_labels": {}, + }, + ) + + @mock.patch.object(dbmongo.DbMongo, "db_connect", mock.Mock()) + @mock.patch.object(dbmongo.DbMongo, "del_one") + def test_delete_alarm(self, delete): + common_db_client = CommonDbClient(self.config) + common_db_client.delete_alarm("1") + delete.assert_called_with("alarms", {"uuid": "1"})