Skip to content

Commit

Permalink
feat(echo/pubsub): Expose endpoint to query subscriptions. (#472)
Browse files Browse the repository at this point in the history
  • Loading branch information
jtk54 authored Oct 23, 2017
1 parent a56e856 commit 8da704a
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright 2017 Google, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.netflix.spinnaker.gate.controllers;

import com.netflix.spinnaker.gate.services.PubsubSubscriptionService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class PubsubSubscriptionController {

@Autowired
private PubsubSubscriptionService pubsubSubscriptionService;

@ApiOperation(value = "Retrieve the list of pub/sub subscriptions configured in Echo.")
@RequestMapping(value = "/pubsub/subscriptions", method = RequestMethod.GET)
List<String> all() {
return pubsubSubscriptionService.getPubsubSubscriptions();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright 2017 Google, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.netflix.spinnaker.gate.services;

import com.netflix.spinnaker.gate.services.internal.EchoService;
import groovy.transform.CompileStatic;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

@CompileStatic
@Component
public class PubsubSubscriptionService {

@Autowired(required = false)
private EchoService echoService;

public List<String> getPubsubSubscriptions() {
if (echoService == null) {
throw new IllegalStateException("No Echo service available.");
}

return echoService.getPubsubSubscriptions();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@

package com.netflix.spinnaker.gate.services.internal

import retrofit.http.*
import retrofit.client.Response
import retrofit.http.*

interface EchoService {

Expand All @@ -38,4 +38,6 @@ interface EchoService {
@GET("/validateCronExpression")
Map validateCronExpression(@Query("cronExpression") String cronExpression)

@GET("/pubsub/subscriptions")
List<String> getPubsubSubscriptions()
}

0 comments on commit 8da704a

Please sign in to comment.