Skip to content

Commit

Permalink
using InvalidPluginConfigurationException instead of BadRequestException
Browse files Browse the repository at this point in the history
Signed-off-by: Santhosh Gandhe <1909520+san81@users.noreply.github.com>
  • Loading branch information
san81 committed Feb 11, 2025
1 parent b68fd99 commit 928e253
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
import io.micrometer.core.instrument.Counter;
import lombok.extern.slf4j.Slf4j;
import org.opensearch.dataprepper.metrics.PluginMetrics;
import org.opensearch.dataprepper.model.plugin.InvalidPluginConfigurationException;
import org.opensearch.dataprepper.plugins.source.confluence.models.ConfluenceItem;
import org.opensearch.dataprepper.plugins.source.confluence.models.ConfluenceSearchResults;
import org.opensearch.dataprepper.plugins.source.confluence.rest.ConfluenceRestClient;
import org.opensearch.dataprepper.plugins.source.confluence.utils.ConfluenceConfigHelper;
import org.opensearch.dataprepper.plugins.source.confluence.utils.ConfluenceContentType;
import org.opensearch.dataprepper.plugins.source.source_crawler.exception.BadRequestException;
import org.opensearch.dataprepper.plugins.source.source_crawler.model.ItemInfo;
import org.springframework.util.CollectionUtils;

Expand Down Expand Up @@ -198,14 +198,14 @@ private void validatePageTypeFilters(ConfluenceSourceConfig configuration) {
if (!badFilters.isEmpty()) {
String filters = String.join("\"" + badFilters + "\"", ", ");
log.error("One or more invalid Page Types found in filter configuration: {}", badFilters);
throw new BadRequestException("Bad request exception occurred " +
throw new InvalidPluginConfigurationException("Bad request exception occurred " +
"Invalid Page Type key found in filter configuration "
+ filters);
}
if (!includedAndExcludedPageType.isEmpty()) {
String filters = String.join("\"" + includedAndExcludedPageType + "\"", ", ");
log.error("One or more Page types found in both include and exclude: {}", includedAndExcludedPageType);
throw new BadRequestException("Bad request exception occurred " +
throw new InvalidPluginConfigurationException("Bad request exception occurred " +
"Page Type filters is invalid because the following Page types are listed in both include and exclude"
+ filters);
}
Expand Down Expand Up @@ -242,14 +242,14 @@ private void validateSpaceFilters(ConfluenceSourceConfig configuration) {
if (!badFilters.isEmpty()) {
String filters = String.join("\"" + badFilters + "\"", ", ");
log.error("One or more invalid Space keys found in filter configuration: {}", badFilters);
throw new BadRequestException("Bad request exception occurred " +
throw new InvalidPluginConfigurationException("Bad request exception occurred " +
"Invalid Space key found in filter configuration for "
+ filters);
}
if (!includedAndExcludedSpaces.isEmpty()) {
String filters = String.join("\"" + includedAndExcludedSpaces + "\"", ", ");
log.error("One or more Space keys found in both include and exclude: {}", includedAndExcludedSpaces);
throw new BadRequestException("Bad request exception occurred " +
throw new InvalidPluginConfigurationException("Bad request exception occurred " +
"Space filters is invalid because the following space are listed in both include and exclude"
+ filters);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.opensearch.dataprepper.metrics.PluginMetrics;
import org.opensearch.dataprepper.model.plugin.InvalidPluginConfigurationException;
import org.opensearch.dataprepper.model.plugin.PluginConfigVariable;
import org.opensearch.dataprepper.plugins.source.atlassian.configuration.Oauth2Config;
import org.opensearch.dataprepper.plugins.source.confluence.models.ConfluenceItem;
Expand All @@ -27,7 +28,6 @@
import org.opensearch.dataprepper.plugins.source.confluence.rest.ConfluenceRestClient;
import org.opensearch.dataprepper.plugins.source.confluence.utils.MockPluginConfigVariableImpl;
import org.opensearch.dataprepper.plugins.source.source_crawler.base.PluginExecutorServiceProvider;
import org.opensearch.dataprepper.plugins.source.source_crawler.exception.BadRequestException;
import org.opensearch.dataprepper.plugins.source.source_crawler.model.ItemInfo;
import org.opensearch.dataprepper.test.helper.ReflectivelySetField;
import org.slf4j.Logger;
Expand Down Expand Up @@ -61,7 +61,7 @@


/**
* The type Jira service.
* The type Confluence service Test.
*/
@ExtendWith(MockitoExtension.class)
public class ConfluenceServiceTest {
Expand Down Expand Up @@ -102,7 +102,7 @@ public static ConfluenceSourceConfig createConfluenceConfigurationFromYaml(Strin

public static ConfluenceSourceConfig createConfluenceConfiguration(String auth_type,
List<String> pageTypes,
List<String> projectKey) throws JsonProcessingException {
List<String> spaceKey) throws JsonProcessingException {
PluginConfigVariable pcvAccessToken = null;
PluginConfigVariable pcvRefreshToken = null;
ObjectMapper objectMapper = new ObjectMapper();
Expand All @@ -121,7 +121,7 @@ public static ConfluenceSourceConfig createConfluenceConfiguration(String auth_t
authenticationMap.put("oauth2", oauth2Map);
}

Map<String, Object> jiraSourceConfigMap = new HashMap<>();
Map<String, Object> sourceConfigMap = new HashMap<>();
List<String> hosts = new ArrayList<>();
hosts.add(ACCESSIBLE_RESOURCES);

Expand All @@ -133,17 +133,17 @@ public static ConfluenceSourceConfig createConfluenceConfiguration(String auth_t
filterMap.put("page_type", contentTypeMap);

Map<String, Object> nameMap = new HashMap<>();
nameMap.put("include", projectKey);
nameMap.put("include", spaceKey);
spacesMap.put("key", nameMap);
filterMap.put("space", spacesMap);


jiraSourceConfigMap.put("hosts", hosts);
jiraSourceConfigMap.put("authentication", authenticationMap);
jiraSourceConfigMap.put("filter", filterMap);
sourceConfigMap.put("hosts", hosts);
sourceConfigMap.put("authentication", authenticationMap);
sourceConfigMap.put("filter", filterMap);

String jiraSourceConfigJsonString = objectMapper.writeValueAsString(jiraSourceConfigMap);
ConfluenceSourceConfig confluenceSourceConfig = objectMapper.readValue(jiraSourceConfigJsonString, ConfluenceSourceConfig.class);
String sourceConfigJsonString = objectMapper.writeValueAsString(sourceConfigMap);
ConfluenceSourceConfig confluenceSourceConfig = objectMapper.readValue(sourceConfigJsonString, ConfluenceSourceConfig.class);
if (confluenceSourceConfig.getAuthenticationConfig().getOauth2Config() != null && pcvAccessToken != null) {
try {
ReflectivelySetField.setField(Oauth2Config.class,
Expand All @@ -163,7 +163,7 @@ void tearDown() {
}

@Test
void testJiraServiceInitialization() throws JsonProcessingException {
void testConfluenceServiceInitialization() throws JsonProcessingException {
List<String> contentType = new ArrayList<>();
List<String> spacesKey = new ArrayList<>();
ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, contentType, spacesKey);
Expand Down Expand Up @@ -203,9 +203,9 @@ public void testGetPages() throws JsonProcessingException {
@Test
public void buildIssueItemInfoMultipleFutureThreads() throws JsonProcessingException {
List<String> pageType = new ArrayList<>();
List<String> projectKey = new ArrayList<>();
List<String> spaceKey = new ArrayList<>();
pageType.add("PAGE");
ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, projectKey);
ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, spaceKey);
ConfluenceService confluenceService = spy(new ConfluenceService(confluenceSourceConfig, confluenceRestClient, pluginMetrics));
List<ConfluenceItem> mockIssues = new ArrayList<>();
Random random = new Random();
Expand All @@ -226,30 +226,30 @@ public void buildIssueItemInfoMultipleFutureThreads() throws JsonProcessingExcep
}

@Test
public void testBadProjectKeys() throws JsonProcessingException {
public void testBadSpaceKeys() throws JsonProcessingException {
List<String> pageType = new ArrayList<>();
List<String> projectKey = new ArrayList<>();
List<String> spaceKey = new ArrayList<>();
pageType.add("PAGE");
projectKey.add("Bad Project Key");
projectKey.add("A");
projectKey.add("!@#$");
projectKey.add("AAAAAAAAAAAAAA");
spaceKey.add("Bad Project Key");
spaceKey.add("A");
spaceKey.add("!@#$");
spaceKey.add("AAAAAAAAAAAAAA");

ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, projectKey);
ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, spaceKey);
ConfluenceService confluenceService = new ConfluenceService(confluenceSourceConfig, confluenceRestClient, pluginMetrics);

Instant timestamp = Instant.ofEpochSecond(0);
Queue<ItemInfo> itemInfoQueue = new ConcurrentLinkedQueue<>();

assertThrows(BadRequestException.class, () -> confluenceService.getPages(confluenceSourceConfig, timestamp, itemInfoQueue));
assertThrows(InvalidPluginConfigurationException.class, () -> confluenceService.getPages(confluenceSourceConfig, timestamp, itemInfoQueue));
}

@Test
public void testGetPagesException() throws JsonProcessingException {
List<String> pageType = new ArrayList<>();
List<String> projectKey = new ArrayList<>();
List<String> SpaceKey = new ArrayList<>();
pageType.add("Task");
ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, projectKey);
ConfluenceSourceConfig confluenceSourceConfig = createConfluenceConfiguration(BASIC, pageType, SpaceKey);
ConfluenceService confluenceService = spy(new ConfluenceService(confluenceSourceConfig, confluenceRestClient, pluginMetrics));

Instant timestamp = Instant.ofEpochSecond(0);
Expand All @@ -262,7 +262,7 @@ public void testGetPagesException() throws JsonProcessingException {
private ConfluenceItem createConfluenceItemBean() {
ConfluenceItem confluenceItem = new ConfluenceItem();
confluenceItem.setId(UUID.randomUUID().toString());
confluenceItem.setTitle("issue_1_key");
confluenceItem.setTitle("item_1_key");
SpaceItem spaceItem = new SpaceItem();
spaceItem.setId(new Random().nextInt());
spaceItem.setKey(UUID.randomUUID().toString());
Expand Down

0 comments on commit 928e253

Please sign in to comment.