-
Notifications
You must be signed in to change notification settings - Fork 78
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add IAM Conditions support #120
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Surface looks good. LGTM!
I'll let @chingor13 and others review Java aspects.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mostly nits, but snapshot dependencies are a hard no.
Bindings apiBinding = new Bindings(); | ||
apiBinding.setRole(binding.getRole()); | ||
apiBinding.setMembers(new ArrayList<>(binding.getMembers())); | ||
if (null != binding.getCondition()) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no reason to put null first; it's a leftover convention from C that doesn't make sense in Java
|
||
assertEquals(libPolicy, actualLibPolicy); | ||
assertTrue(new ApiPolicyMatcher(apiPolicy).matches(actualApiPolicy)); | ||
// Policy actualLibPolicy = PolicyHelper.convertFromApiPolicy(apiPolicy); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete it if it isn't relevant. or fix it if it is.
@@ -2329,6 +2331,8 @@ public void testReadCompressedBlob() throws IOException { | |||
public void testBucketPolicy() { | |||
testBucketPolicyRequesterPays(true); | |||
testBucketPolicyRequesterPays(false); | |||
// testBucketPolicyV3RequesterPays(true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't comment out code
@@ -2398,6 +2402,160 @@ private void testBucketPolicyRequesterPays(boolean requesterPays) { | |||
bucketOptions)); | |||
} | |||
|
|||
private void testBucketPolicyV3RequesterPays(boolean requesterPays) { | |||
if (requesterPays) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Conditionals around asserts are a code smell. This should be two tests, one with and one without requesterPays.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or two helper methods
|
||
// Remove a member | ||
List<com.google.cloud.Binding> updatedBindings = new ArrayList(updatedPolicy.getBindingsList()); | ||
for (int i = 0; i < updatedBindings.size(); ++i) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i++ is more common
pom.xml
Outdated
@@ -63,7 +63,7 @@ | |||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||
<github.global.server>github</github.global.server> | |||
<site.installationModule>google-cloud-storage-parent</site.installationModule> | |||
<google.core.version>1.91.3</google.core.version> | |||
<google.core.version>1.92.3-SNAPSHOT</google.core.version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No snapshot dependencies.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Doing it temporary until dependency PR is merged/released.
@@ -2398,6 +2402,160 @@ private void testBucketPolicyRequesterPays(boolean requesterPays) { | |||
bucketOptions)); | |||
} | |||
|
|||
private void testBucketPolicyV3RequesterPays(boolean requesterPays) { | |||
if (requesterPays) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Or two helper methods
pom.xml
Outdated
@@ -63,7 +63,7 @@ | |||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> | |||
<github.global.server>github</github.global.server> | |||
<site.installationModule>google-cloud-storage-parent</site.installationModule> | |||
<google.core.version>1.92.5</google.core.version> | |||
<google.core.version>1.92.6-SNAPSHOT</google.core.version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hard veto on this; we must not depend on snapshots. If this means we have to wait for a release of google core so be it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm doing this only for development*
Codecov Report
@@ Coverage Diff @@
## master #120 +/- ##
============================================
+ Coverage 63.4% 63.46% +0.06%
Complexity 537 537
============================================
Files 30 30
Lines 4752 4752
Branches 427 427
============================================
+ Hits 3013 3016 +3
+ Misses 1579 1576 -3
Partials 160 160
Continue to review full report at Codecov.
|
@elharo could you help cut a release for libraries-bom, @chingor13 released google-cloud-bom which updated java-core dependency to latest release which has IAM Conditions support. It's blocking the Linkage Monitor. |
Add IAM Conditions Support.
Depends on:
googleapis/java-core#110
Pending Review List: