Browse Source

Fix couple of issues in tests

- Separete idempotency tests from bvt
- Idempotency tests now using failover group
- Createmirror tests now using simple snapshots as basic cluster
- Upgrade minor version tests now using official public repos
- Adjust test group for updating box murano with murano-node

Change-Id: I1bc5a2338a539fb9cb2f0edaa8cea7e16830dd29
changes/54/394554/1
Victor Ryzhenkin 2 years ago
parent
commit
55f343d02c

+ 21
- 9
murano_plugin_tests/helpers/helpers.py View File

@@ -653,14 +653,9 @@ class PluginHelper(object):
653 653
             ip=self.ssh_manager.admin_ip,
654 654
             command=cmd)
655 655
 
656
-    def install_mu(self, repos='proposed'):
657
-        if repos:
658
-            cmd = "fuel2 update install --env {} --repos {} " \
659
-                  "--restart-rabbit --restart-mysql".format(self.cluster_id,
660
-                                                            repos)
661
-        else:
662
-            cmd = "fuel2 update install --env {}" \
663
-                  "--restart-rabbit --restart-mysql ".format(self.cluster_id)
656
+    def install_mu(self):
657
+        cmd = "fuel2 update install --env {}" \
658
+              "--restart-rabbit --restart-mysql".format(self.cluster_id)
664 659
 
665 660
         std_out = self.ssh_manager.check_call(
666 661
             ip=self.ssh_manager.admin_ip,
@@ -722,5 +717,22 @@ class PluginHelper(object):
722 717
 
723 718
     def compare_pid(self, old_pid, new_pid):
724 719
         asserts.assert_equal(old_pid, new_pid,
725
-                             'PID has changed after executing' \
720
+                             'PID has changed after executing'
726 721
                              'setup_repositories command')
722
+
723
+    def add_update_repo(self):
724
+        ip = self.ssh_manager.admin_ip
725
+        logger.info("Adding update mirror")
726
+        cmd = ("yum-config-manager --add-repo=http://mirror.fuel-infra.org/"
727
+               "mos-repos/centos/mos9.0-centos7/updates/x86_64/")
728
+        self.ssh_manager.execute_on_remote(ip, cmd,
729
+                                           err_msg="Adding repo failed")
730
+        logger.info("Importing GPG keys")
731
+        cmd = ("rpm --import http://mirror.fuel-infra.org/mos-repos/"
732
+               "centos/mos9.0-centos7/updates/RPM-GPG-KEY-mos9.0")
733
+        self.ssh_manager.execute_on_remote(ip, cmd,
734
+                                           err_msg="GPG keys import failed")
735
+        logger.info("Cleaning yum cache")
736
+        cmd = "yum clean all"
737
+        self.ssh_manager.execute_on_remote(
738
+            ip, cmd, err_msg="yum cache flush unsuccessful")

+ 3
- 23
murano_plugin_tests/murano_plugin/api.py View File

@@ -19,8 +19,6 @@ from fuelweb_test.helpers.decorators import retry
19 19
 from fuelweb_test import logger
20 20
 from fuelweb_test.tests import base_test_case
21 21
 
22
-from murano_plugin_tests import settings
23
-
24 22
 from murano_plugin_tests.helpers import checkers
25 23
 from murano_plugin_tests.helpers import helpers
26 24
 from murano_plugin_tests.helpers import remote_ops
@@ -167,9 +165,9 @@ class MuranoPluginApi(object):
167 165
         operations[operation](target_node)
168 166
         self.wait_plugin_online()
169 167
 
170
-    def apply_maintenance_update_90_to_91(self):
168
+    def apply_maintenance_update(self):
171 169
         """Method applies maintenance updates on whole cluster
172
-        from MOS9.0 to MOS9.1
170
+        from MOS 9.0 to MOS 9.x
173 171
 
174 172
         1) Add latest proposed repository
175 173
         2) Import PGP key for installed repository
@@ -184,25 +182,7 @@ class MuranoPluginApi(object):
184 182
         Mirantis OpenStack 9.1 -  Potential updates: ALL NODES UP-TO-DATE
185 183
 
186 184
         """
187
-        logger.info("Add latest proposed repository")
188
-
189
-        timestamp = settings.MOS_CENTOS_PROPOSED_MIRROR_ID
190
-        self.helpers.add_centos_test_proposed_repo(
191
-            settings.CENTOS_REPO_URL, timestamp)
192
-
193
-        logger.info("Add extra Ubuntu repo to deployed cluster")
194
-
195
-        timestamp_ubuntu = settings.MOS_UBUNTU_MIRROR_ID
196
-
197
-        proposed = {
198
-            'name': 'proposed',
199
-            'section': 'main restricted',
200
-            'uri': settings.UBUNTU_REPO_URL + timestamp_ubuntu + '/',
201
-            'priority': 1200,
202
-            'suite': 'mos9.0-proposed',
203
-            'type': 'deb'}
204
-
205
-        self.helpers.add_cluster_repo(proposed)
185
+        self.helpers.add_update_repo()
206 186
 
207 187
         logger.info("Install python-cudet library")
208 188
 

+ 37
- 0
murano_plugin_tests/murano_plugin/test_failover.py View File

@@ -107,3 +107,40 @@ class TestMuranoFailover(api.MuranoPluginApi):
107 107
         """
108 108
         self._test_failover("hard_reboot", ["controller"],
109 109
                             "deploy_murano_plugin_on_controller")
110
+
111
+    @test(depends_on_groups=["deploy_murano_plugin_on_controller"],
112
+          groups=["mirror", "system", "failover",
113
+                  "create_mirror_and_check_murano_services"])
114
+    @log_snapshot_after_test
115
+    def create_mirror_and_check_murano_services(self):
116
+        """Verify that Murano services is alive after fuel create mirror
117
+
118
+        Scenario:
119
+            1. Revert snapshot with deployed cluster
120
+            (deploy_murano_plugin_in_environment_with_murano)
121
+            2. Save PID of the plugin services
122
+            3. Execute setup_repositories command for murano-node
123
+            from master node
124
+            4. Check that PID wasn't changed
125
+            5. Check that plugin is working
126
+            6. Run Murano Platform OSTF
127
+
128
+        Duration 45m
129
+        Snapshot create_mirror_and_check_murano_services
130
+        """
131
+        self.env.revert_snapshot(
132
+            "deploy_murano_plugin_on_controller")
133
+
134
+        pid = self.helpers.get_plugin_pid('murano')
135
+
136
+        self.helpers.fuel_create_repositories(
137
+            self.helpers.get_all_ready_nodes())
138
+
139
+        new_pid = self.helpers.get_plugin_pid('murano')
140
+
141
+        self.helpers.compare_pid(pid, new_pid)
142
+
143
+        self.check_plugin_online()
144
+
145
+        self.env.make_snapshot("create_mirror_and_check_murano_services",
146
+                               is_make=False)

+ 126
- 0
murano_plugin_tests/murano_plugin/test_idempotency.py View File

@@ -0,0 +1,126 @@
1
+#    Copyright 2016 Mirantis, Inc.
2
+#
3
+#    Licensed under the Apache License, Version 2.0 (the "License"); you may
4
+#    not use this file except in compliance with the License. You may obtain
5
+#    a copy of the License at
6
+#
7
+#         http://www.apache.org/licenses/LICENSE-2.0
8
+#
9
+#    Unless required by applicable law or agreed to in writing, software
10
+#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
+#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
+#    License for the specific language governing permissions and limitations
13
+#    under the License.
14
+
15
+from fuelweb_test.helpers.decorators import log_snapshot_after_test
16
+from proboscis import test
17
+
18
+from murano_plugin_tests.murano_plugin import api
19
+
20
+
21
+@test(groups=["plugins"])
22
+class TestMuranoPuppetIdempotency(api.MuranoPluginApi):
23
+    """Class for testing puppet idempotency for Murano plugin."""
24
+
25
+    @test(depends_on_groups=["deploy_murano_plugin_on_controller"],
26
+          groups=["check_plugin_idempotency_on_controller", "deploy",
27
+                  "murano", "idempotency", "failover"])
28
+    @log_snapshot_after_test
29
+    def check_plugin_idempotency_on_controller(self):
30
+        """Rerun puppet apply on controller and check plugin idempotency.
31
+
32
+        Scenario:
33
+            1. Revert snapshot with deployed cluster (controller + compute)
34
+            2. Run puppet apply for controller
35
+
36
+        Duration 10m
37
+        """
38
+
39
+        self.env.revert_snapshot("deploy_murano_plugin_on_controller")
40
+
41
+        plugin_path = '/etc/fuel/plugins/detach-murano-1.0/'
42
+        modules_path = plugin_path + 'modules:/etc/puppet/modules/'
43
+        plugin_manifest_path = plugin_path + 'manifests/'
44
+
45
+        cluster_id = self.fuel_web.get_last_created_cluster()
46
+        attr = self.fuel_web.client.get_cluster_attributes(cluster_id)
47
+        cfapi = attr['editable']['detach-murano']['metadata']['versions'][0][
48
+            'murano_cfapi']
49
+
50
+        contr_node = self.fuel_web.get_nailgun_node_by_name('slave-01')
51
+
52
+        list_controller_manifests = ['murano_hiera_override.pp',
53
+                                     'pin_murano_plugin_repo.pp',
54
+                                     'murano.pp',
55
+                                     'murano_rabbitmq.pp',
56
+                                     'murano_keystone.pp',
57
+                                     'murano_db.pp',
58
+                                     'murano_dashboard.pp'
59
+                                     'import_murano_package.pp',
60
+                                     'murano_logging.pp',
61
+                                     'update_openrc.pp',
62
+                                     'murano_haproxy.pp']
63
+        if cfapi['value']:
64
+            list_controller_manifests.insert(4, 'murano_cfapi.pp')
65
+
66
+        for manifest in list_controller_manifests:
67
+            cmd = 'puppet apply --modulepath={0} {1} {2}'.format(
68
+                modules_path, plugin_manifest_path + manifest, '-d --test')
69
+            self.ssh_manager.check_call(ip=contr_node['ip'],
70
+                                        command=cmd,
71
+                                        expected=[0])
72
+
73
+    @test(depends_on_groups=["deploy_murano_plugin"],
74
+          groups=["check_plugin_idempotency_on_murano_node", "deploy",
75
+                  "murano", "idempotency", "failover"])
76
+    @log_snapshot_after_test
77
+    def check_plugin_idempotency_on_murano_node(self):
78
+        """Rerun puppet apply on murano node and check plugin idempotency.
79
+
80
+        Scenario:
81
+            1. Revert snapshot with deployed cluster
82
+            2. Run puppet apply for murano node
83
+
84
+        Duration 10m
85
+        """
86
+
87
+        self.env.revert_snapshot("deploy_murano_plugin")
88
+
89
+        plugin_path = '/etc/fuel/plugins/detach-murano-1.0/'
90
+        modules_path = plugin_path + 'modules:/etc/puppet/modules/'
91
+        plugin_manifest_path = plugin_path + 'manifests/'
92
+        ssl_path = '/etc/puppet/modules/osnailyfacter/modular/ssl/'
93
+
94
+        cluster_id = self.fuel_web.get_last_created_cluster()
95
+        attr = self.fuel_web.client.get_cluster_attributes(cluster_id)
96
+        cfapi = attr['editable']['detach-murano']['metadata']['versions'][0][
97
+            'murano_cfapi']
98
+
99
+        murano_node = self.fuel_web.get_nailgun_node_by_name('slave-03')
100
+
101
+        list_murano_manifests = ['murano_hiera_override.pp',
102
+                                 'pin_murano_plugin_repo.pp',
103
+                                 'murano.pp',
104
+                                 'murano_rabbitmq.pp',
105
+                                 'import_murano_package.pp',
106
+                                 'murano_logging.pp']
107
+        if cfapi['value']:
108
+            list_murano_manifests.insert(4, 'murano_cfapi.pp')
109
+
110
+        list_ssl_manifests = ['ssl_keys_saving.pp',
111
+                              'ssl_add_trust_chain.pp',
112
+                              'ssl_dns_setup.pp']
113
+
114
+        for manifest in list_murano_manifests:
115
+            cmd = 'puppet apply --modulepath={0} {1} {2}'.format(
116
+                modules_path, plugin_manifest_path + manifest, '-d --test')
117
+            self.ssh_manager.check_call(ip=murano_node['ip'],
118
+                                        command=cmd,
119
+                                        expected=[0])
120
+
121
+        for manifest in list_ssl_manifests:
122
+            cmd = 'puppet apply --modulepath={0} {1} {2}'.format(
123
+                modules_path, ssl_path + manifest, '-d --test')
124
+            self.ssh_manager.check_call(ip=murano_node['ip'],
125
+                                        command=cmd,
126
+                                        expected=[0])

+ 4
- 4
murano_plugin_tests/murano_plugin/test_murano_maintenance_update.py View File

@@ -24,7 +24,7 @@ class TestMuranoPluginMU(api.MuranoPluginApi):
24 24
 
25 25
     @test(depends_on_groups=["deploy_murano_plugin"],
26 26
           groups=["test_mu_upgrade_murano_node", "murano",
27
-                  "test_mu_upgrade", "murano_plugin_upgrade"])
27
+                  "test_mu_upgrade", "maintenance_update"])
28 28
     @log_snapshot_after_test
29 29
     def test_mu_upgrade_murano_node(self):
30 30
         """Apply MU over cluster with plugin and Murano node
@@ -43,13 +43,13 @@ class TestMuranoPluginMU(api.MuranoPluginApi):
43 43
 
44 44
         self.env.revert_snapshot("deploy_murano_plugin")
45 45
         self.wait_plugin_online()
46
-        self.apply_maintenance_update_90_to_91()
46
+        self.apply_maintenance_update()
47 47
         self.run_ostf(['sanity', 'smoke'])
48 48
         self.check_plugin_online()
49 49
 
50 50
     @test(depends_on_groups=["deploy_murano_plugin_on_controller"],
51 51
           groups=["test_mu_upgrade_murano_plugin", "murano",
52
-                  "test_mu_upgrade", "murano_plugin_upgrade"])
52
+                  "test_mu_upgrade", "maintenance_update"])
53 53
     @log_snapshot_after_test
54 54
     def test_mu_upgrade_without_murano_node(self):
55 55
         """Apply MU over cluster with plugin without Murano node
@@ -68,6 +68,6 @@ class TestMuranoPluginMU(api.MuranoPluginApi):
68 68
 
69 69
         self.env.revert_snapshot("deploy_murano_plugin_on_controller")
70 70
         self.wait_plugin_online()
71
-        self.apply_maintenance_update_90_to_91()
71
+        self.apply_maintenance_update()
72 72
         self.run_ostf(['sanity', 'smoke'])
73 73
         self.check_plugin_online()

+ 0
- 101
murano_plugin_tests/murano_plugin/test_murano_plugin_bvt.py View File

@@ -245,104 +245,3 @@ class TestMuranoPluginBvt(api.MuranoPluginApi):
245 245
         self.prepare_plugin()
246 246
 
247 247
         self.uninstall_plugin()
248
-
249
-    @test(depends_on_groups=["deploy_murano_plugin_on_controller"],
250
-          groups=["check_plugin_idempotency_on_controller", "deploy",
251
-                  "murano", "idempotency"])
252
-    @log_snapshot_after_test
253
-    def check_plugin_idempotency_on_controller(self):
254
-        """Rerun puppet apply on controller and check plugin idempotency.
255
-
256
-        Scenario:
257
-            1. Revert snapshot with deployed cluster (controller + compute)
258
-            2. Run puppet apply for controller
259
-
260
-        Duration 10m
261
-        """
262
-
263
-        self.env.revert_snapshot("deploy_murano_plugin_on_controller")
264
-
265
-        plugin_path = '/etc/fuel/plugins/detach-murano-1.0/'
266
-        modules_path = plugin_path + 'modules:/etc/puppet/modules/'
267
-        plugin_manifest_path = plugin_path + 'manifests/'
268
-
269
-        cluster_id = self.fuel_web.get_last_created_cluster()
270
-        attr = self.fuel_web.client.get_cluster_attributes(cluster_id)
271
-        cfapi = attr['editable']['detach-murano']['metadata']['versions'][0]['murano_cfapi']
272
-
273
-        contr_node = self.fuel_web.get_nailgun_node_by_name('slave-01')
274
-
275
-        list_controller_manifests = ['murano_hiera_override.pp',
276
-                                     'pin_murano_plugin_repo.pp',
277
-                                     'murano.pp',
278
-                                     'murano_rabbitmq.pp',
279
-                                     'murano_keystone.pp',
280
-                                     'murano_db.pp',
281
-                                     'murano_dashboard.pp'
282
-                                     'import_murano_package.pp',
283
-                                     'murano_logging.pp',
284
-                                     'update_openrc.pp',
285
-                                     'murano_haproxy.pp']
286
-        if cfapi['value']:
287
-            list_controller_manifests.insert(4, 'murano_cfapi.pp')
288
-
289
-        for manifest in list_controller_manifests:
290
-            cmd = 'puppet apply --modulepath={0} {1} {2}'.format(
291
-                modules_path, plugin_manifest_path + manifest, '-d --test')
292
-            self.ssh_manager.check_call(ip=contr_node['ip'],
293
-                                        command=cmd,
294
-                                        expected=[0])
295
-
296
-    @test(depends_on_groups=["deploy_murano_plugin"],
297
-          groups=["check_plugin_idempotency_on_murano_node", "deploy",
298
-                  "murano", "idempotency"])
299
-    @log_snapshot_after_test
300
-    def check_plugin_idempotency_on_murano_node(self):
301
-            """Rerun puppet apply on murano node and check plugin idempotency.
302
-
303
-            Scenario:
304
-                1. Revert snapshot with deployed cluster
305
-                2. Run puppet apply for murano node
306
-
307
-            Duration 10m
308
-            """
309
-
310
-            self.env.revert_snapshot("deploy_murano_plugin")
311
-
312
-            plugin_path = '/etc/fuel/plugins/detach-murano-1.0/'
313
-            modules_path = plugin_path + 'modules:/etc/puppet/modules/'
314
-            plugin_manifest_path = plugin_path + 'manifests/'
315
-            ssl_path = '/etc/puppet/modules/osnailyfacter/modular/ssl/'
316
-
317
-            cluster_id = self.fuel_web.get_last_created_cluster()
318
-            attr = self.fuel_web.client.get_cluster_attributes(cluster_id)
319
-            cfapi = attr['editable']['detach-murano']['metadata']['versions'][0]['murano_cfapi']
320
-
321
-            murano_node = self.fuel_web.get_nailgun_node_by_name('slave-03')
322
-
323
-            list_murano_manifests = ['murano_hiera_override.pp',
324
-                                     'pin_murano_plugin_repo.pp',
325
-                                     'murano.pp',
326
-                                     'murano_rabbitmq.pp',
327
-                                     'import_murano_package.pp',
328
-                                     'murano_logging.pp']
329
-            if cfapi['value']:
330
-                list_murano_manifests.insert(4, 'murano_cfapi.pp')
331
-
332
-            list_ssl_manifests = ['ssl_keys_saving.pp',
333
-                                  'ssl_add_trust_chain.pp',
334
-                                  'ssl_dns_setup.pp']
335
-
336
-            for manifest in list_murano_manifests:
337
-                cmd = 'puppet apply --modulepath={0} {1} {2}'.format(
338
-                    modules_path, plugin_manifest_path + manifest, '-d --test')
339
-                self.ssh_manager.check_call(ip=murano_node['ip'],
340
-                                            command=cmd,
341
-                                            expected=[0])
342
-
343
-            for manifest in list_ssl_manifests:
344
-                cmd = 'puppet apply --modulepath={0} {1} {2}'.format(
345
-                    modules_path, ssl_path + manifest, '-d --test')
346
-                self.ssh_manager.check_call(ip=murano_node['ip'],
347
-                                            command=cmd,
348
-                                            expected=[0])

+ 1
- 1
murano_plugin_tests/murano_plugin/test_murano_plugin_update.py View File

@@ -86,7 +86,7 @@ class TestMuranoPluginUpdate(api.MuranoPluginApi):
86 86
     @test(depends_on=[deploy_murano_out_of_the_box],
87 87
           groups=["deploy_murano_and_plugin_add_role", "deploy",
88 88
                   "murano", "murano_plugin_upgrade",
89
-                  "deploy_murano_plugin_in_environment_with_murano"])
89
+                  "deploy_murano_node_in_environment_with_murano"])
90 90
     @log_snapshot_after_test
91 91
     def deploy_murano_node_in_environment_with_murano(self):
92 92
         """Upgrade Murano via plugin (adding murano-node) and run OSTF tests.

+ 0
- 41
murano_plugin_tests/murano_plugin/test_system.py View File

@@ -132,44 +132,3 @@ class TestSystemMuranoPlugin(api.MuranoPluginApi):
132 132
         self.run_ostf(['sanity', 'smoke', 'ha'])
133 133
 
134 134
         self.env.make_snapshot("add_remove_murano_node", is_make=False)
135
-
136
-    @test(depends_on_groups=["deploy_murano_plugin_in_environment_with_murano"],
137
-          groups=["mirror", "system", "failover",
138
-                  "create_mirror_and_check_murano_services"])
139
-    @log_snapshot_after_test
140
-    def create_mirror_and_check_murano_services(self):
141
-        """Verify that Murano services is alive after fuel create mirror
142
-
143
-        Scenario:
144
-            1. Revert snapshot with deployed cluster
145
-            (deploy_murano_plugin_in_environment_with_murano)
146
-            2. Save PID of the plugin services
147
-            3. Execute setup_repositories command for murano-node
148
-            from master node
149
-            4. Check that PID wasn't changed
150
-            5. Check that plugin is working
151
-            6. Run Murano Platform OSTF
152
-
153
-        Duration 45m
154
-        Snapshot create_mirror_and_check_murano_services
155
-        """
156
-        self.env.revert_snapshot(
157
-            "deploy_murano_plugin_in_environment_with_murano")
158
-
159
-        pid = self.helpers.get_plugin_pid('murano')
160
-
161
-        self.helpers.fuel_create_repositories(
162
-            self.helpers.get_all_ready_nodes())
163
-
164
-        new_pid = self.helpers.get_plugin_pid('murano')
165
-
166
-        self.helpers.compare_pid(pid, new_pid)
167
-
168
-        self.check_plugin_online()
169
-
170
-        self.run_ostf(['sanity', 'smoke', 'ha'])
171
-
172
-        self.check_plugin_online()
173
-
174
-        self.env.make_snapshot("create_mirror_and_check_murano_services",
175
-                               is_make=False)

+ 1
- 0
murano_plugin_tests/run_system_test.py View File

@@ -40,6 +40,7 @@ class CloseSSHConnectionsPlugin(plugins.Plugin):
40 40
 
41 41
 def import_tests():
42 42
     from murano_plugin import test_failover  # noqa
43
+    from murano_plugin import test_idempotency  # noqa
43 44
     from murano_plugin import test_murano_maintenance_update  # noqa
44 45
     from murano_plugin import test_murano_plugin_bvt  # noqa
45 46
     from murano_plugin import test_murano_plugin_update  # noqa

Loading…
Cancel
Save