-
Notifications
You must be signed in to change notification settings - Fork 123
[frontend|backend]Show prerequisites info in atomic testing #1858
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
59d6303
add44bb
bfba760
5f36131
926435b
c824ca1
da83905
5f92f6f
72a1b61
dcce705
a3986a9
e834065
fbcad77
31a50ae
3c720a2
9c6bcc5
128c316
dac19bb
60819dd
fa357ad
e3a458d
bd1048d
4ad3e90
4353f33
55777f3
4580acc
6f27537
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
package io.openbas.migration; | ||
|
||
import com.fasterxml.jackson.databind.JsonNode; | ||
import com.fasterxml.jackson.databind.ObjectMapper; | ||
import io.openbas.database.model.PayloadCommandBlock; | ||
import io.openbas.database.model.StatusPayload; | ||
import java.sql.PreparedStatement; | ||
import java.sql.ResultSet; | ||
import java.sql.Statement; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import org.flywaydb.core.api.migration.BaseJavaMigration; | ||
import org.flywaydb.core.api.migration.Context; | ||
import org.springframework.stereotype.Component; | ||
|
||
@Component | ||
public class V3_49__Update_Commands_In_Inject_Status extends BaseJavaMigration { | ||
|
||
@Override | ||
public void migrate(Context context) throws Exception { | ||
Statement select = context.getConnection().createStatement(); | ||
|
||
select.execute("ALTER TABLE injects_statuses ADD status_payload_output json;"); | ||
|
||
select.execute( | ||
"UPDATE injects_statuses SET status_commands_lines=null WHERE status_commands_lines='null';"); | ||
ResultSet results = | ||
select.executeQuery("SELECT status_id,status_commands_lines FROM injects_statuses"); | ||
|
||
PreparedStatement statement = | ||
context | ||
.getConnection() | ||
.prepareStatement( | ||
"UPDATE injects_statuses SET status_payload_output = ?::json WHERE status_id=?"); | ||
|
||
ObjectMapper mapper = new ObjectMapper(); | ||
while (results.next()) { | ||
String commandLine = results.getString("status_commands_lines"); | ||
String statusId = results.getString("status_id"); | ||
Check warning on line 39 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
if (commandLine != null) { | ||
JsonNode jsonNode = mapper.readTree(commandLine); | ||
JsonNode content = jsonNode.get("content"); | ||
String contentString = ""; | ||
Check warning on line 43 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
if (content.isArray()) { | ||
for (JsonNode node : content) { | ||
contentString += node.asText(); | ||
} | ||
Check warning on line 47 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
} | ||
JsonNode cleanupCommand = jsonNode.get("cleanup_command"); | ||
List<String> cleanupCommandList = new ArrayList<>(); | ||
Check warning on line 50 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
johanah29 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
if (cleanupCommand.isArray()) { | ||
for (JsonNode node : cleanupCommand) { | ||
cleanupCommandList.add(node.asText()); | ||
} | ||
Check warning on line 54 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
} | ||
String externalId = jsonNode.get("external_id").asText(); | ||
StatusPayload statusPayload = | ||
Check warning on line 57 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
new StatusPayload( | ||
null, | ||
null, | ||
null, | ||
null, | ||
null, | ||
null, | ||
null, | ||
null, | ||
externalId, | ||
null, | ||
null, | ||
List.of(new PayloadCommandBlock(null, contentString, cleanupCommandList)), | ||
Check warning on line 70 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
null); | ||
String value = mapper.writeValueAsString(statusPayload); | ||
statement.setString(1, value); | ||
statement.setString(2, statusId); | ||
statement.addBatch(); | ||
Check warning on line 75 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
} | ||
} | ||
Check warning on line 77 in openbas-api/src/main/java/io/openbas/migration/V3_49__Update_Commands_In_Inject_Status.java
|
||
statement.executeBatch(); | ||
select.execute("ALTER TABLE injects_statuses DROP column status_commands_lines;"); | ||
} | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
package io.openbas.rest.atomic_testing.form; | ||
|
||
import com.fasterxml.jackson.annotation.JsonProperty; | ||
import com.fasterxml.jackson.databind.node.ObjectNode; | ||
import io.openbas.database.converter.ContentConverter; | ||
import io.openbas.database.model.Endpoint; | ||
import jakarta.persistence.Convert; | ||
import jakarta.validation.constraints.NotBlank; | ||
import java.util.*; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import lombok.Setter; | ||
|
||
@Setter | ||
Check warning on line 14 in openbas-api/src/main/java/io/openbas/rest/atomic_testing/form/AtomicInjectorContractOutput.java
|
||
@Getter | ||
@Builder | ||
public class AtomicInjectorContractOutput { | ||
|
||
@JsonProperty("injector_contract_id") | ||
@NotBlank | ||
private String id; | ||
|
||
@JsonProperty("injector_contract_content") | ||
@NotBlank | ||
private String content; | ||
|
||
@JsonProperty("convertedContent") | ||
@Convert(converter = ContentConverter.class) | ||
private ObjectNode convertedContent; | ||
|
||
@JsonProperty("injector_contract_platforms") | ||
private Endpoint.PLATFORM_TYPE[] platforms; | ||
|
||
@JsonProperty("injector_contract_payload") | ||
private PayloadSimple payload; | ||
|
||
@Builder.Default | ||
@JsonProperty("injector_contract_labels") | ||
@NotBlank | ||
private Map<String, String> labels = new HashMap<>(); | ||
} |
Uh oh!
There was an error while loading. Please reload this page.