cloud-init-dev team mailing list archive
-
cloud-init-dev team
-
Mailing list archive
-
Message #00782
[Merge] lp:~smoser/cloud-init/trunk.disable_pollinate into lp:cloud-init
Scott Moser has proposed merging lp:~smoser/cloud-init/trunk.disable_pollinate into lp:cloud-init.
Commit message:
No longer run pollinate by default in seed_random
The user can still choose to run pollinate here to seed their
random data. And in an environment with network datasource, that
would be expected to work. However, we do not want to run it any
more from cloud-init because
a.) pollinate's own init system jobs should get it ran before ssh,
which is the primary purpose of wanting cloud-init to run it.
b.) with a local datasource, there is no network guarantee when
init_modules run, so pollinate -q would often cause issues then.
c.) cloud-init would run pollinate and log the failure causing
many cloud-init specific failures that it could do nothing about.
Requested reviews:
Dustin Kirkland (kirkland)
cloud init development team (cloud-init-dev)
Related bugs:
Bug #1554152 in cloud-init: "pollinate fails in many circumstances, cloud-init reports that failure, maas reports node failed deployment"
https://bugs.launchpad.net/cloud-init/+bug/1554152
For more details, see:
https://code.launchpad.net/~smoser/cloud-init/trunk.disable_pollinate/+merge/288362
--
Your team cloud init development team is requested to review the proposed merge of lp:~smoser/cloud-init/trunk.disable_pollinate into lp:cloud-init.
=== modified file 'ChangeLog'
--- ChangeLog 2016-03-04 11:27:18 +0000
+++ ChangeLog 2016-03-08 02:46:41 +0000
@@ -85,6 +85,7 @@
unless it is already a file (LP: #1543025).
- Enable password changing via a hashed string [Alex Sirbu]
- Added BigStep datasource [Alex Sirbu]
+ - No longer run pollinate in seed_random (LP: #1554152)
0.7.6:
- open 0.7.6
=== modified file 'cloudinit/config/cc_seed_random.py'
--- cloudinit/config/cc_seed_random.py 2015-02-11 01:09:34 +0000
+++ cloudinit/config/cc_seed_random.py 2016-03-08 02:46:41 +0000
@@ -83,7 +83,7 @@
len(seed_data), seed_path)
util.append_file(seed_path, seed_data)
- command = mycfg.get('command', ['pollinate', '-q'])
+ command = mycfg.get('command', None)
req = mycfg.get('command_required', False)
try:
env = os.environ.copy()
=== modified file 'tests/unittests/test_handler/test_handler_seed_random.py'
--- tests/unittests/test_handler/test_handler_seed_random.py 2016-03-03 22:20:10 +0000
+++ tests/unittests/test_handler/test_handler_seed_random.py 2016-03-08 02:46:41 +0000
@@ -170,28 +170,30 @@
contents = util.load_file(self._seed_file)
self.assertEquals('tiny-tim-was-here-so-was-josh', contents)
- def test_seed_command_not_provided_pollinate_available(self):
+ def test_seed_command_provided_and_available(self):
c = self._get_cloud('ubuntu', {})
self.whichdata = {'pollinate': '/usr/bin/pollinate'}
- cc_seed_random.handle('test', {}, c, LOG, [])
+ cfg = {'random_seed': {'command': ['pollinate', '-q']}}
+ cc_seed_random.handle('test', cfg, c, LOG, [])
subp_args = [f['args'] for f in self.subp_called]
self.assertIn(['pollinate', '-q'], subp_args)
- def test_seed_command_not_provided_pollinate_not_available(self):
+ def test_seed_command_not_provided(self):
c = self._get_cloud('ubuntu', {})
self.whichdata = {}
cc_seed_random.handle('test', {}, c, LOG, [])
# subp should not have been called as which would say not available
- self.assertEquals(self.subp_called, list())
+ self.assertFalse(self.subp_called)
def test_unavailable_seed_command_and_required_raises_error(self):
c = self._get_cloud('ubuntu', {})
self.whichdata = {}
+ cfg = {'random_seed': {'command': ['THIS_NO_COMMAND'],
+ 'command_required': True}}
self.assertRaises(ValueError, cc_seed_random.handle,
- 'test', {'random_seed': {'command_required': True}},
- c, LOG, [])
+ 'test', cfg, c, LOG, [])
def test_seed_command_and_required(self):
c = self._get_cloud('ubuntu', {})