Repository: libcloud Updated Branches: refs/heads/trunk 214677f45 -> 0846fe4cc
Fix image undeprecation on GCE. Closes #852 Signed-off-by: Eric Johnson <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/0846fe4c Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/0846fe4c Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/0846fe4c Branch: refs/heads/trunk Commit: 0846fe4cc063fb45e556b90c55aca8a0dc708d62 Parents: 214677f Author: Max Illfelder <[email protected]> Authored: Thu Aug 11 13:32:59 2016 -0700 Committer: Eric Johnson <[email protected]> Committed: Wed Aug 17 13:55:40 2016 +0000 ---------------------------------------------------------------------- CHANGES.rst | 4 ++++ libcloud/compute/drivers/gce.py | 32 ++++++++++++++++++-------------- 2 files changed, 22 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/0846fe4c/CHANGES.rst ---------------------------------------------------------------------- diff --git a/CHANGES.rst b/CHANGES.rst index a055b5a..a631a9a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -17,6 +17,10 @@ General Compute ~~~~~~~ +- [gce] Fix image undeprecation in GCE + (GITHUB-852) + [Max Illfelder] + - [gce] Added Managed Instance Groups (GITHUB-842) [Tom Melendez] http://git-wip-us.apache.org/repos/asf/libcloud/blob/0846fe4c/libcloud/compute/drivers/gce.py ---------------------------------------------------------------------- diff --git a/libcloud/compute/drivers/gce.py b/libcloud/compute/drivers/gce.py index 0550860..44ebdac 100644 --- a/libcloud/compute/drivers/gce.py +++ b/libcloud/compute/drivers/gce.py @@ -4463,21 +4463,25 @@ class GCENodeDriver(NodeDriver): raise ValueError('state must be one of %s' % ','.join(possible_states)) - image_data = { - 'state': state, - 'replacement': replacement.extra['selfLink'], - } - - for attribute, value in [('deprecated', deprecated), - ('obsolete', obsolete), ('deleted', deleted)]: - if value is None: - continue + if state == 'ACTIVE': + image_data = {} + else: + image_data = { + 'state': state, + 'replacement': replacement.extra['selfLink'], + } + for attribute, value in [('deprecated', deprecated), + ('obsolete', obsolete), + ('deleted', deleted)]: + if value is None: + continue - try: - timestamp_to_datetime(value) - except: - raise ValueError('%s must be an RFC3339 timestamp' % attribute) - image_data[attribute] = value + try: + timestamp_to_datetime(value) + except: + raise ValueError('%s must be an RFC3339 timestamp' + % attribute) + image_data[attribute] = value request = '/global/images/%s/deprecate' % (image.name)
