X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fresources%2FDR_PubResource.java;h=167385728fa0ee060d1e3b0fa442862a8b71aad8;hb=d6ac6f8b10e90411dd650d6f7a9ee51179e39bfc;hp=bcdb4b355b87212675badd9fa5ff41428b84a764;hpb=3d4f33e1581d63eede5ff3ebdd53f921f61cd5b6;p=dmaap%2Fdbcapi.git diff --git a/src/main/java/org/onap/dmaap/dbcapi/resources/DR_PubResource.java b/src/main/java/org/onap/dmaap/dbcapi/resources/DR_PubResource.java index bcdb4b3..1673857 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/resources/DR_PubResource.java +++ b/src/main/java/org/onap/dmaap/dbcapi/resources/DR_PubResource.java @@ -91,21 +91,42 @@ public class DR_PubResource extends BaseLoggingClass { DR_Pub pub ) { ApiService resp = new ApiService(); + FeedService feeds = new FeedService(); + Feed fnew = null; logger.info( "Entry: POST /dr_pubs"); try { resp.required( "feedId", pub.getFeedId(), ""); + } catch ( RequiredFieldException rfe ) { + try { + resp.required( "feedName", pub.getFeedName(), ""); + }catch ( RequiredFieldException rfe2 ) { + logger.debug( resp.toString() ); + return resp.error(); + } + // if we found a FeedName instead of a FeedId then try to look it up. + List nfeeds = feeds.getAllFeeds( pub.getFeedName(), pub.getFeedVersion(), "equals"); + if ( nfeeds.size() != 1 ) { + logger.debug( "Attempt to match "+ pub.getFeedName() + " ver="+pub.getFeedVersion() + " matched " + nfeeds.size() ); + return resp.error(); + } + fnew = nfeeds.get(0); + } + try { resp.required( "dcaeLocationName", pub.getDcaeLocationName(), ""); } catch ( RequiredFieldException rfe ) { logger.debug( resp.getErr().toString() ); return resp.error(); } - FeedService feeds = new FeedService(); - Feed fnew = feeds.getFeed( pub.getFeedId(), resp.getErr() ); + + // we may have fnew already if located by FeedName if ( fnew == null ) { - logger.info( "Specified feed " + pub.getFeedId() + " not known to Bus Controller"); + fnew = feeds.getFeed( pub.getFeedId(), resp.getErr() ); + } + if ( fnew == null ) { + logger.info( "Specified feed " + pub.getFeedId() + " or " + pub.getFeedName() + " not known to Bus Controller"); return resp.error(); }