Merge lp:~cbjchen/charms/trusty/nova-compute/libvirt_uniq_uuid into lp:~openstack-charmers-archive/charms/trusty/nova-compute/next

Proposed by Liang Chen
Status: Merged
Merged at revision: 104
Proposed branch: lp:~cbjchen/charms/trusty/nova-compute/libvirt_uniq_uuid
Merge into: lp:~openstack-charmers-archive/charms/trusty/nova-compute/next
Diff against target: 77 lines (+26/-9)
3 files modified
hooks/nova_compute_context.py (+3/-0)
templates/libvirtd.conf (+1/-0)
unit_tests/test_nova_compute_contexts.py (+22/-9)
To merge this branch: bzr merge lp:~cbjchen/charms/trusty/nova-compute/libvirt_uniq_uuid
Reviewer Review Type Date Requested Status
Edward Hope-Morley Approve
Review via email: mp+248450@code.launchpad.net

Description of the change

Making sure libvirt daemon gets a unique host_uuid on every host. Because some hardware doesn't always provide a valid unique uuid by means of "dmidecode -s system-uuid" that libvirt by default uses, which may lead to at least live-migration error shown in the related bug.

To post a comment you must log in.
Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_lint_check #1514 nova-compute-next for cbjchen mp248450
    LINT OK: passed

Build: http://10.245.162.77:8080/job/charm_lint_check/1514/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_unit_test #1469 nova-compute-next for cbjchen mp248450
    UNIT OK: passed

Build: http://10.245.162.77:8080/job/charm_unit_test/1469/

Revision history for this message
uosci-testing-bot (uosci-testing-bot) wrote :

charm_amulet_test #1633 nova-compute-next for cbjchen mp248450
    AMULET OK: passed

Build: http://10.245.162.77:8080/job/charm_amulet_test/1633/

Revision history for this message
Edward Hope-Morley (hopem) wrote :

LGTM +1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'hooks/nova_compute_context.py'
2--- hooks/nova_compute_context.py 2014-12-15 10:28:47 +0000
3+++ hooks/nova_compute_context.py 2015-02-03 20:50:32 +0000
4@@ -1,3 +1,5 @@
5+import uuid
6+
7 from charmhelpers.contrib.openstack import context
8 from charmhelpers.core.host import service_running, service_start
9 from charmhelpers.fetch import apt_install, filter_installed_packages
10@@ -119,6 +121,7 @@
11 if config('disk-cachemodes'):
12 ctxt['disk_cachemodes'] = config('disk-cachemodes')
13
14+ ctxt['host_uuid'] = '%s' % uuid.uuid4()
15 return ctxt
16
17
18
19=== modified file 'templates/libvirtd.conf'
20--- templates/libvirtd.conf 2013-08-01 23:21:58 +0000
21+++ templates/libvirtd.conf 2015-02-03 20:50:32 +0000
22@@ -374,6 +374,7 @@
23 # uncomment this entry
24 #host_uuid = "00000000-0000-0000-0000-000000000000"
25
26+host_uuid = "{{ host_uuid }}"
27 ###################################################################
28 # Keepalive protocol:
29 # This allows libvirtd to detect broken client connections or even
30
31=== modified file 'unit_tests/test_nova_compute_contexts.py'
32--- unit_tests/test_nova_compute_contexts.py 2014-12-03 23:23:54 +0000
33+++ unit_tests/test_nova_compute_contexts.py 2015-02-03 20:50:32 +0000
34@@ -173,21 +173,34 @@
35
36 def test_libvirt_bin_context_no_migration(self):
37 self.test_config.set('enable-live-migration', False)
38- libvirt = context.NovaComputeLibvirtContext()
39- self.assertEquals({'libvirtd_opts': '-d', 'listen_tls': 0}, libvirt())
40+ with patch('uuid.uuid4') as uid:
41+ uid.return_value = 'e46e530d-18ae-4a67-9ff0-e6e2ba7c60a7'
42+ libvirt = context.NovaComputeLibvirtContext()()
43+ self.assertEqual(
44+ {'libvirtd_opts': '-d',
45+ 'listen_tls': 0,
46+ 'host_uuid': 'e46e530d-18ae-4a67-9ff0-e6e2ba7c60a7'}, libvirt)
47
48 def test_libvirt_bin_context_migration_tcp_listen(self):
49 self.test_config.set('enable-live-migration', True)
50- libvirt = context.NovaComputeLibvirtContext()
51- self.assertEquals(
52- {'libvirtd_opts': '-d -l', 'listen_tls': 0}, libvirt())
53+ with patch('uuid.uuid4') as uid:
54+ uid.return_value = 'e46e530d-18ae-4a67-9ff0-e6e2ba7c60a7'
55+ libvirt = context.NovaComputeLibvirtContext()()
56+ self.assertEqual(
57+ {'libvirtd_opts': '-d -l',
58+ 'listen_tls': 0,
59+ 'host_uuid': 'e46e530d-18ae-4a67-9ff0-e6e2ba7c60a7'}, libvirt)
60
61 def test_libvirt_disk_cachemodes(self):
62 self.test_config.set('disk-cachemodes', 'file=unsafe,block=none')
63- libvirt = context.NovaComputeLibvirtContext()
64- self.assertEquals(
65- {'libvirtd_opts': '-d', 'listen_tls': 0,
66- 'disk_cachemodes': 'file=unsafe,block=none'}, libvirt())
67+ with patch('uuid.uuid4') as uid:
68+ uid.return_value = 'e46e530d-18ae-4a67-9ff0-e6e2ba7c60a7'
69+ libvirt = context.NovaComputeLibvirtContext()()
70+ self.assertEqual(
71+ {'libvirtd_opts': '-d',
72+ 'listen_tls': 0,
73+ 'host_uuid': 'e46e530d-18ae-4a67-9ff0-e6e2ba7c60a7',
74+ 'disk_cachemodes': 'file=unsafe,block=none'}, libvirt)
75
76 @patch.object(context.NeutronComputeContext, 'network_manager')
77 @patch.object(context.NeutronComputeContext, 'plugin')

Subscribers

People subscribed via source and target branches