diff --git a/gate-core/src/main/groovy/com/netflix/spinnaker/gate/services/internal/KeelService.java b/gate-core/src/main/groovy/com/netflix/spinnaker/gate/services/internal/KeelService.java index ad8451b308..85a9db9a3e 100644 --- a/gate-core/src/main/groovy/com/netflix/spinnaker/gate/services/internal/KeelService.java +++ b/gate-core/src/main/groovy/com/netflix/spinnaker/gate/services/internal/KeelService.java @@ -44,6 +44,9 @@ List> getResourceEvents( @POST("/resources") Resource upsertResource(@Body Resource resource); + @POST("/resources/diff") + Map diffResource(@Body Resource resource); + @DELETE("/resources/{name}") Resource deleteResource(@Path("name") String name); @@ -53,6 +56,9 @@ List> getResourceEvents( @POST("/delivery-configs") DeliveryConfig upsertManifest(@Body DeliveryConfig manifest); + @POST("/delivery-configs/diff") + Map diffManifest(@Body DeliveryConfig manifest); + @GET("/application/{application}") Map getApplicationDetails( @Path("application") String application, @Query("includeDetails") Boolean includeDetails); diff --git a/gate-web/src/main/groovy/com/netflix/spinnaker/gate/controllers/ManagedController.java b/gate-web/src/main/groovy/com/netflix/spinnaker/gate/controllers/ManagedController.java index 82958d7e67..0f7e4fe077 100644 --- a/gate-web/src/main/groovy/com/netflix/spinnaker/gate/controllers/ManagedController.java +++ b/gate-web/src/main/groovy/com/netflix/spinnaker/gate/controllers/ManagedController.java @@ -62,6 +62,12 @@ Resource upsertResource(@RequestBody Resource resource) { return keelService.upsertResource(resource); } + @ApiOperation(value = "Ad-hoc validate and diff a resource", response = Resource.class) + @RequestMapping(value = "/resources/diff", method = POST) + Map diffResource(@RequestBody Resource resource) { + return keelService.diffResource(resource); + } + @ApiOperation(value = "Delete a resource", response = Resource.class) @RequestMapping(value = "/resources/{name}", method = DELETE) Resource deleteResource(@PathVariable("name") String name) { @@ -82,6 +88,14 @@ DeliveryConfig upsertManifest(@RequestBody DeliveryConfig manifest) { return keelService.upsertManifest(manifest); } + @ApiOperation( + value = "Ad-hoc validate and diff a config manifest", + response = DeliveryConfig.class) + @RequestMapping(value = "/delivery-configs", method = POST) + Map diffManifest(@RequestBody DeliveryConfig manifest) { + return keelService.diffManifest(manifest); + } + @ApiOperation(value = "Get managed details about an application", response = Map.class) @RequestMapping(value = "/application/{application}", method = GET) Map getApplicationDetails(