summaryrefslogtreecommitdiff
blob: 4d1be8eab6d4f5bc245630b490ac1e910121e0da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
From 85361123d2fa12eaedf912c046ffe39aebdd2bad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
Date: Sat, 22 May 2021 19:42:14 +0200
Subject: [PATCH] Replace use of deprecated base64.encodestring()

Replace the uses of deprecated base64.encodestring() in favor
of botocore.compat.encodebytes().  This fixes incompatibility with
Python 3.9 where the former function has finally been removed.
---
 awscli/customizations/ec2/bundleinstance.py  | 4 +++-
 tests/functional/ec2/test_bundle_instance.py | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/awscli/customizations/ec2/bundleinstance.py b/awscli/customizations/ec2/bundleinstance.py
index f704ec301..775e75718 100644
--- a/awscli/customizations/ec2/bundleinstance.py
+++ b/awscli/customizations/ec2/bundleinstance.py
@@ -17,6 +17,8 @@ import hmac
 import base64
 import datetime
 
+from botocore.compat import encodebytes
+
 from awscli.compat import six
 
 from awscli.arguments import CustomArgument
@@ -135,7 +137,7 @@ def _generate_signature(params):
         policy = base64.b64encode(six.b(policy)).decode('utf-8')
         new_hmac = hmac.new(sak.encode('utf-8'), digestmod=sha1)
         new_hmac.update(six.b(policy))
-        ps = base64.encodestring(new_hmac.digest()).strip().decode('utf-8')
+        ps = encodebytes(new_hmac.digest()).strip().decode('utf-8')
         params['UploadPolicySignature'] = ps
         del params['_SAK']
 
diff --git a/tests/functional/ec2/test_bundle_instance.py b/tests/functional/ec2/test_bundle_instance.py
index 3eee363da..ca36d7cd5 100644
--- a/tests/functional/ec2/test_bundle_instance.py
+++ b/tests/functional/ec2/test_bundle_instance.py
@@ -17,6 +17,8 @@ import datetime
 import mock
 from six.moves import cStringIO
 
+from botocore.compat import encodebytes
+
 import awscli.customizations.ec2.bundleinstance
 from awscli.compat import six
 from awscli.testutils import BaseAWSCommandParamsTest
@@ -70,7 +72,7 @@ class TestBundleInstance(BaseAWSCommandParamsTest):
 
     def test_policy_provided(self):
         policy = '{"notarealpolicy":true}'
-        base64policy = base64.encodestring(six.b(policy)).strip().decode('utf-8')
+        base64policy = encodebytes(six.b(policy)).strip().decode('utf-8')
         policy_signature = 'a5SmoLOxoM0MHpOdC25nE7KIafg='
         args = ' --instance-id i-12345678 --owner-akid AKIAIOSFODNN7EXAMPLE'
         args += ' --owner-sak wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY'
-- 
2.31.1