~ubuntu-branches/ubuntu/vivid/ironic/vivid-updates

« back to all changes in this revision

Viewing changes to ironic/tests/dhcp/test_neutron.py

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2015-04-17 09:28:31 UTC
  • mfrom: (1.2.7)
  • Revision ID: package-import@ubuntu.com-20150417092831-wu2awfbqomnzpeim
Tags: 2015.1~rc1-0ubuntu1
* New upstream milestone release:
  - d/control: Align with upstream dependencies
  - d/p/fix-requirements.patch: Dropped no longer needed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
377
377
                'network_id': '00000000-0000-0000-0000-000000000000',
378
378
                'admin_state_up': True, 'mac_address': self.ports[0].address}})
379
379
 
380
 
    @mock.patch('ironic.conductor.manager.cleaning_error_handler')
 
380
    @mock.patch.object(neutron.NeutronDHCPApi, '_rollback_cleaning_ports')
381
381
    @mock.patch.object(client.Client, 'create_port')
382
 
    def test_create_cleaning_ports_fail(self, create_mock, error_mock):
383
 
        # Check that if creating a port fails, the node goes to cleanfail
 
382
    def test_create_cleaning_ports_fail(self, create_mock, rollback_mock):
 
383
        # Check that if creating a port fails, the ports are cleaned up
384
384
        create_mock.side_effect = neutron_client_exc.ConnectionFailed
385
385
        api = dhcp_factory.DHCPFactory().provider
386
386
 
387
387
        with task_manager.acquire(self.context, self.node.uuid) as task:
388
 
            api.create_cleaning_ports(task)
389
 
            error_mock.assert_called_once_with(task, mock.ANY)
 
388
            self.assertRaises(exception.NodeCleaningFailure,
 
389
                              api.create_cleaning_ports,
 
390
                              task)
390
391
            create_mock.assert_called_once_with({'port': {
391
392
                'network_id': '00000000-0000-0000-0000-000000000000',
392
393
                'admin_state_up': True, 'mac_address': self.ports[0].address}})
 
394
            rollback_mock.assert_called_once_with(task)
393
395
 
394
 
    @mock.patch('ironic.conductor.manager.cleaning_error_handler')
395
396
    @mock.patch.object(client.Client, 'create_port')
396
 
    def test_create_cleaning_ports_bad_config(self, create_mock, error_mock):
 
397
    def test_create_cleaning_ports_bad_config(self, create_mock):
 
398
        # Check an error is raised if the cleaning network is not set
397
399
        self.config(cleaning_network_uuid=None, group='neutron')
398
400
        api = dhcp_factory.DHCPFactory().provider
399
401
 
417
419
                network_id='00000000-0000-0000-0000-000000000000')
418
420
            delete_mock.assert_called_once_with(self.neutron_port['id'])
419
421
 
420
 
    @mock.patch('ironic.conductor.manager.cleaning_error_handler')
421
422
    @mock.patch.object(client.Client, 'list_ports')
422
 
    def test_delete_cleaning_ports_list_fail(self, list_mock, error_mock):
 
423
    def test_delete_cleaning_ports_list_fail(self, list_mock):
423
424
        # Check that if listing ports fails, the node goes to cleanfail
424
425
        list_mock.side_effect = neutron_client_exc.ConnectionFailed
425
426
        api = dhcp_factory.DHCPFactory().provider
426
427
 
427
428
        with task_manager.acquire(self.context, self.node.uuid) as task:
428
 
            api.delete_cleaning_ports(task)
 
429
            self.assertRaises(exception.NodeCleaningFailure,
 
430
                              api.delete_cleaning_ports,
 
431
                              task)
429
432
            list_mock.assert_called_once_with(
430
433
                network_id='00000000-0000-0000-0000-000000000000')
431
 
            error_mock.assert_called_once_with(task, mock.ANY)
432
434
 
433
 
    @mock.patch('ironic.conductor.manager.cleaning_error_handler')
434
435
    @mock.patch.object(client.Client, 'delete_port')
435
436
    @mock.patch.object(client.Client, 'list_ports')
436
 
    def test_delete_cleaning_ports_delete_fail(self, list_mock, delete_mock,
437
 
                                               error_mock):
 
437
    def test_delete_cleaning_ports_delete_fail(self, list_mock, delete_mock):
438
438
        # Check that if deleting ports fails, the node goes to cleanfail
439
439
        list_mock.return_value = {'ports': [self.neutron_port]}
440
440
        delete_mock.side_effect = neutron_client_exc.ConnectionFailed
441
441
        api = dhcp_factory.DHCPFactory().provider
442
442
 
443
443
        with task_manager.acquire(self.context, self.node.uuid) as task:
444
 
            api.delete_cleaning_ports(task)
 
444
            self.assertRaises(exception.NodeCleaningFailure,
 
445
                              api.delete_cleaning_ports,
 
446
                              task)
445
447
            list_mock.assert_called_once_with(
446
448
                network_id='00000000-0000-0000-0000-000000000000')
447
449
            delete_mock.assert_called_once_with(self.neutron_port['id'])
448
 
            error_mock.assert_called_once_with(task, mock.ANY)