From: Dominic Lunanuova Date: Mon, 11 Mar 2019 16:35:31 +0000 (+0000) Subject: Merge "Sonar Fix - ConnectionFactory.java" X-Git-Tag: 1.0.26~43 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=dmaap%2Fdbcapi.git;a=commitdiff_plain;h=b7e64f754d6b2a5211a46a10182c631c799f66b4;hp=95321953d39e368a5e89344ca220ec7dd479afe1 Merge "Sonar Fix - ConnectionFactory.java" --- diff --git a/INFO.yaml b/INFO.yaml index 3c821b8..20a439a 100644 --- a/INFO.yaml +++ b/INFO.yaml @@ -1,5 +1,5 @@ --- -project: 'dmaap-messagerouter-msgrtr' +project: 'dmaap-dbcapi' project_creation_date: '2017-08-29' lifecycle_state: 'Incubation' project_lead: &onap_releng_ptl @@ -9,50 +9,67 @@ project_lead: &onap_releng_ptl company: 'ATT' timezone: 'America/Dallas' primary_contact: *onap_releng_ptl +project_category: '' issue_tracking: type: 'jira' url: 'https://jira.onap.org/projects/DMAAP' key: 'DMAAP' +mailing_list: + type: 'groups.io' + url: 'lists.onap.org' + tag: '<[sub-project_name]>' +realtime_discussion: '' meetings: - type: 'zoom' - agenda: '' - url: 'https://wiki.onap.org/pages/viewpage.action?pageId=13599275' - server: 'n/a' - channel: 'n/a' - repeats: 'weekly' - time: '13:00 UTC' + agenda: '' + url: 'https://wiki.onap.org/pages/viewpage.action?pageId=13599275' + server: 'n/a' + channel: 'n/a' + repeats: 'weekly' + time: '13:00 UTC' +repositories: + - 'dmaap-buscontroller' + - 'dmaap-datarouter' + - 'dmaap-dbcapi' + - 'dmaap-kafka11aaf' + - 'dmaap-messagerouter-dmaapclient' + - 'dmaap-messagerouter-messageservice' + - 'dmaap-messagerouter-mirroragent' + - 'dmaap-messagerouter-msgrtr' + - 'dmaap-oom' + - 'dmaap-zookeeper' committers: - <<: *onap_releng_ptl - name: 'Mandar Sawant' - email: 'ms5838@att.com' - company: 'ATT' - id: 'sawantmandar' - timezone: 'America/Dallas' + email: 'ms5838@att.com' + company: 'ATT' + id: 'sawantmandar' + timezone: 'America/Dallas' - name: 'Varun Gudisena' - email: 'vg411h@att.com' - company: 'ATT' - id: 'vg411h' - timezone: 'America/Dallas' + email: 'vg411h@att.com' + company: 'ATT' + id: 'vg411h' + timezone: 'America/Dallas' - name: 'Bhanu Ramesh' - email: 'bg6954@att.com' - company: 'ATT' - id: 'BhanuRamesh' - timezone: 'America/Dallas' + email: 'bg6954@att.com' + company: 'ATT' + id: 'BhanuRamesh' + timezone: 'America/Dallas' - name: 'Dominic Lunanuova' - email: 'dgl@research.att.com' - company: 'ATT' - id: 'dglFromAtt' - timezone: 'America/Dallas' + email: 'dgl@research.att.com' + company: 'ATT' + id: 'dglFromAtt' + timezone: 'America/Dallas' - name: 'Sunil Unnava' - email: 'su622b@att.com' - company: 'ATT' - id: 'su622b' - timezone: 'America/Louisville' + email: 'su622b@att.com' + company: 'ATT' + id: 'su622b' + timezone: 'America/Louisville' - name: 'Conor Ward' - email: 'conor.ward@ericsson.com' - company: 'ericsson' - id: 'econwar' - timezone: 'America/Dallas' + email: 'conor.ward@ericsson.com' + company: 'ericsson' + id: 'econwar' + timezone: 'America/Dallas' tsc: approval: 'https://lists.onap.org/pipermail/onap-tsc' changes: diff --git a/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java b/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java index 441596a..3cb3d67 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java +++ b/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java @@ -411,7 +411,7 @@ public class DrProvConnection extends BaseLoggingClass { if (rc >= 200 && rc < 300 ) { responseBody = bodyToString( uc.getInputStream() ); logger.info( "responseBody=" + responseBody ); - + err.setCode( rc ); } else if ( rc == 404 ) { err.setCode( rc ); err.setFields( "feedid"); diff --git a/src/main/java/org/onap/dmaap/dbcapi/model/DR_Pub.java b/src/main/java/org/onap/dmaap/dbcapi/model/DR_Pub.java index 06598f7..0d146b7 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/model/DR_Pub.java +++ b/src/main/java/org/onap/dmaap/dbcapi/model/DR_Pub.java @@ -32,6 +32,10 @@ public class DR_Pub extends DmaapObject { private String userpwd; private String feedId; private String pubId; + + // NOTE: the following fields are optional in the API but not stored in the DB + private String feedName; + private String feedVersion; public DR_Pub() { @@ -114,6 +118,22 @@ public class DR_Pub extends DmaapObject { public void setNextPubId() { this.pubId = this.feedId + "." + DR_Pub.nextKey(); } + + public String getFeedName() { + return feedName; + } + + public void setFeedName(String feedName) { + this.feedName = feedName; + } + + public String getFeedVersion() { + return feedVersion; + } + + public void setFeedVersion(String feedVersion) { + this.feedVersion = feedVersion; + } public DR_Pub setRandomUserName() { RandomString r = new RandomString(15); diff --git a/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java b/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java index dd0b85d..9b6e2d7 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java +++ b/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java @@ -45,6 +45,10 @@ public class DR_Sub extends DmaapObject { private boolean guaranteedDelivery; private boolean guaranteedSequence; private boolean privilegedSubscriber; + + // NOTE: the following fields are optional in the API but not stored in the DB + private String feedName; + private String feedVersion; public DR_Sub() { @@ -230,6 +234,24 @@ public class DR_Sub extends DmaapObject { public void setPrivilegedSubscriber(boolean privilegedSubscriber) { this.privilegedSubscriber = privilegedSubscriber; } + + + + public String getFeedName() { + return feedName; + } + + public void setFeedName(String feedName) { + this.feedName = feedName; + } + + public String getFeedVersion() { + return feedVersion; + } + + public void setFeedVersion(String feedVersion) { + this.feedVersion = feedVersion; + } public byte[] getBytes(String provApi) { if ( "AT&T".equals(provApi)) { 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(); } diff --git a/src/main/java/org/onap/dmaap/dbcapi/resources/DR_SubResource.java b/src/main/java/org/onap/dmaap/dbcapi/resources/DR_SubResource.java index 28bfdc5..498454e 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/resources/DR_SubResource.java +++ b/src/main/java/org/onap/dmaap/dbcapi/resources/DR_SubResource.java @@ -92,24 +92,41 @@ public class DR_SubResource extends BaseLoggingClass { ) { ApiService resp = new ApiService(); - + FeedService feeds = new FeedService(); + Feed fnew = null; try { resp.required( "feedId", sub.getFeedId(), ""); + } catch ( RequiredFieldException rfe ) { + try { + resp.required( "feedName", sub.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( sub.getFeedName(), sub.getFeedVersion(), "equals"); + if ( nfeeds.size() != 1 ) { + logger.debug( "Attempt to match "+ sub.getFeedName() + " ver="+sub.getFeedVersion() + " matched " + nfeeds.size() ); + return resp.error(); + } + fnew = nfeeds.get(0); + } + + try { resp.required( "dcaeLocationName", sub.getDcaeLocationName(), ""); - } catch ( RequiredFieldException rfe ) { logger.debug( resp.toString() ); return resp.error(); } - - FeedService feeds = new FeedService(); - Feed fnew = feeds.getFeed( sub.getFeedId(), resp.getErr() ); + // we may have fnew already if located by FeedName if ( fnew == null ) { - logger.warn( "Specified feed " + sub.getFeedId() + " not known to Bus Controller"); + fnew = feeds.getFeed( sub.getFeedId(), resp.getErr() ); + } + if ( fnew == null ) { + logger.warn( "Specified feed " + sub.getFeedId() + " or " + sub.getFeedName() + " not known to Bus Controller"); resp.setCode(Status.NOT_FOUND.getStatusCode()); return resp.error(); } - DR_SubService dr_subService = new DR_SubService( fnew.getSubscribeURL()); ArrayList subs = fnew.getSubs(); logger.info( "num existing subs before = " + subs.size() ); @@ -157,7 +174,7 @@ public class DR_SubResource extends BaseLoggingClass { logger.warn( "Specified feed " + sub.getFeedId() + " not known to Bus Controller"); return resp.error(); } - + DR_SubService dr_subService = new DR_SubService(); sub.setSubId(name); DR_Sub nsub = dr_subService.updateDr_Sub(sub, resp.getErr() ); diff --git a/src/main/java/org/onap/dmaap/dbcapi/service/ApiService.java b/src/main/java/org/onap/dmaap/dbcapi/service/ApiService.java index 6ae639d..48f81db 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/ApiService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/ApiService.java @@ -165,6 +165,7 @@ public class ApiService extends BaseLoggingClass { // test for presence of a required field public void required( String name, Object val, String expr ) throws RequiredFieldException { + err.setCode(0); if ( val == null ) { err.setCode(Status.BAD_REQUEST.getStatusCode()); err.setMessage("missing required field"); diff --git a/src/main/java/org/onap/dmaap/dbcapi/service/DR_SubService.java b/src/main/java/org/onap/dmaap/dbcapi/service/DR_SubService.java index 99c8f31..9d233a5 100644 --- a/src/main/java/org/onap/dmaap/dbcapi/service/DR_SubService.java +++ b/src/main/java/org/onap/dmaap/dbcapi/service/DR_SubService.java @@ -98,7 +98,7 @@ public class DR_SubService extends BaseLoggingClass { String resp = prov.doPostDr_Sub( sub, apiError ); if ( "Yes".equals(unit_test) ) { resp = simulateResp( sub, "POST" ); - apiError.setCode(200); + apiError.setCode(201); } logger.debug( "addDr_Sub resp=" + resp ); @@ -110,7 +110,7 @@ public class DR_SubService extends BaseLoggingClass { snew.setLastMod(); addEgressRoute( snew, apiError ); dr_subs.put( snew.getSubId(), snew ); - apiError.setCode(200); + apiError.setCode(201); } else { apiError.setCode(400); } diff --git a/src/test/java/org/onap/dmaap/dbcapi/resources/DR_PubResourceTest.java b/src/test/java/org/onap/dmaap/dbcapi/resources/DR_PubResourceTest.java index 42c8014..d4f71bb 100644 --- a/src/test/java/org/onap/dmaap/dbcapi/resources/DR_PubResourceTest.java +++ b/src/test/java/org/onap/dmaap/dbcapi/resources/DR_PubResourceTest.java @@ -98,6 +98,18 @@ public class DR_PubResourceTest extends JerseyTest{ return dr_pub; } + private DR_Pub addPubByName( String d, String un, String up, String feedName) { + DR_Pub dr_pub = new DR_Pub( d, un, up, null, "" ); + dr_pub.setFeedName(feedName); + Entity reqEntity2 = Entity.entity( dr_pub, MediaType.APPLICATION_JSON); + Response resp = target( "dr_pubs").request().post( reqEntity2, Response.class); + System.out.println( "POST dr_pubs resp=" + resp.getStatus() ); + assertTrue( resp.getStatus() == 201 ); + dr_pub = resp.readEntity( DR_Pub.class ); + + return dr_pub; + } + @Test public void GetTest() { Response resp = target( "dr_pubs").request().get( Response.class ); @@ -119,6 +131,20 @@ public class DR_PubResourceTest extends JerseyTest{ DR_Pub dr_pub = addPub( d, un, up, feed.getFeedId() ); } + + @Test + public void PostTestByName() { + + Feed feed = addFeed( "pubPostTest2", "post unit test" ); + System.out.println( "fpubPostTest: feedId=" + feed.getFeedId()); + + String d, un, up; + d = "central-onap"; + un = "user1"; + up = "secretW0rd"; + + DR_Pub dr_pub = addPubByName( d, un, up, "pubPostTest2" ); + } @Test public void PutTest() { diff --git a/src/test/java/org/onap/dmaap/dbcapi/resources/DR_SubResourceTest.java b/src/test/java/org/onap/dmaap/dbcapi/resources/DR_SubResourceTest.java index 917507f..2227870 100644 --- a/src/test/java/org/onap/dmaap/dbcapi/resources/DR_SubResourceTest.java +++ b/src/test/java/org/onap/dmaap/dbcapi/resources/DR_SubResourceTest.java @@ -129,7 +129,21 @@ public class DR_SubResourceTest extends JerseyTest{ return dr_sub; } - + private DR_Sub addSubByName( String d, String un, String up, String feedName ) { + DR_Sub dr_sub = new DR_Sub( d, un, up, null, + "https://subscriber.onap.org/foo", "https://dr-prov/sublog", true ); + + dr_sub.setFeedName(feedName); + + Entity reqEntity2 = Entity.entity( dr_sub, MediaType.APPLICATION_JSON); + Response resp = target( "dr_subs").request().post( reqEntity2, Response.class); + System.out.println( "POST dr_subs resp=" + resp.getStatus() ); + assertTrue( resp.getStatus() == 201 ); + dr_sub = resp.readEntity( DR_Sub.class ); + + return dr_sub; + } + @Test public void GetTest() { Response resp = target( "dr_subs").request().get( Response.class ); @@ -152,6 +166,20 @@ public class DR_SubResourceTest extends JerseyTest{ DR_Sub dr_pub = addSub( d, un, up, feed.getFeedId() ); } + @Test + public void PostTestByName() { + + Feed feed = addFeed( "subPostTest2", "post unit test" ); + System.out.println( "subPostTest2: feedId=" + feed.getFeedId()); + + String d, un, up; + d = "central-onap"; + un = "user1"; + up = "secretW0rd"; + + DR_Sub dr_pub = addSubByName( d, un, up, feed.getFeedName() ); + } + @Test public void PutTest() { @@ -172,6 +200,7 @@ public class DR_SubResourceTest extends JerseyTest{ System.out.println( "PUT dr_subs resp=" + resp.getStatus() ); assertTrue( resp.getStatus() == 200 ); } + /* * TODO: figure out how to check delete() response @Test