Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
188 changes: 66 additions & 122 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion brane-api/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ prost = "0.12.0"
rand = "0.8.5"
# rdkafka = { version = "0.31", features = ["cmake-build"] }
reqwest = { version = "0.11.27", features = ["rustls-tls-manual-roots"] }
scylla = "0.12.0"
scylla = "1.0.0"
serde = { version = "1.0.204", features = ["derive"] }
serde_json = "1.0.120"
serde_yaml = { version = "0.0.10", package = "serde_yml" }
Expand Down
55 changes: 55 additions & 0 deletions brane-api/Cargo.toml.orig

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 6 additions & 6 deletions brane-api/src/errors.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use brane_cfg::node::NodeKind;
use brane_shr::formatters::PrettyListFormatter;
use enum_debug::EnumDebug as _;
use reqwest::StatusCode;
use scylla::transport::errors::NewSessionError;
use scylla::errors::NewSessionError;
use specifications::address::Address;
use specifications::version::Version;

Expand Down Expand Up @@ -165,20 +165,20 @@ pub enum PackageError {
MissingDigest { name: String },

/// Failed to define the `brane.package` type in the Scylla database.
PackageTypeDefineError { err: scylla::transport::errors::QueryError },
PackageTypeDefineError { err: scylla::errors::ExecutionError },
/// Failed to define the package table in the Scylla database.
PackageTableDefineError { err: scylla::transport::errors::QueryError },
PackageTableDefineError { err: scylla::errors::ExecutionError },
/// Failed to insert a new package in the database.
PackageInsertError { name: String, err: scylla::transport::errors::QueryError },
PackageInsertError { name: String, err: scylla::errors::ExecutionError },

/// Failed to query for the given package in the Scylla database.
VersionsQueryError { name: String, err: scylla::transport::errors::QueryError },
VersionsQueryError { name: String, err: scylla::errors::ExecutionError },
/// Failed to parse a Version string
VersionParseError { raw: String, err: specifications::version::ParseError },
/// No versions found for the given package
NoVersionsFound { name: String },
/// Failed to query the database for the file of the given package.
PathQueryError { name: String, version: Version, err: scylla::transport::errors::QueryError },
PathQueryError { name: String, version: Version, err: scylla::errors::ExecutionError },
/// The given package was unknown.
UnknownPackage { name: String, version: Version },
/// Failed to get the metadata of a file.
Expand Down
15 changes: 7 additions & 8 deletions brane-api/src/packages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ use bytes::Buf;
use log::{debug, error, info, warn};
use rand::Rng;
use rand::distributions::Alphanumeric;
use scylla::macros::{FromUserType, IntoUserType};
use scylla::{SerializeCql, Session};
use scylla::client::session::Session;
use specifications::package::PackageInfo;
use specifications::version::Version;
// use tar::Archive;
Expand Down Expand Up @@ -163,7 +162,7 @@ impl TryFrom<PackageInfo> for PackageUdt {
pub async fn ensure_db_table(scylla: &Session) -> Result<(), Error> {
// Define the `brane.package` type
if let Err(err) = scylla
.query(
.query_unpaged(
"CREATE TYPE IF NOT EXISTS brane.package (
created bigint
, description text
Expand All @@ -186,7 +185,7 @@ pub async fn ensure_db_table(scylla: &Session) -> Result<(), Error> {

// Define the `brane.packages` table
if let Err(err) = scylla
.query(
.query_unpaged(
"CREATE TABLE IF NOT EXISTS brane.packages (
name text
, version text
Expand Down Expand Up @@ -214,7 +213,7 @@ pub async fn ensure_db_table(scylla: &Session) -> Result<(), Error> {
/// - `package`: The PackageInfo struct that describes the package, and is what we will insert. Note, however, that not _all_ information will make it; only the info present in a `PackageUdt` struct will.
/// - `path`: The Path where the container image may be found.
///
/// # Returusn
/// # Returns
/// Nothing, but does change the target Scylla database to include the new package.
///
/// # Errors
Expand All @@ -227,7 +226,7 @@ async fn insert_package_into_db(scylla: &Arc<Session>, package: &PackageInfo, pa

// Insert it
if let Err(err) = scylla
.query(
.query_unpaged(
"INSERT INTO brane.packages (
name
, version
Expand Down Expand Up @@ -269,7 +268,7 @@ pub async fn download(name: String, version: String, context: Context) -> Result
// Attempt to resolve the version from the Scylla database in the context
debug!("Resolving version '{}'...", version);
let version: Version = if version.to_lowercase() == "latest" {
let versions = match context.scylla.query("SELECT version FROM brane.packages WHERE name=?", vec![&name]).await {
let versions = match context.scylla.query_unpaged("SELECT version FROM brane.packages WHERE name=?", vec![&name]).await {
Ok(versions) => versions,
Err(err) => {
fail!(Error::VersionsQueryError { name, err });
Expand Down Expand Up @@ -316,7 +315,7 @@ pub async fn download(name: String, version: String, context: Context) -> Result
// With the version resolved, query the filename
debug!("Retrieving filename for package '{}'@{}", name, version);
let file: PathBuf =
match context.scylla.query("SELECT file FROM brane.packages WHERE name=? AND version=?", vec![&name, &version.to_string()]).await {
match context.scylla.query_unpaged("SELECT file FROM brane.packages WHERE name=? AND version=?", vec![&name, &version.to_string()]).await {
Ok(file) => {
if let Some(rows) = file.rows {
if rows.is_empty() {
Expand Down
Loading
Loading