Skip to content

Commit fd6153a

Browse files
committed
Added start and stop method to ADB controller
1 parent c5e75f7 commit fd6153a

File tree

5 files changed

+81
-6
lines changed

5 files changed

+81
-6
lines changed

spring-cloud-oci/spring-cloud-oci-adb/src/main/java/com/oracle/cloud/spring/adb/AutonomousDb.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import com.oracle.bmc.database.DatabaseClient;
77
import com.oracle.bmc.database.responses.CreateAutonomousDatabaseResponse;
88
import com.oracle.bmc.database.responses.GenerateAutonomousDatabaseWalletResponse;
9+
import com.oracle.bmc.database.responses.StartAutonomousDatabaseResponse;
10+
import com.oracle.bmc.database.responses.StopAutonomousDatabaseResponse;
911
import com.oracle.bmc.database.responses.DeleteAutonomousDatabaseResponse;
1012

1113
/**
@@ -60,4 +62,19 @@ CreateAutonomousDatabaseResponse createAutonomousDatabase(
6062
*/
6163
DeleteAutonomousDatabaseResponse deleteAutonomousDatabase(String databaseId);
6264

65+
/**
66+
* Start an Autonomous Database.
67+
*
68+
* @param databaseId OCID of the Autonomous Database to be started
69+
* @return StartAutonomousDatabaseResponse
70+
*/
71+
StartAutonomousDatabaseResponse startAutonomousDatabase(String databaseId);
72+
73+
/**
74+
* Stop an Autonomous Database.
75+
*
76+
* @param databaseId OCID of the Autonomous Database to be stopped
77+
* @return StopAutonomousDatabaseResponse
78+
*/
79+
StopAutonomousDatabaseResponse stopAutonomousDatabase(String databaseId);
6380
}

spring-cloud-oci/spring-cloud-oci-adb/src/main/java/com/oracle/cloud/spring/adb/AutonomousDbImpl.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,14 @@
1212
import com.oracle.bmc.database.responses.GetAutonomousDatabaseResponse;
1313
import com.oracle.bmc.database.responses.GenerateAutonomousDatabaseWalletResponse;
1414
import com.oracle.bmc.database.responses.DeleteAutonomousDatabaseResponse;
15+
import com.oracle.bmc.database.responses.StartAutonomousDatabaseResponse;
16+
import com.oracle.bmc.database.responses.StopAutonomousDatabaseResponse;
1517
import com.oracle.bmc.database.requests.GetAutonomousDatabaseRequest;
1618
import com.oracle.bmc.database.requests.GenerateAutonomousDatabaseWalletRequest;
1719
import com.oracle.bmc.database.requests.CreateAutonomousDatabaseRequest;
1820
import com.oracle.bmc.database.requests.DeleteAutonomousDatabaseRequest;
21+
import com.oracle.bmc.database.requests.StartAutonomousDatabaseRequest;
22+
import com.oracle.bmc.database.requests.StopAutonomousDatabaseRequest;
1923

2024
/**
2125
* Implementation for the OCI Autonomous Database module.
@@ -137,5 +141,21 @@ public DeleteAutonomousDatabaseResponse deleteAutonomousDatabase(String database
137141

138142
return response;
139143
}
144+
@Override
145+
public StartAutonomousDatabaseResponse startAutonomousDatabase(String databaseId) {
146+
return getDatabaseClient().startAutonomousDatabase(
147+
StartAutonomousDatabaseRequest.builder()
148+
.autonomousDatabaseId(databaseId)
149+
.build()
150+
);
151+
}
140152

153+
@Override
154+
public StopAutonomousDatabaseResponse stopAutonomousDatabase(String databaseId) {
155+
return getDatabaseClient().stopAutonomousDatabase(
156+
StopAutonomousDatabaseRequest.builder()
157+
.autonomousDatabaseId(databaseId)
158+
.build()
159+
);
160+
}
141161
}

spring-cloud-oci/spring-cloud-oci-samples/spring-cloud-oci-adb-sample/src/main/java/com/oracle/cloud/spring/sample/adb/springcloudociadbsample/AdbController.java

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,15 @@
66
import com.oracle.bmc.database.responses.CreateAutonomousDatabaseResponse;
77
import com.oracle.bmc.database.responses.DeleteAutonomousDatabaseResponse;
88
import com.oracle.bmc.database.responses.GenerateAutonomousDatabaseWalletResponse;
9+
import com.oracle.bmc.database.responses.StartAutonomousDatabaseResponse;
10+
import com.oracle.bmc.database.responses.StopAutonomousDatabaseResponse;
911
import com.oracle.cloud.spring.adb.AutonomousDb;
1012
import com.oracle.cloud.spring.adb.AutonomousDbDetails;
1113
import io.swagger.v3.oas.annotations.Parameter;
1214
import io.swagger.v3.oas.annotations.tags.Tag;
15+
16+
import java.util.Map;
17+
1318
import org.springframework.beans.factory.annotation.Autowired;
1419
import org.springframework.core.io.InputStreamResource;
1520
import org.springframework.http.HttpHeaders;
@@ -40,7 +45,15 @@ ResponseEntity<?> createAutonomousDatabase(
4045
) {
4146
CreateAutonomousDatabaseResponse response = autonomousDatabase.createAutonomousDatabase(
4247
databaseName, compartmentId, adminPassword, displayName, dataStorageSizeInGBs, computeCount);
43-
return ResponseEntity.accepted().body("opcRequestId : " + response.getOpcRequestId());
48+
var adb = response.getAutonomousDatabase();
49+
var result = Map.of(
50+
"opcRequestId", response.getOpcRequestId(),
51+
"autonomousDatabaseOcid", adb.getId(),
52+
"displayName", adb.getDisplayName(),
53+
"lifecycleState", adb.getLifecycleState().getValue()
54+
);
55+
56+
return ResponseEntity.accepted().body(result);
4457
}
4558

4659
@GetMapping
@@ -67,4 +80,30 @@ ResponseEntity<?> deleteAutonomousDatabase(@Parameter(required = true, example =
6780
return ResponseEntity.ok().body("opcRequestId for deleting the database : " +response.getOpcRequestId());
6881
}
6982

83+
@PostMapping("/start")
84+
ResponseEntity<?> startAutonomousDatabase(@Parameter(required = true, example = "databaseId") @RequestParam String databaseId) {
85+
StartAutonomousDatabaseResponse response = autonomousDatabase.startAutonomousDatabase(databaseId);
86+
var adb = response.getAutonomousDatabase();
87+
var result = Map.of(
88+
"opcRequestId", response.getOpcRequestId(),
89+
"autonomousDatabaseOcid", adb.getId(),
90+
"displayName", adb.getDisplayName(),
91+
"lifecycleState", adb.getLifecycleState().getValue()
92+
);
93+
return ResponseEntity.accepted().body(result);
94+
}
95+
96+
@PostMapping("/stop")
97+
ResponseEntity<?> stopAutonomousDatabase(@Parameter(required = true, example = "databaseId") @RequestParam String databaseId) {
98+
StopAutonomousDatabaseResponse response = autonomousDatabase.stopAutonomousDatabase(databaseId);
99+
var adb = response.getAutonomousDatabase();
100+
var result = Map.of(
101+
"opcRequestId", response.getOpcRequestId(),
102+
"autonomousDatabaseOcid", adb.getId(),
103+
"displayName", adb.getDisplayName(),
104+
"lifecycleState", adb.getLifecycleState().getValue()
105+
);
106+
return ResponseEntity.accepted().body(result);
107+
}
108+
70109
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Copyright (c) 2024, Oracle and/or its affiliates.
22
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
33

4-
spring.cloud.oci.region.static = us-phoenix-1
5-
spring.cloud.oci.config.type = file
4+
spring.cloud.oci.config.type = file
5+
spring.cloud.oci.config.profile = DEFAULT

spring-cloud-oci/spring-cloud-oci-samples/spring-cloud-oci-gen-ai-sample/src/main/resources/application.properties

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,5 @@ spring.cloud.oci.genai.embedding.enabled=true
1010
spring.cloud.oci.genai.embedding.compartment=${OCI_COMPARTMENT_ID}
1111
spring.cloud.oci.genai.chat.compartment=${OCI_COMPARTMENT_ID}
1212

13-
spring.cloud.oci.genai.chat.onDemandModelId=${OCI_CHAT_MODEL_ID}
14-
spring.cloud.oci.genai.embedding.onDemandModelId=${OCI_EMBEDDING_MODEL_ID}
15-
13+
spring.cloud.oci.genai.chat.onDemandModelId=cohere.command-r-plus-08-2024
14+
spring.cloud.oci.genai.embedding.onDemandModelId=cohere.embed-v4.0

0 commit comments

Comments
 (0)