Skip to content

Commit b26b0df

Browse files
authored
Update compatibility with google-cloud-kms>=2.0 (#13124)
1 parent 9a1d382 commit b26b0df

File tree

3 files changed

+37
-25
lines changed

3 files changed

+37
-25
lines changed

airflow/providers/google/cloud/hooks/kms.py

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,14 @@ def encrypt(
118118
:rtype: str
119119
"""
120120
response = self.get_conn().encrypt(
121-
name=key_name,
122-
plaintext=plaintext,
123-
additional_authenticated_data=authenticated_data,
121+
request={
122+
'name': key_name,
123+
'plaintext': plaintext,
124+
'additional_authenticated_data': authenticated_data,
125+
},
124126
retry=retry,
125127
timeout=timeout,
126-
metadata=metadata,
128+
metadata=metadata or (),
127129
)
128130

129131
ciphertext = _b64encode(response.ciphertext)
@@ -161,12 +163,14 @@ def decrypt(
161163
:rtype: bytes
162164
"""
163165
response = self.get_conn().decrypt(
164-
name=key_name,
165-
ciphertext=_b64decode(ciphertext),
166-
additional_authenticated_data=authenticated_data,
166+
request={
167+
'name': key_name,
168+
'ciphertext': _b64decode(ciphertext),
169+
'additional_authenticated_data': authenticated_data,
170+
},
167171
retry=retry,
168172
timeout=timeout,
169-
metadata=metadata,
173+
metadata=metadata or (),
170174
)
171175

172176
return response.plaintext

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ def write_version(filename: str = os.path.join(*[my_dir, "airflow", "git_version
260260
'google-cloud-datacatalog>=1.0.0,<2.0.0',
261261
'google-cloud-dataproc>=1.0.1,<2.0.0',
262262
'google-cloud-dlp>=0.11.0,<2.0.0',
263-
'google-cloud-kms>=1.2.1,<2.0.0',
263+
'google-cloud-kms>=2.0.0,<3.0.0',
264264
'google-cloud-language>=1.1.1,<2.0.0',
265265
'google-cloud-logging>=1.14.0,<2.0.0',
266266
'google-cloud-memcache>=0.2.0',

tests/providers/google/cloud/hooks/test_kms.py

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -82,12 +82,14 @@ def test_encrypt(self, mock_get_conn):
8282
result = self.kms_hook.encrypt(TEST_KEY_ID, PLAINTEXT)
8383
mock_get_conn.assert_called_once_with()
8484
mock_get_conn.return_value.encrypt.assert_called_once_with(
85-
name=TEST_KEY_ID,
86-
plaintext=PLAINTEXT,
87-
additional_authenticated_data=None,
85+
request=dict(
86+
name=TEST_KEY_ID,
87+
plaintext=PLAINTEXT,
88+
additional_authenticated_data=None,
89+
),
8890
retry=None,
8991
timeout=None,
90-
metadata=None,
92+
metadata=(),
9193
)
9294
self.assertEqual(PLAINTEXT_b64, result)
9395

@@ -97,12 +99,14 @@ def test_encrypt_with_auth_data(self, mock_get_conn):
9799
result = self.kms_hook.encrypt(TEST_KEY_ID, PLAINTEXT, AUTH_DATA)
98100
mock_get_conn.assert_called_once_with()
99101
mock_get_conn.return_value.encrypt.assert_called_once_with(
100-
name=TEST_KEY_ID,
101-
plaintext=PLAINTEXT,
102-
additional_authenticated_data=AUTH_DATA,
102+
request=dict(
103+
name=TEST_KEY_ID,
104+
plaintext=PLAINTEXT,
105+
additional_authenticated_data=AUTH_DATA,
106+
),
103107
retry=None,
104108
timeout=None,
105-
metadata=None,
109+
metadata=(),
106110
)
107111
self.assertEqual(PLAINTEXT_b64, result)
108112

@@ -112,12 +116,14 @@ def test_decrypt(self, mock_get_conn):
112116
result = self.kms_hook.decrypt(TEST_KEY_ID, CIPHERTEXT_b64)
113117
mock_get_conn.assert_called_once_with()
114118
mock_get_conn.return_value.decrypt.assert_called_once_with(
115-
name=TEST_KEY_ID,
116-
ciphertext=CIPHERTEXT,
117-
additional_authenticated_data=None,
119+
request=dict(
120+
name=TEST_KEY_ID,
121+
ciphertext=CIPHERTEXT,
122+
additional_authenticated_data=None,
123+
),
118124
retry=None,
119125
timeout=None,
120-
metadata=None,
126+
metadata=(),
121127
)
122128
self.assertEqual(PLAINTEXT, result)
123129

@@ -127,11 +133,13 @@ def test_decrypt_with_auth_data(self, mock_get_conn):
127133
result = self.kms_hook.decrypt(TEST_KEY_ID, CIPHERTEXT_b64, AUTH_DATA)
128134
mock_get_conn.assert_called_once_with()
129135
mock_get_conn.return_value.decrypt.assert_called_once_with(
130-
name=TEST_KEY_ID,
131-
ciphertext=CIPHERTEXT,
132-
additional_authenticated_data=AUTH_DATA,
136+
request=dict(
137+
name=TEST_KEY_ID,
138+
ciphertext=CIPHERTEXT,
139+
additional_authenticated_data=AUTH_DATA,
140+
),
133141
retry=None,
134142
timeout=None,
135-
metadata=None,
143+
metadata=(),
136144
)
137145
self.assertEqual(PLAINTEXT, result)

0 commit comments

Comments
 (0)