Skip to content

Commit 9872351

Browse files
authored
[backend] feat: add connector instance logs (#3528)
Signed-off-by: Marine LM <[email protected]>
1 parent 1bb1030 commit 9872351

File tree

6 files changed

+129
-3
lines changed

6 files changed

+129
-3
lines changed
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package io.openaev.migration;
2+
3+
import java.sql.Statement;
4+
import org.flywaydb.core.api.migration.BaseJavaMigration;
5+
import org.flywaydb.core.api.migration.Context;
6+
import org.springframework.stereotype.Component;
7+
8+
@Component
9+
public class V4_51__Add_Connector_Instance_Logs extends BaseJavaMigration {
10+
11+
@Override
12+
public void migrate(Context context) throws Exception {
13+
try (Statement select = context.getConnection().createStatement()) {
14+
select.execute(
15+
"""
16+
CREATE TABLE connector_instance_logs(
17+
connector_instance_log_id VARCHAR(255) NOT NULL CONSTRAINT connector_instance_logs_pkey PRIMARY KEY,
18+
connector_instance_log TEXT NOT NULL,
19+
connector_configuration_created_at TIMESTAMP WITH TIME ZONE DEFAULT now(),
20+
connector_instance_id VARCHAR(255) NOT NULL REFERENCES connector_instances(connector_instance_id) ON DELETE CASCADE
21+
);
22+
""");
23+
24+
select.execute(
25+
"""
26+
CREATE TYPE connector_instance_current_status_type AS ENUM ('started','stopped');
27+
CREATE TYPE connector_instance_requested_status_type AS ENUM ('starting','stopping');
28+
""");
29+
select.execute(
30+
"""
31+
ALTER TABLE connector_instances
32+
DROP COLUMN IF EXISTS connector_instance_current_status,
33+
DROP COLUMN IF EXISTS connector_instance_requested_status,
34+
ADD COLUMN connector_instance_current_status connector_instance_current_status_type NOT NULL,
35+
ADD COLUMN connector_instance_requested_status connector_instance_requested_status_type NOT NULL
36+
""");
37+
}
38+
}
39+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package io.openaev.rest.connector_instance.service;
2+
3+
import io.openaev.database.repository.ConnectorInstanceLogRepository;
4+
import lombok.RequiredArgsConstructor;
5+
import lombok.extern.slf4j.Slf4j;
6+
import org.springframework.stereotype.Service;
7+
8+
@Slf4j
9+
@Service
10+
@RequiredArgsConstructor
11+
public class ConnectorInstanceLogService {
12+
13+
private final ConnectorInstanceLogRepository connectorInstanceLogRepository;
14+
}

openaev-model/src/main/java/io/openaev/database/model/CatalogConnector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public enum CONNECTOR_TYPE {
6464
@Type(ListArrayType.class)
6565
@Column(name = "catalog_connector_use_cases")
6666
@JsonProperty("catalog_connector_use_cases")
67-
@Schema(description = "Connector use_cases")
67+
@Schema(description = "Connector use cases")
6868
private Set<String> useCases = new HashSet<>();
6969

7070
@Column(name = "catalog_connector_verified")

openaev-model/src/main/java/io/openaev/database/model/ConnectorInstance.java

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,16 @@
1919
@EntityListeners(ModelBaseListener.class)
2020
public class ConnectorInstance implements Base {
2121

22+
public enum CURRENT_STATUS_TYPE {
23+
started,
24+
stopped
25+
}
26+
27+
public enum REQUESTED_STATUS_TYPE {
28+
starting,
29+
stopping
30+
}
31+
2232
@Id
2333
@Column(name = "connector_instance_id")
2434
@GeneratedValue(generator = "UUID")
@@ -33,14 +43,16 @@ public class ConnectorInstance implements Base {
3343
@NotNull
3444
private CatalogConnector catalogConnector;
3545

46+
@Enumerated(EnumType.STRING)
3647
@Column(name = "connector_instance_current_status")
3748
@JsonProperty("connector_instance_current_status")
3849
@NotBlank
39-
private String currentStatus;
50+
private CURRENT_STATUS_TYPE currentStatus;
4051

52+
@Enumerated(EnumType.STRING)
4153
@Column(name = "connector_instance_requested_status")
4254
@JsonProperty("connector_instance_requested_status")
43-
private String requestedStatus;
55+
private REQUESTED_STATUS_TYPE requestedStatus;
4456

4557
@Column(name = "connector_instance_restart_count")
4658
@JsonProperty("connector_instance_restart_count")
@@ -62,4 +74,13 @@ public class ConnectorInstance implements Base {
6274
@JsonProperty("connector_instance_configurations")
6375
@NotNull
6476
private Set<ConnectorInstanceConfiguration> configurations = new HashSet<>();
77+
78+
@OneToMany(
79+
mappedBy = "connectorInstance",
80+
fetch = FetchType.LAZY,
81+
cascade = CascadeType.ALL,
82+
orphanRemoval = true)
83+
@JsonProperty("connector_instance_logs")
84+
@NotNull
85+
private Set<ConnectorInstanceLog> logs = new HashSet<>();
6586
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.openaev.database.model;
2+
3+
import com.fasterxml.jackson.annotation.JsonIgnore;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
6+
import io.openaev.database.audit.ModelBaseListener;
7+
import io.openaev.helper.MonoIdDeserializer;
8+
import io.swagger.v3.oas.annotations.media.Schema;
9+
import jakarta.persistence.*;
10+
import jakarta.validation.constraints.NotBlank;
11+
import jakarta.validation.constraints.NotNull;
12+
import lombok.Getter;
13+
import lombok.Setter;
14+
import org.hibernate.annotations.UuidGenerator;
15+
16+
@Getter
17+
@Setter
18+
@Entity
19+
@Table(name = "connector_instance_logs")
20+
@EntityListeners(ModelBaseListener.class)
21+
public class ConnectorInstanceLog implements Base {
22+
@Id
23+
@Column(name = "connector_instance_log_id")
24+
@GeneratedValue(generator = "UUID")
25+
@UuidGenerator
26+
@JsonProperty("connector_instance_log_id")
27+
@NotBlank
28+
private String id;
29+
30+
@Column(name = "connector_instance_log")
31+
@JsonProperty("connector_instance_log")
32+
@Schema(description = "Connector instance log")
33+
private String log;
34+
35+
@ManyToOne(fetch = FetchType.LAZY)
36+
@JoinColumn(name = "connector_instance_id", nullable = false)
37+
@JsonIgnore
38+
@NotNull
39+
@JsonSerialize(using = MonoIdDeserializer.class)
40+
private ConnectorInstance connectorInstance;
41+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package io.openaev.database.repository;
2+
3+
import io.openaev.database.model.ConnectorInstanceLog;
4+
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
5+
import org.springframework.data.repository.CrudRepository;
6+
import org.springframework.stereotype.Repository;
7+
8+
@Repository
9+
public interface ConnectorInstanceLogRepository
10+
extends CrudRepository<ConnectorInstanceLog, String>,
11+
JpaSpecificationExecutor<ConnectorInstanceLog> {}

0 commit comments

Comments
 (0)