da34bb2e32c70055fcf4651c15c3b9e2cd9da6c3
[osm/MON.git] / osm_mon / test / plugins / OpenStack / integration / test_vim_account.py
1 # -*- coding: utf-8 -*-
2
3 # Copyright 2018 Whitestack, LLC
4 # *************************************************************
5
6 # This file is part of OSM Monitoring module
7 # All Rights Reserved to Whitestack, LLC
8
9 # Licensed under the Apache License, Version 2.0 (the "License"); you may
10 # not use this file except in compliance with the License. You may obtain
11 # a copy of the License at
12
13 # http://www.apache.org/licenses/LICENSE-2.0
14
15 # Unless required by applicable law or agreed to in writing, software
16 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18 # License for the specific language governing permissions and limitations
19 # under the License.
20
21 # For those usages not covered by the Apache License, Version 2.0 please
22 # contact: bdiaz@whitestack.com or glavado@whitestack.com
23 ##
24
25 """Test an end to end Openstack vim_account requests."""
26
27 import json
28 import logging
29 import unittest
30
31 from osm_mon.core.auth import AuthManager
32 from osm_mon.core.database import DatabaseManager
33
34 log = logging.getLogger(__name__)
35
36
37 class VimAccountTest(unittest.TestCase):
38 def setUp(self):
39 self.auth_manager = AuthManager()
40 self.database_manager = DatabaseManager()
41 self.database_manager.create_tables()
42
43 def test_create_edit_delete_vim_account(self):
44 """Test vim_account creation message from KafkaProducer."""
45 # Set-up message, producer and consumer for tests
46 create_payload = {
47 "_id": "test_id",
48 "name": "test_name",
49 "vim_type": "openstack",
50 "vim_url": "auth_url",
51 "vim_user": "user",
52 "vim_password": "password",
53 "vim_tenant_name": "tenant",
54 "config":
55 {
56 "foo": "bar"
57 }
58 }
59 self.auth_manager.store_auth_credentials(create_payload)
60
61 creds = self.auth_manager.get_credentials('test_id')
62
63 self.assertIsNotNone(creds)
64 self.assertEqual(creds.name, create_payload['name'])
65 self.assertEqual(json.loads(creds.config), create_payload['config'])
66
67 # Set-up message, producer and consumer for tests
68 edit_payload = {
69 "_id": "test_id",
70 "name": "test_name_edited",
71 "vim_type": "openstack",
72 "vim_url": "auth_url",
73 "vim_user": "user",
74 "vim_password": "password",
75 "vim_tenant_name": "tenant",
76 "config":
77 {
78 "foo_edited": "bar_edited"
79 }
80 }
81
82 self.auth_manager.store_auth_credentials(edit_payload)
83
84 creds = self.auth_manager.get_credentials('test_id')
85
86 self.assertEqual(creds.name, edit_payload['name'])
87 self.assertEqual(json.loads(creds.config), edit_payload['config'])
88
89 delete_payload = {
90 "_id": "test_id"
91 }
92
93 self.auth_manager.delete_auth_credentials(delete_payload)
94
95 creds = self.auth_manager.get_credentials('test_id')
96 self.assertIsNone(creds)