summaryrefslogtreecommitdiff
path: root/simulator/opendc-compute/opendc-compute-api
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-03-09 19:56:50 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-03-09 20:33:28 +0100
commit44ed0023ed783437c3c838780f73e28efe1cc4ca (patch)
tree78749e24d2b20989ac584bd16ecbae821f60f1a3 /simulator/opendc-compute/opendc-compute-api
parentb3f390be783cad21cd4925bcbe8077b91f869b5d (diff)
compute: Move implementation of Flavor into service module
Diffstat (limited to 'simulator/opendc-compute/opendc-compute-api')
-rw-r--r--simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt29
-rw-r--r--simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt11
2 files changed, 37 insertions, 3 deletions
diff --git a/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt b/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt
index b4fc03f7..baa1ba2f 100644
--- a/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt
+++ b/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt
@@ -29,6 +29,35 @@ import java.util.UUID
*/
public interface ComputeClient : AutoCloseable {
/**
+ * Obtain the list of [Flavor]s accessible by the requesting user.
+ */
+ public suspend fun queryFlavors(): List<Flavor>
+
+ /**
+ * Obtain a [Flavor] by its unique identifier.
+ *
+ * @param id The identifier of the flavor.
+ */
+ public suspend fun findFlavor(id: UUID): Flavor?
+
+ /**
+ * Create a new [Flavor] instance at this compute service.
+ *
+ * @param name The name of the flavor.
+ * @param cpuCount The amount of CPU cores for this flavor.
+ * @param memorySize The size of the memory.
+ * @param labels The identifying labels of the image.
+ * @param meta The non-identifying meta-data of the image.
+ */
+ public suspend fun newFlavor(
+ name: String,
+ cpuCount: Int,
+ memorySize: Long,
+ labels: Map<String, String> = emptyMap(),
+ meta: Map<String, Any> = emptyMap()
+ ): Flavor
+
+ /**
* Obtain the list of [Image]s accessible by the requesting user.
*/
public suspend fun queryImages(): List<Image>
diff --git a/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt b/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt
index bf5f0ce4..5f511f91 100644
--- a/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt
+++ b/simulator/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt
@@ -26,14 +26,19 @@ package org.opendc.compute.api
* Flavors define the compute and memory capacity of [Server] instance. To put it simply, a flavor is an available
* hardware configuration for a server. It defines the size of a virtual server that can be launched.
*/
-public data class Flavor(
+public interface Flavor : Resource {
/**
* The number of (virtual) processing cores to use.
*/
- public val cpuCount: Int,
+ public val cpuCount: Int
/**
* The amount of RAM available to the server (in MB).
*/
public val memorySize: Long
-)
+
+ /**
+ * Delete the flavor instance.
+ */
+ public suspend fun delete()
+}