~matsubara/maas/fix-maas-cc-cluster-config-match

« back to all changes in this revision

Viewing changes to maas-integration.py

[r=matsubara][bug=][author=rvb] Wait a bit for the cluster to connect to the region before giving up.

Show diffs side-by-side

added added

removed removed

Lines of Context:
260
260
            output, Contains(
261
261
            "\nYou are now logged in to the MAAS server"))
262
262
 
 
263
    def get_master_ng_uuid(self):
 
264
        output, err = self._run_maas_cli(["node-groups", "list"])
 
265
        node_groups = loads(output)
 
266
        master_nodegroup = node_groups[0]
 
267
        return master_nodegroup['uuid']
 
268
 
 
269
    @timeout(5*60)
 
270
    def test_08_cluster_connected(self):
 
271
        # The master cluster is connected and changed the uuid field of the
 
272
        # nodegroup object from 'master' to its UUID.
 
273
        name = self.get_master_ng_uuid()
 
274
        while name == 'master':
 
275
            sleep(10)
 
276
            name = self.get_master_ng_uuid()
 
277
 
263
278
    @timeout(60)
264
 
    def test_08_set_up_dhcp(self):
 
279
    def test_09_set_up_dhcp(self):
265
280
        output, err = self._run_maas_cli(["node-groups", "list"])
266
281
        node_groups = loads(output)
267
282
        output, err = self._run_maas_cli([
283
298
        while os.path.exists("/etc/maas/dhcpd.conf") is False:
284
299
            sleep(2)
285
300
 
286
 
    def test_09_update_dns_config(self):
 
301
    def test_10_update_dns_config(self):
287
302
        #XXX: matsubara Could be asked by maas-dns package and configurable
288
303
        # through debconf seed file.
289
304
        dns_config = open("/etc/bind/named.conf.options", 'w')
315
330
                self.power_off(ipmi_address, 'admin', 'admin')
316
331
                self.power_on(ipmi_address, 'admin', 'admin')
317
332
 
318
 
    def test_10_boot_nodes_enlist(self):
 
333
    def test_11_boot_nodes_enlist(self):
319
334
        self._boot_nodes()
320
335
 
321
336
    def _wait_nodes(self, status, min_node=None):
335
350
                node for node in node_list if node['status'] == status]
336
351
 
337
352
    @timeout(5*60)
338
 
    def test_11_check_nodes_declared(self):
 
353
    def test_12_check_nodes_declared(self):
339
354
        self._wait_nodes(0)
340
355
 
341
 
    def test_12_set_nodes_ipmi_config(self):
 
356
    def test_13_set_nodes_ipmi_config(self):
342
357
        """Set IPMI configuration for each node."""
343
358
        all_nodes = {}
344
359
        all_nodes.update(LENOVO_LAB)
360
375
                    "power_parameters_power_user=%s" % power_user,
361
376
                    "power_parameters_power_pass=%s" % power_pass])
362
377
 
363
 
    def test_13_commission_nodes(self):
 
378
    def test_14_commission_nodes(self):
364
379
        # Use maas-cli to accept all nodes.
365
380
        output, err = self._run_maas_cli(["nodes","accept-all"])
366
381
        for node in loads(output):
367
382
            self.assertEqual(node['status'], 1)
368
383
 
369
384
    @timeout(10*60)
370
 
    def test_14_check_nodes_ready(self):
 
385
    def test_15_check_nodes_ready(self):
371
386
        self._wait_nodes(4)
372
387
 
373
388
    def setup_juju(self):
389
404
 
390
405
    @skipIf(DO_NOT_TEST_JUJU, "Not testing juju")
391
406
    @timeout(50*60)
392
 
    def test_15_juju_bootstrap(self):
 
407
    def test_16_juju_bootstrap(self):
393
408
        self.setup_juju()
394
409
        self._run_juju_command(['bootstrap'])
395
410
        self._run_juju_command(['status'])
428
443
            sleep(20)
429
444
 
430
445
    @skipIf(DO_NOT_TEST_JUJU, "Not testing juju")
431
 
    def test_16_juju_setup(self):
 
446
    def test_17_juju_setup(self):
432
447
        # Deploy mediawiki with its mysql db.
433
448
        self._run_juju_command(["deploy", "mysql"])
434
449
        is_precise = platform.linux_distribution()[2] == 'precise'
445
460
 
446
461
    @skipIf(DO_NOT_TEST_JUJU, "Not testing juju")
447
462
    @timeout(30*60)
448
 
    def test_17_juju_deploy_mediawiki(self):
 
463
    def test_18_juju_deploy_mediawiki(self):
449
464
       self._wait_machines_running(3)
450
465
       self._wait_units_started('mediawiki', 1)
451
466
 
452
467
    @skipIf(DO_NOT_TEST_JUJU, "Not testing juju")
453
468
    @timeout(5*60)
454
 
    def test_18_mediawiki_homepage(self):
 
469
    def test_19_mediawiki_homepage(self):
455
470
        while True:
456
471
            status = self.get_juju_status()
457
472
            mediawiki_address = (
477
492
 
478
493
    @skipIf(DO_NOT_TEST_JUJU, "Not testing juju")
479
494
    @timeout(30*60)
480
 
    def test_19_juju_add_unit_mediawiki(self):
 
495
    def test_20_juju_add_unit_mediawiki(self):
481
496
        self._wait_machines_running(4)
482
497
        self._wait_units_started('mediawiki', 2)