475
498
_neutron_plugin_legacy_mode.return_value = True
476
499
_neutron_plugin.return_value = 'bobvs'
477
500
self.assertFalse(utils.manage_ovs())
502
@patch.object(utils, 'git_install_requested')
503
@patch.object(utils, 'git_clone_and_install')
504
@patch.object(utils, 'git_post_install')
505
@patch.object(utils, 'git_pre_install')
506
def test_git_install(self, git_pre, git_post, git_clone_and_install,
508
projects_yaml = openstack_origin_git
509
git_requested.return_value = True
510
utils.git_install(projects_yaml)
511
self.assertTrue(git_pre.called)
512
git_clone_and_install.assert_called_with(openstack_origin_git,
514
self.assertTrue(git_post.called)
516
@patch.object(utils, 'mkdir')
517
@patch.object(utils, 'write_file')
518
@patch.object(utils, 'add_user_to_group')
519
@patch.object(utils, 'add_group')
520
@patch.object(utils, 'adduser')
521
@patch.object(utils, 'check_call')
522
def test_git_pre_install(self, check_call, adduser, add_group,
523
add_user_to_group, write_file, mkdir):
524
utils.git_pre_install()
525
adduser.assert_called_with('nova', shell='/bin/bash',
527
check_call.assert_called_with(['usermod', '--home', '/var/lib/nova',
529
add_group.assert_called_with('nova', system_group=True)
531
call('nova', 'nova'),
532
call('nova', 'libvirtd'),
534
self.assertEquals(add_user_to_group.call_args_list, expected)
536
call('/var/lib/nova', owner='nova',
537
group='nova', perms=0755, force=False),
538
call('/var/lib/nova/buckets', owner='nova',
539
group='nova', perms=0755, force=False),
540
call('/var/lib/nova/CA', owner='nova',
541
group='nova', perms=0755, force=False),
542
call('/var/lib/nova/CA/INTER', owner='nova',
543
group='nova', perms=0755, force=False),
544
call('/var/lib/nova/CA/newcerts', owner='nova',
545
group='nova', perms=0755, force=False),
546
call('/var/lib/nova/CA/private', owner='nova',
547
group='nova', perms=0755, force=False),
548
call('/var/lib/nova/CA/reqs', owner='nova',
549
group='nova', perms=0755, force=False),
550
call('/var/lib/nova/images', owner='nova',
551
group='nova', perms=0755, force=False),
552
call('/var/lib/nova/instances', owner='nova',
553
group='nova', perms=0755, force=False),
554
call('/var/lib/nova/keys', owner='nova',
555
group='nova', perms=0755, force=False),
556
call('/var/lib/nova/networks', owner='nova',
557
group='nova', perms=0755, force=False),
558
call('/var/lib/nova/tmp', owner='nova',
559
group='nova', perms=0755, force=False),
560
call('/var/log/nova', owner='nova',
561
group='nova', perms=0755, force=False),
563
self.assertEquals(mkdir.call_args_list, expected)
565
call('/var/log/nova/nova-api.log', '', owner='nova',
566
group='nova', perms=0644),
567
call('/var/log/nova/nova-compute.log', '', owner='nova',
568
group='nova', perms=0644),
569
call('/var/log/nova/nova-manage.log', '', owner='nova',
570
group='nova', perms=0644),
571
call('/var/log/nova/nova-network.log', '', owner='nova',
572
group='nova', perms=0644),
574
self.assertEquals(write_file.call_args_list, expected)
576
@patch.object(utils, 'git_src_dir')
577
@patch.object(utils, 'service_restart')
578
@patch.object(utils, 'render')
579
@patch('os.path.join')
580
@patch('os.path.exists')
581
@patch('shutil.copytree')
582
@patch('shutil.rmtree')
583
@patch.object(utils, 'apt_install')
584
@patch.object(utils, 'apt_update')
585
def test_git_post_install(self, apt_update, apt_install, rmtree, copytree,
586
exists, join, render, service_restart,
588
projects_yaml = openstack_origin_git
589
join.return_value = 'joined-string'
590
utils.git_post_install(projects_yaml)
592
call('joined-string', '/etc/nova'),
594
copytree.assert_has_calls(expected)
596
service_name = 'nova-compute'
598
start_dir = '/var/lib/nova'
599
nova_conf = '/etc/nova/nova.conf'
600
nova_api_metadata_context = {
601
'service_description': 'Nova Metadata API server',
602
'service_name': service_name,
603
'user_name': nova_user,
604
'start_dir': start_dir,
605
'process_name': 'nova-api-metadata',
606
'executable_name': '/usr/local/bin/nova-api-metadata',
607
'config_files': [nova_conf],
610
'service_description': 'Nova API server',
611
'service_name': service_name,
612
'user_name': nova_user,
613
'start_dir': start_dir,
614
'process_name': 'nova-api',
615
'executable_name': '/usr/local/bin/nova-api',
616
'config_files': [nova_conf],
618
nova_compute_context = {
619
'service_description': 'Nova compute worker',
620
'service_name': service_name,
621
'user_name': nova_user,
622
'process_name': 'nova-compute',
623
'executable_name': '/usr/local/bin/nova-compute',
624
'config_files': [nova_conf, '/etc/nova/nova-compute.conf'],
626
nova_network_context = {
627
'service_description': 'Nova network worker',
628
'service_name': service_name,
629
'user_name': nova_user,
630
'start_dir': start_dir,
631
'process_name': 'nova-network',
632
'executable_name': '/usr/local/bin/nova-network',
633
'config_files': [nova_conf],
636
call('git/nova-compute-kvm.conf', '/etc/nova/nova-compute.conf',
638
call('git/nova_sudoers', '/etc/sudoers.d/nova_sudoers',
640
call('git.upstart', '/etc/init/nova-api-metadata.conf',
641
nova_api_metadata_context, perms=0o644,
642
templates_dir='joined-string'),
643
call('git.upstart', '/etc/init/nova-api.conf',
644
nova_api_context, perms=0o644,
645
templates_dir='joined-string'),
646
call('git/upstart/nova-compute.upstart',
647
'/etc/init/nova-compute.conf',
648
nova_compute_context, perms=0o644),
649
call('git.upstart', '/etc/init/nova-network.conf',
650
nova_network_context, perms=0o644,
651
templates_dir='joined-string'),
653
self.assertEquals(render.call_args_list, expected)
654
self.assertTrue(apt_update.called)
655
apt_install.assert_called_with(
656
['bridge-utils', 'dnsmasq-base',
657
'dnsmasq-utils', 'ebtables', 'genisoimage', 'iptables',
658
'iputils-arping', 'kpartx', 'kvm', 'netcat', 'open-iscsi',
659
'parted', 'python-libvirt', 'qemu', 'qemu-system',
660
'qemu-utils', 'vlan', 'xen-system-amd64'], fatal=True)