Tags: zaryflo/front50
Tags
chore(kotlin): move to new kotlin version and upgrade kork (spinnaker… …#981)
fix(gcs): Fix startup error when bucketLocation is not specified (spi… …nnaker#934) (spinnaker#938) * test(gcs): Add some implementations to FakeStorageRpc In an upcoming commit, we'll need to also support getting a bucket; to prepare for that let's update the FakeStorageRpc to: * Keep track of what bucket objects are in (rather than now where it assumes they are all in the same bucket) * Handle creating and getting a bucket We'll add an additional Map around the blobs data structure that maps the bucket to a Map of blobs. (This is a bit of a complex data structure that in production code might be better expressed as classes, but for this single fake in a test it's porbably fine.) Creating a bucket initializes its blobs to an empty map; we know if a bucket exists by whether it has an entry in the map. I used the documentation on the interface we're mocking to decide how to handle a missing bucket; in some cases we just return null (when getting an object or a bucket) while in others we propagate the 404. This required one small change to the existing tests, which is that we'll need to create the bucket before we use them in the tests. * test(gcs): Add test to demonstrate NPE on missing bucketLocation This commit adds a broken test to demostrate the NPE that occurs on startup when the bucketLocation is not specified. * fix(gcs): Fix startup error when bucketLocation is not specified There was a regression in 1.22 where omitting bucketLocation from one's GCS config now causes an error on startup. Prior to the rewrite of GcsStorageService, we accepted either null or empty string as the bucket location; now that GcsStorageService is in kotlin and does not use a String? for the field, an error occurs on trying to create the GcsStorageService. The fix is just to default the string to "" in the config properties. * style(gcs): Use Bucket.of intead of builder * test(gcs): Replace nested map with classes To simplify the nested map, define a Buckets class and a BucketContents class, with operation names that make it more clear what is happening. Also, I realized that before my changes we were appending the bucket name to the object name before putting it into the map, but now we don't need to do that anymore because we have a separate map for each bucket, so remove some unecessary calls to fullPath (which is now only used in printing error messages). * style(gcs): Fix typo * style(gcs): Fix constructor There's no need to accept the map in a private constructor then separately define a no-arg constructor that passes an empty map, just make the map a val in the class. (cherry picked from commit ba4b061) Co-authored-by: Eric Zimanyi <[email protected]>
chore(dependencies): Autobump spinnakerGradleVersion (spinnaker#926) Co-authored-by: root <root@6a807b439d68>
fix(provider/Oracle): Cache issue related to Oracle Object Storage (bp … …spinnaker#886) (spinnaker#923) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: CyrusKOCI <[email protected]>
fix(provider/Oracle): Cache issue related to Oracle Object Storage (bp … …spinnaker#886) (spinnaker#924)
fix(provider/Oracle): Cache issue related to Oracle Object Storage sp… …innaker#886 (spinnaker#913)
fix(docs): Update broken link (spinnaker#878) This commit fixes a broken link to the documentation on how to submit a patch.
chore(dependencies): Autobump clouddriverVersion (spinnaker#876) Co-authored-by: root <root@aaa8c20672e1>
fix(sql): `/ServiceAccounts` fails when sql is only active provider (s… …pinnaker#839) (spinnaker#848) * fix(sql): `/ServiceAccounts` fails when sql is only active provider (spinnaker#839) Cherry pick of 225688b * This was a bit of a weird error. After we turned off the S3 provider in Front50, the `/serviceAccounts` endpoint stopped working, failing with the following error message: "Configured storage service does not support service account permissions". This happens when there's no `ServiceAccountsService` bean (which it really wasn't). This bean is autoconfigured using `@ConditionalOnBean(ServiceAccountDAO.class)`, and according to Spring there's no ServiceAccountDAO in the context. But when inspecting the context, it actually _is_ a `ServiceAccountDAO` present. I think that for some reason the `ServiceAccountDAO` bean is created _after_ Spring tries to wire up `ServiceAccountsService`, but this doesn't happen with the other providers. I have no idea why. The only thing I can think of is that `SqlConfiguration.kt` is the first provider config written in Kotlin, but I don't really understand why that should matter. I'd appreciate any insight into the matter. I have fixed the issue by creating a new `@ConditionalOnAnyProviderExceptRedisIsEnabled` annotation that returns true if any of the providers except Redis are enabled. I've tested running the app with only SQL enabled, only Redis enabled*, and both SQL and Redis enabled. All works now. \* This didn't work before, as @robzienert correctly theorised. * Add back @ConditionalOnBean and fix visibility of two functions + some minor Java style fixes * Added new conditional annotation and applied it in relevant places The new @ConditionalOnAnyProviderExceptRedisIsEnabled will be true if any of the providers except Redis are enabled. Whether Redis is enabled or not does not matter. * Conditionally wire up ServiceAccountsController Co-authored-by: Cameron Fieber <[email protected]> * refactor(core): Use nested conditions in AnyProviderExceptRedisCondition (spinnaker#858) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> (cherry picked from commit ffdb595) Co-authored-by: Cameron Fieber <[email protected]>
chore(dependencies): Autobump clouddriverVersion (spinnaker#864) Co-authored-by: root <root@ba7e6b7195f5>
PreviousNext