Skip to content

Commit 4f3991f

Browse files
committed
Block deprecated option for SF Assessment
1 parent 4052224 commit 4f3991f

File tree

3 files changed

+48
-10
lines changed

3 files changed

+48
-10
lines changed

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/ConnectorArguments.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -943,6 +943,10 @@ public String getQueryLogEarliestTimestamp() {
943943
return getOptions().valueOf(optionQueryLogEarliestTimestamp);
944944
}
945945

946+
public boolean hasQueryLogEarliestTimestamp() {
947+
return getOptions().valueOf(optionQueryLogEarliestTimestamp) != null;
948+
}
949+
946950
@CheckForNull
947951
public Integer getQueryLogDays() {
948952
return getOptions().valueOf(optionQueryLogDays);

dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeLogsConnector.java

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,6 @@ private String createExtendedQueryFromAccountUsage(ConnectorArguments arguments)
281281
String overrideQuery = getOverrideQuery(arguments);
282282
if (overrideQuery != null) return overrideQuery;
283283

284-
String overrideWhere = getOverrideWhere(arguments);
285-
286284
@SuppressWarnings("OrphanedFormatString")
287285
StringBuilder queryBuilder =
288286
new StringBuilder(
@@ -333,12 +331,8 @@ private String createExtendedQueryFromAccountUsage(ConnectorArguments arguments)
333331
+ "WHERE end_time >= to_timestamp_ltz('%s')\n"
334332
+ "AND end_time <= to_timestamp_ltz('%s')\n"
335333
+ "AND is_client_generated_statement = FALSE\n");
336-
if (!StringUtils.isBlank(arguments.getQueryLogEarliestTimestamp()))
337-
queryBuilder
338-
.append("AND start_time >= ")
339-
.append(arguments.getQueryLogEarliestTimestamp())
340-
.append("\n");
341-
if (overrideWhere != null) queryBuilder.append(" AND ").append(overrideWhere);
334+
335+
queryBuilder.append(getOverrideWhere(arguments));
342336
return queryBuilder.toString().replace('\n', ' ');
343337
}
344338

@@ -356,16 +350,29 @@ private String getOverrideQuery(@Nonnull ConnectorArguments arguments)
356350
return null;
357351
}
358352

359-
@CheckForNull
353+
@Nonnull
360354
private String getOverrideWhere(@Nonnull ConnectorArguments arguments)
361355
throws MetadataDumperUsageException {
362-
return arguments.getDefinition(SnowflakeLogConnectorProperties.OVERRIDE_WHERE);
356+
ConnectorProperty property = SnowflakeLogConnectorProperties.OVERRIDE_WHERE;
357+
String overrideWhere = arguments.getDefinition(property);
358+
if (overrideWhere != null) {
359+
return String.format(" AND %s", overrideWhere);
360+
} else {
361+
return "";
362+
}
363363
}
364364

365365
@Override
366366
public final void addTasksTo(
367367
@Nonnull List<? super Task<?>> out, @Nonnull ConnectorArguments arguments)
368368
throws MetadataDumperUsageException {
369+
370+
boolean isAssessment = arguments.isAssessment();
371+
372+
if (isAssessment && arguments.hasQueryLogEarliestTimestamp()) {
373+
throw unsupportedOption(ConnectorArguments.OPT_QUERY_LOG_EARLIEST_TIMESTAMP);
374+
}
375+
369376
out.add(new DumpMetadataTask(arguments, FORMAT_NAME));
370377
out.add(new FormatTask(FORMAT_NAME));
371378

@@ -401,6 +408,13 @@ public final void addTasksTo(
401408
.forEach(interval -> timeSeriesTasks.forEach(task -> addJdbcTask(out, interval, task)));
402409
}
403410

411+
private static MetadataDumperUsageException unsupportedOption(String option) {
412+
String assessment = ConnectorArguments.OPT_ASSESSMENT;
413+
String message =
414+
String.format("Unsupported option used with --%s: please remove --%s", assessment, option);
415+
return new MetadataDumperUsageException(message);
416+
}
417+
404418
private static void addJdbcTask(
405419
List<? super Task<?>> out, ZonedInterval interval, TaskDescription task) {
406420
String query =

dumper/app/src/test/java/com/google/edwmigration/dumper/application/dumper/connector/snowflake/SnowflakeLogsConnectorTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,14 @@
1717
package com.google.edwmigration.dumper.application.dumper.connector.snowflake;
1818

1919
import com.google.common.base.Predicates;
20+
import com.google.edwmigration.dumper.application.dumper.ConnectorArguments;
21+
import com.google.edwmigration.dumper.application.dumper.MetadataDumperUsageException;
2022
import com.google.edwmigration.dumper.plugin.lib.dumper.spi.SnowflakeLogsDumpFormat;
2123
import com.google.edwmigration.dumper.test.TestUtils;
2224
import java.io.File;
25+
import java.io.IOException;
26+
import java.util.ArrayList;
27+
import org.junit.Assert;
2328
import org.junit.Test;
2429
import org.junit.runner.RunWith;
2530
import org.junit.runners.JUnit4;
@@ -41,4 +46,19 @@ public void testExecution() throws Exception {
4146

4247
validator.run(outputFile);
4348
}
49+
50+
@Test
51+
public void addTasksTo_unsupportedOption_throwsException() throws IOException {
52+
ConnectorArguments arguments =
53+
new ConnectorArguments(
54+
"--connector",
55+
"snowflake-logs",
56+
"--assessment",
57+
"--" + ConnectorArguments.OPT_QUERY_LOG_EARLIEST_TIMESTAMP,
58+
"2024");
59+
60+
Assert.assertThrows(
61+
MetadataDumperUsageException.class,
62+
() -> connector.addTasksTo(new ArrayList<>(), arguments));
63+
}
4464
}

0 commit comments

Comments
 (0)