-
Notifications
You must be signed in to change notification settings - Fork 318
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
Implement Manifest V3 objects and deployment #1167
Conversation
This commit adds support for maintenance info when updating service instances Signed-off-by: Paul Harris <harrisp@vmware.com>
This commit adds integration tests for Audit Events, and handles issues uncovered by the tests. It also adds some missing javadoc, and tweaks some naming and visibilities. [resolves cloudfoundry#1014] Signed-off-by: Paul Harris <harrisp@vmware.com>
Earlier versions of the client would automatically refresh an expired refresh token using the credentials it already had. This functionality was lost during the transition to newer versions of reactor. This commit reinstates that functionality. [resolves cloudfoundry#1051] Signed-off-by: Paul Harris <harrisp@vmware.com>
Adds fields required for compatibility with PCF 2.9, and update a potentially fragile test Signed-off-by: Paul Harris <harrisp@vmware.com>
Previously the audit events space and organization relationships were defined as custom objects, when they should have used the standard Relationships object. This commit corrects that error. Signed-off-by: Paul Harris <harrisp@vmware.com>
This commit adds logging of the X-Vcap-Request-Id header on responses to aid diagnosing communication issues with a cloud foundry server. The added information is available by enabling TRACE logging, minimally on cloudfoundry-client.response. [resolves cloudfoundry#981] Signed-off-by: Paul Harris <harrisp@vmware.com>
The project uses two word lists to generate random routes. These words have zero meaning within the project, they are effectively random strings that can be pronounced. Because they have no meaning to the project there is no reason for any even theoretically objectionable word to appear in the lists. Therefore this commit removes a non-exhaustive selection of such words. Signed-off-by: Paul Harris <harrisp@vmware.com>
This commit adds support for maintenance info at the operations layer, allowing service instances to be upgraded to new versions of a service. Signed-off-by: Paul Harris <harrisp@vmware.com> [resolves cloudfoundry#1050] [resolves cloudfoundry#1052]
…stance to complete (cloudfoundry#1161) The update test does two things: 1.) it creates a managed service instance and 2.) it updates the managed service instance. The second part was failing because CloudController will refuse to update a service that's still being created. The update job was calling a method `waitForCompletionOnCreate` which was looking at the CreateServiceInstanceResponse object to see if it had an job id, if it did, then it would call `JobUtils.waitForCompletion(cloudFoundryClient, Duration.ofMinutes(1), createServiceInstanceResponse.getJobId().get())` and then return `getServiceInstanceIdByName(cloudFoundryClient, serviceInstanceName)`. The problem is that the call to `JobUtils.waitForCompletion` was creating a flow but nothing was subscribing to it, so it never actually ran and the test would not pause until the creation finished. The test has been modified such that it assumes the creation request will be asynch and return a job id. If it does not for some reason, the test would fail as wel call `.get()` on an optional object and calling that if the optional is empty will generate a NoSuchElementException. Then with the jobId, we call `JobUtils.waitForCompletion` wrapped in a flatMap, which ensures it's part of the overall flow which is being subscribed to. The same change was made after the update request, which also returns an asynch response and needs to be polled. Signed-off-by: Daniel Mikusa <dmikusa@vmware.com>
There are presently three LifecycleTypes supported: buildpack, docker and kpack. The first two have been supported, and this PR adds support for the third. It also includes a KpackData class for the lifecycle data that the kpack lifecycle type can return. API documentation clarifies what is allowed: http://v3-apidocs.cloudfoundry.org/version/3.122.0/index.html#lifecycles Includes a test which expands and deserializes the Kpack LifecycleType. Resolves cloudfoundry#1094 Signed-off-by: Daniel Mikusa <dmikusa@vmware.com>
Fix service credential binding details response
|
ed6b1ec
to
0649edc
Compare
0649edc
to
e883106
Compare
Thanks for the PR @schulzh! Are you able to follow the link in the EasyCLA comment above to get the commit authorised SInce this is a significant addition, if you can add the integration tests I am happy to run them in a lab! |
I have already done the EasyCLA process and I'm waiting on the approval of my organization. I'll add integration tests then, thanks! |
I've added integration tests. Could you please run them in your lab? |
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.
This is an amazing contribution. Thank you thank you thank you for all your hard work.
There's a fix that needs to happen in v3/SpacesTest.java (see the comments there)
Other than that, most of the rest of my comments are nitpicks about method order.
Once you fix these things, I'll merge this into its own branch so that I can write acceptance tests for it. Once we have tests, we'll merge this into main
.
cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/applications/ApplicationsV3.java
Outdated
Show resolved
Hide resolved
...dfoundry-client/src/main/java/org/cloudfoundry/client/v3/resourcematch/_MatchedResource.java
Outdated
Show resolved
Hide resolved
cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/spaces/SpacesV3.java
Outdated
Show resolved
Hide resolved
cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/spaces/_ApplyManifestRequest.java
Outdated
Show resolved
Hide resolved
cloudfoundry-client/src/main/java/org/cloudfoundry/client/v3/spaces/_ApplyManifestResponse.java
Outdated
Show resolved
Hide resolved
...y-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java
Outdated
Show resolved
Hide resolved
...y-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java
Outdated
Show resolved
Hide resolved
...y-operations/src/main/java/org/cloudfoundry/operations/applications/DefaultApplications.java
Outdated
Show resolved
Hide resolved
private Mono<String> spaceId; | ||
|
||
//TODO how to check if resource matching is enabled on this CF instance? | ||
@IfCloudFoundryVersion(greaterThanOrEqualTo = CloudFoundryVersion.UNSPECIFIED) //TODO how to select this 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.
I will look into this
integration-test/src/test/java/org/cloudfoundry/client/v3/SpacesTest.java
Outdated
Show resolved
Hide resolved
Hi @mheath , Thank you for the review and kind words 🙂 I've addressed the issues, please take a look. |
Will you change the branch from |
Hi @mheath, I've changed the base branch. It looks like its lagging behind main a few hounded commits. Should I rebase it? |
Hello @mheath, do you have any updates on this? What is missing to get it merged to master? |
Implements:
pushManifestV3
operation, similar to the existingpushManifest
operationI hope that the
pushManifestV3
operation is complete (especially the "app readiness" checks), since I did not find a documentation of this process and had to reverse engineer it from the CLI.I chose to pass a raw byte array as manifest in the client instead of an object, because that would've required to add the snakeyaml dependency to the client as well. Since the manifest is just passed to and applied by the CC anyway, I saw no benefit of passing as an object.
Unfortunately, I could not get a local CF instance set up for the integration tests. Due to licensing issues at my company I cannot use Virtualbox and setting it up on a local OpenStack "DevStack" instance wasn't working either. If requested, I can add integration tests, but I cannot ensure that they are working as intended.
Solves #999 and #1142 but not #1103 yet