Commit Graph

34 Commits (cb80df4f4ab0e8de16d53c7fddff7c44dedd3f94)

Author SHA1 Message Date
Vitaly Gridnev f95a8051ca Validate that python3 is ready for loguserdata
By default, ubuntu trusty images has python3 executable in
path, but we can't use that for executing loguserdata script,
because pkg_resources can't be imported. Now it's proposed to
try importing pkg_resources for validating readiness of
python3 for executing this script. If pkg_resources can't be
imported there is no other choice except using python2.

Change-Id: Icb4f58630016874eb40dd77590469fc5de6287e4
Closes-bug: 1617069
2016-08-26 11:49:30 +00:00
Thomas Herve 59fc53a66c Use Fedora 24 base image
Use the standard base image for now, it's smaller and we don't need the
full custom image.

Change-Id: Ifaccf340f0ff4eac52b1eeef5914b7e90f2687da
2016-07-12 11:48:47 +02:00
xiexs 66039a8c21 Optimize "open" method with context manager
Use opening context manager to open a file.

Change-Id: I07ea2f163b101e9501ee54b1f5de924895b35e64
2015-11-27 07:48:55 -05:00
Jay Dobies 9ff5437e72 Replaced mox with mock in test_loguserdata
Also fixed a bug in loguserdata for an incorrect tuple instantiation

Change-Id: Ic7bcf018b771505e3ef6c747e0624f929463eb5b
2015-10-12 10:15:19 -04:00
Oleksii Chuprykov 04eedc46b8 Try to get the version of cloud init via popen
Now we can fail while trying to get the version of cloud-init
via pkg_resources. Try to get the version via ordinary cmd call
'cloud-init --version'.

Change-Id: I39d4d52ba1ac83183a0a46c7f3a70a14b782562a
Closes-Bug: #1481614
2015-08-06 19:12:44 +03:00
Sirushti Murugesan 640abe0c12 Update the rest of the code to satisfy flake8 in a py34 env
* Use six.moves.reduce
* Update numliteral from 0L to 0
* Use open() instead of file()
* Use rich comparison methods instead of cmp()

partial blueprint heat-python34-support

Change-Id: I9ffd85645563192b5d6124f8dbb71c24245eefc4
2015-04-24 11:53:43 +05:30
Pavlo Shchelokovskyy 4279bd2923 Enable H305 and H307 style checks
Correct grouping and ordering of imports

Change-Id: I47ea0d53f80d7f0aeb01c1c6afd63713be87ddf4
2015-01-20 09:47:25 +02:00
Tetiana Lashchova 014bf9d611 Remove i18n import from
Change-Id: I47bc858e6f0d0b92a103cf40fdf47e1c8d5c89c5
Closes-Bug: #1399642
2014-12-05 15:21:14 +02:00
Tetiana Lashchova 4801c0f894 Use the right log marker functions
According to [1] _LI() should be used for, _LE() for
LOG.exception() and LOG.error(), _LW() for LOG.warning().
The log marker functions must only be used when the message is
sent directly to the log.
Debug level log messages should not be translated.


Change-Id: Ib9f92ef6696b9a95ddae74f0d4a0a557c06ecc91
2014-12-02 14:57:13 +02:00
Peter Razumovsky c1aa3d7a4d Fix [H302] errors in heat/cloudinit
Kicked from gate (heat can't pass pep8 atm)

Change-Id: If9100574f091d23c9ae9e0bca94ab16fd4b535ec
2014-11-18 19:08:39 +00:00
Zane Bitter 95ec13c572 Fix cloud-init Python syntax for Python < 2.6
The file gets uploaded to the servers created by Heat to run
under cloud-init. Since the default versions of Python installed on the
user's server may be very old (e.g. RHEL 5 defaults to Python 2.4), avoid
using the octal syntax introduced for Python 3.0 and backported only as far
as Python 2.6. (Also avoid the old syntax, which will break on Python 3.x.)

Also remove use of the "with" statement from and This statement is only available from Python 2.6 on (or in
Python 2.5 via "from __future__ import with_statement").

Finally, remove use of the "except ExceptionType as value" syntax for
catching exceptions. Again, this was only backported to Python 2.6.

Change-Id: I89e86d00993d51e2514b1e589503c6d966909403
Partial-Bug: #1375864
2014-10-01 15:16:45 -04:00
Thomas Herve db515c54cf Remove translation from loguserdata
The logs in loguserdata don't need to be translated because it's sent
with the po files to instances, and actually break because of gettext
not being used

Closes-Bug: #1325313
Change-Id: I365f3d882b8f64f9710eea4901ac266f9fcf0da3
2014-06-01 17:45:46 +02:00
Christian Berendt 105a806493 all non debug log messages should be translated
Updated a set of files to add missing translation support in the
log messages.

Change-Id: I58d561c5e1ecff550483ee0be696999e927c98ad
Partial-Bug: #1321283
2014-05-29 11:11:46 +02:00
Jenkins d951d9eb58 Merge "Make the first line of every file consistent." 2014-04-08 08:51:07 +00:00
Jason Dunsmore af464c9afc Make the first line of every file consistent.
Change-Id: I2e1a809cfca8e88693551d58d33e747f54ee5eb1
2014-03-04 09:03:04 -06:00
Pavlo Shchelokovskyy 72597753ef Order imports in alphabetical order (3/9)
This patch is one in a series to re-enable H306 style check rule
(imports are in alphabetical order). It touches common and cloudinit files.

Implements: blueprint reduce-flake8-ignored-rules (partial)
Change-Id: Ie9838dba11323575165fc3bfdfbd0d0b93f653fa
2014-02-25 16:36:39 +02:00
DennyZhang 893a8c980c Change loglevel for certain failures
Change to Log.error/Log.warning to make trouble shooting
more apparent

Change-Id: Ie293df0c941414da8fb035e4d4b170a0a4c9d397
2013-12-22 22:59:25 -06:00
Steven Dake 715e5d4f51 Revert "Replace with write-files cloudinit mechanism"
Ubuntu has 0.6 of cloudinit, and write-files doesn't work on that
distro.  Ubuntu does not intend to update cloudinit in their LTS release
to 0.7.

This reverts commit 621f5bfdba.
Fixes: Bug #1207088

Change-Id: If80863883afee28bdde6dd506826ec5710cc0308
2013-08-05 12:13:59 -05:00
Steven Dake 621f5bfdba Replace with write-files cloudinit mechanism was acting as a write-files mechanism.  Instead just
use the write-files mechanism directly to avoid the complexities of
the part-handler.

blueprint: use-cloudinit-write
Change-Id: I6e80c344743d6fd2fa9a49507de6d50e3d9eea73
2013-07-30 15:24:08 -07:00
Jenkins eade86a674 Merge "Fix loguserdata output to file issue" 2013-07-24 18:15:16 +00:00
guohliu dc41655176 Fix loguserdata output to file issue
Fixes bug #1191685

Change-Id: I2a02b490e45c3cb838243b9dad62cc52b609b336
2013-07-23 18:49:04 +08:00
Angus Salkeld e3caef4452 Use new style classes
Change a couple of old style classes into the newer styled ones.

Change-Id: Ide3bbcd2d24f949a2a550fcc2210617f34c8cd0b
2013-07-23 11:26:05 +10:00
Dirk Mueller 234a1f0f2e Add missing Aapche 2.0 license headers (H102)
Satisfy Hacking check of Hacking 0.6 or newer.

Change-Id: I01d9b44c1681142ef91fd91f678e173239ae6c98
2013-07-19 23:10:25 +02:00
Dirk Mueller ede21a2688 Use Python 3.x compatible octal literals
Python 3.x deprecated the 0700 construct. 0o700
works with any version of Python (>= 2.6 tested)

Change-Id: I47fcb79804b75437e6cf4ce966fbfdc05fce26cd
2013-06-10 09:46:34 +02:00
Steve Baker 05ca181e9e Use python logging for, log to console
Python logging is configured with a stream handler and should
also replicate the previous logging to 0600 /var/log/heat-provision.log

By logging to a stream handler cloud-init will write to its log,
which will show up in the server console log. This means that heat
provisioning can now be monitored without needing to log in with:

nova console-log <servername>

This change also touches the file /var/lib/heat-cfntools/provision-finished
instead of also writing a datestamp to it, which is redundant.

Change-Id: Id0312bd2216a83753df601b17ad16d5355cdb11d
2013-05-15 11:57:05 +12:00
Jeff Peeler d665740935 Change executable file permissions for rpmlint
Fixes: Bug #1158009
Change-Id: I761debfb77be5cf5204af90a013d7f4f043fdb17
Signed-off-by: Jeff Peeler <>
2013-03-20 18:56:36 -04:00
Angus Salkeld 655e377d45 loguserdata: handle exceptions from running the userdata
- log the exceptions so the user can diagnose issues.

bug 1154641
Change-Id: Ic085c9f062255a9fa44b3e31b464c9ebd19a947c
Signed-off-by: Angus Salkeld <>
2013-03-14 14:21:55 +11:00
Angus Salkeld fbea931550 loguserdata: prevent shadowing of arguments and globals
cleaning this up for bug 1154641

Change-Id: I95271bdeba1bba29e78af79de4e2173d07750e4f
Signed-off-by: Angus Salkeld <>
2013-03-14 12:33:23 +11:00
Steven Dake bb65fee164 Remove unused import from
Change-Id: I0bdf8a51e0d21533c5ce8148cdffcbc92f89fef9
Fixes: Bug #1131275
2013-02-28 17:15:52 -07:00
Steven Dake 737cc26570 Put heat data files in /var/lib/heat-cfntools
The /var/lib/heat-cfntools directory should be owned by the
heat-cfntools package for whichever distro it is included.

This avoids the problem of heat writing to directories owned
by cloud-init.

For the moment, the part handler will continue to write to
/var/lib/cloud/data to be removed at a later date.

Change-Id: I70b714c70ed146d4f6807850d6e7264c6a4624cd
Fixes: Bug #1105806
2013-02-27 18:31:04 -07:00
Steve Baker c598d0d3e8 Refactor so it can be tested.
- Use distutils.version.LooseVersion for cloud-init version check
- Fix bug 1100287 by setting the following modes:
  - 0600 /var/log/heat-provision.log
  - 0700 /var/lib/heat
  - 0700 /var/lib/cloud/data/cfn-userdata (was 0111!)
- Full test coverage except for where __name__ == '__main__'
- File size has gone from 1218 bytes to 1636. If necessary we could reduce size in the future by using short names

This works for me when launching a template. At least if there are any regressions they can have a test written for the fix.
Change-Id: I04e773a743ec210e90394e50d2bb70c70664e80e
2013-02-07 08:45:18 +13:00
Jeff Peeler 410336810d Hardcode provision-finished file path
A recent change removed the use of the cloudinit module, so write this
log to /var/lib/heat. Functional test paths updated as well.
(User data injection was removed, so that has been deleted as well.)

Change-Id: Ibcaf310a5e4ff9a9ed8b1065bdd411e1b95d4de5
Signed-off-by: Jeff Peeler <>
2013-01-30 15:38:32 -05:00
Clint Byrum 8d6aa11e70 Use pkg_resources to detect version of cloud-init
Previously the present of an API call only present in cloud-init 0.6.x
was used to determine whether or not cfn-userdata would have been executed
or not. The API call was removed in 0.7.x. This Fixes bug #1103793

Change-Id: I27129f8ae6144ae7172b7159ed70fc5f0d7d07b9
2013-01-23 21:59:58 -08:00
Jeff Peeler 93c3d93ec4 Handle different cloud-init versions gracefully
Change loguserdata script to python to allow easy detection of which
version of cloud-init installed. Some logging was added to

Took out injecting the command to touch provision-finished in the user
data. This is now handled in

Note that up until cloud-init version 0.6.0, the user data is not
passed to part-handler. This behavior is why it's not possible to log
the provisioning process with older versions. (Technically could rely
on the redirection support added post 0.6.0, but having a separate
file just for provisioning seems beneficial.)

fixes bug 1072921

Change-Id: I9005a21bfb74f27208f9195a6e10e1d2b474e91f
Signed-off-by: Jeff Peeler <>
2013-01-07 14:08:07 -05:00