summaryrefslogtreecommitdiff
path: root/opendc-common/src/main/kotlin/org/opendc/common/utils/PostgresqlDB.kt
blob: 3dc7a0e46ed2dcc77f0d4b943eeab299d815564d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package org.opendc.common.utils

import java.sql.Connection
import java.sql.DriverManager
import java.sql.SQLException

public class PostgresqlDB {
    public var connection : Connection? = null
    public var dbUrl : String = ""
    public var user : String = ""
    public var password : String = ""

    public fun setupDatabase(address : String, port : Int, dbUser : String, dbPassword : String, db : String){
        dbUrl = "jdbc:postgresql://$address:$port/$db"
        user = dbUser
        password = dbPassword
        println(dbUrl)
        try {
            connection = DriverManager.getConnection(dbUrl, dbUser, dbPassword)
        } catch (e: SQLException) {
            print("${e.message}")
        }
    }

    public fun create(){
        val CREATE_TABLE = """
            CREATE TABLE metrics (
            id SERIAL PRIMARY KEY,
            timestamp bigint,
            tasksActive integer, 
            clusterName varchar(10)); 
        """.trimIndent()

        try {
            val conn = DriverManager.getConnection(dbUrl, user, password)
            val st = conn.createStatement()
            st.executeQuery(CREATE_TABLE)
        } catch (e: SQLException){
            println("${e.message}")
        }
    }

    public fun clear(){
        val DELETE_ALL_TABLES = """
            DROP SCHEMA public CASCADE;
            CREATE SCHEMA public;
        """.trimIndent()
        try {
            val conn = DriverManager.getConnection(dbUrl, user, password)
            val st = conn.createStatement()
            st.executeQuery(DELETE_ALL_TABLES)
        } catch (e: SQLException){
            println("${e.message}")
        }
    }
}