diff options
author | axtloss <axtlos@getcryst.al> | 2023-05-25 21:16:57 +0200 |
---|---|---|
committer | axtloss <axtlos@getcryst.al> | 2023-05-25 21:16:57 +0200 |
commit | fda79997703823e7d65e9f639a3247119a97e5b3 (patch) | |
tree | 6dae8fe59ef4b3246a2463b2bef7053387aac450 /src/main/java/io/github/jshipit/OCIDataStore.java | |
parent | 88ff8a69891ad8193876bd6fcad7524a57151e80 (diff) | |
download | jshipit-fda79997703823e7d65e9f639a3247119a97e5b3.tar.gz jshipit-fda79997703823e7d65e9f639a3247119a97e5b3.tar.bz2 |
Add function to start container
I cannot understand any of this anymore. Oh well :shipit:
Diffstat (limited to 'src/main/java/io/github/jshipit/OCIDataStore.java')
-rwxr-xr-x | src/main/java/io/github/jshipit/OCIDataStore.java | 106 |
1 files changed, 98 insertions, 8 deletions
diff --git a/src/main/java/io/github/jshipit/OCIDataStore.java b/src/main/java/io/github/jshipit/OCIDataStore.java index 6991af4..0a80b3f 100755 --- a/src/main/java/io/github/jshipit/OCIDataStore.java +++ b/src/main/java/io/github/jshipit/OCIDataStore.java @@ -55,7 +55,7 @@ public class OCIDataStore { statement.setQueryTimeout(30); // set timeout to 30 sec. statement.executeUpdate("CREATE TABLE IF NOT EXISTS blobs (id INTEGER PRIMARY KEY AUTOINCREMENT, digest TEXT, path TEXT)"); - statement.executeUpdate("CREATE TABLE IF NOT EXISTS containers (containerID INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, id TEXT, path TEXT)"); + statement.executeUpdate("CREATE TABLE IF NOT EXISTS containers (containerID INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, path TEXT, image TEXT, tag TEXT, apiRepo TEXT, repo TEXT)"); System.out.println("A new database has been created."); } @@ -98,7 +98,7 @@ public class OCIDataStore { return false; } - public void addContainerToDatabase(String path, String name, String id) { + public void addContainerToDatabase(String path, String name, String image, String tag, String apiRepo, String repo) { String url = "jdbc:sqlite:" + this.databasePath; try (Connection conn = DriverManager.getConnection(url)) { @@ -106,7 +106,7 @@ public class OCIDataStore { Statement statement = conn.createStatement(); statement.setQueryTimeout(30); // set timeout to 30 sec. - statement.executeUpdate("INSERT INTO containers (name, id, path) VALUES ('" + name + "', '" + id + "', '" + path + "')"); + statement.executeUpdate("INSERT INTO containers (name, path, image, tag, apiRepo, repo) VALUES ('" + name + "', '" + path + "', '" + image + "', '" + tag + "', '" + apiRepo + "', '" + repo + "')"); } } catch (SQLException e) { @@ -114,7 +114,7 @@ public class OCIDataStore { } } - public String getContainerPath(String name, String id) { + public String getContainerID(String name) { String url = "jdbc:sqlite:" + this.databasePath; try (Connection conn = DriverManager.getConnection(url)) { @@ -122,7 +122,25 @@ public class OCIDataStore { Statement statement = conn.createStatement(); statement.setQueryTimeout(30); // set timeout to 30 sec. - ResultSet rs = statement.executeQuery("SELECT * FROM containers WHERE name = '" + name + "' AND id = '" + id + "'"); + ResultSet rs = statement.executeQuery("SELECT * FROM containers WHERE name = '" + name + "'"); + return rs.getString("containerID"); + } + + } catch (SQLException e) { + System.out.println(e.getMessage()); + } + return null; + } + + public String getContainerPath(String name) { + String url = "jdbc:sqlite:" + this.databasePath; + + try (Connection conn = DriverManager.getConnection(url)) { + if (conn != null) { + Statement statement = conn.createStatement(); + statement.setQueryTimeout(30); // set timeout to 30 sec. + + ResultSet rs = statement.executeQuery("SELECT * FROM containers WHERE name = '" + name + "'"); return rs.getString("path"); } @@ -132,8 +150,80 @@ public class OCIDataStore { return null; } - public String createContainerDirectory(String image, String tag, String name, String id) { - Path containerPath = Path.of(this.path+"/"+image+"/"+tag+"/"+name+"_"+id); + public String getContainerImage(String name) { + String url = "jdbc:sqlite:" + this.databasePath; + + try (Connection conn = DriverManager.getConnection(url)) { + if (conn != null) { + Statement statement = conn.createStatement(); + statement.setQueryTimeout(30); // set timeout to 30 sec. + + ResultSet rs = statement.executeQuery("SELECT * FROM containers WHERE name = '" + name + "'"); + return rs.getString("image"); + } + + } catch (SQLException e) { + System.out.println(e.getMessage()); + } + return null; + } + + public String getContainerTag(String name) { + String url = "jdbc:sqlite:" + this.databasePath; + + try (Connection conn = DriverManager.getConnection(url)) { + if (conn != null) { + Statement statement = conn.createStatement(); + statement.setQueryTimeout(30); // set timeout to 30 sec. + + ResultSet rs = statement.executeQuery("SELECT * FROM containers WHERE name = '" + name + "'"); + return rs.getString("tag"); + } + + } catch (SQLException e) { + System.out.println(e.getMessage()); + } + return null; + } + + public String getContainerApiRepo(String name) { + String url = "jdbc:sqlite:" + this.databasePath; + + try (Connection conn = DriverManager.getConnection(url)) { + if (conn != null) { + Statement statement = conn.createStatement(); + statement.setQueryTimeout(30); // set timeout to 30 sec. + + ResultSet rs = statement.executeQuery("SELECT * FROM containers WHERE name = '" + name + "'"); + return rs.getString("apiRepo"); + } + + } catch (SQLException e) { + System.out.println(e.getMessage()); + } + return null; + } + + public String getContainerRepo(String name) { + String url = "jdbc:sqlite:" + this.databasePath; + + try (Connection conn = DriverManager.getConnection(url)) { + if (conn != null) { + Statement statement = conn.createStatement(); + statement.setQueryTimeout(30); // set timeout to 30 sec. + + ResultSet rs = statement.executeQuery("SELECT * FROM containers WHERE name = '" + name + "'"); + return rs.getString("repo"); + } + + } catch (SQLException e) { + System.out.println(e.getMessage()); + } + return null; + } + + public String createContainerDirectory(String image, String tag, String name, String apiRepo, String repo) { + Path containerPath = Path.of(this.path+"/"+image+"/"+tag+"/"+name); try { Files.createDirectory(containerPath); } catch (IOException e) { @@ -141,7 +231,7 @@ public class OCIDataStore { e.printStackTrace(); return null; } - addContainerToDatabase(containerPath.toString(), name, id); + addContainerToDatabase(containerPath.toString(), name, image, tag, apiRepo, repo); return containerPath.toString(); } |