Skip to content

Commit

Permalink
Make deadline part of Capella client
Browse files Browse the repository at this point in the history
  • Loading branch information
Westwooo committed Sep 17, 2024
1 parent 59486f6 commit 93034cc
Show file tree
Hide file tree
Showing 26 changed files with 101 additions and 363 deletions.
9 changes: 1 addition & 8 deletions src/cli/allow_ip.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ use nu_engine::CallExt;
use nu_protocol::ast::Call;
use nu_protocol::engine::{Command, EngineState, Stack};
use nu_protocol::{Category, PipelineData, ShellError, Signature, SyntaxShape, Value};
use std::ops::Add;
use std::sync::{Arc, Mutex};
use tokio::time::Instant;

#[derive(Clone)]
pub struct AllowIP {
Expand Down Expand Up @@ -105,17 +103,14 @@ fn allow_ip(
let cluster = get_active_cluster(identifier.clone(), &guard, span)?;

let org = guard.named_or_active_org(cluster.capella_org())?;

let client = org.client();
let deadline = Instant::now().add(org.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;

let project_id = find_project_id(
ctrl_c.clone(),
guard.named_or_active_project(cluster.project())?,
&client,
deadline,
span,
org_id.clone(),
)?;
Expand All @@ -125,7 +120,6 @@ fn allow_ip(
ctrl_c.clone(),
cluster.hostnames().clone(),
&client,
deadline,
span,
org_id.clone(),
project_id.clone(),
Expand All @@ -137,7 +131,6 @@ fn allow_ip(
project_id,
json_cluster.id(),
ip_address.clone(),
deadline,
ctrl_c.clone(),
)
.map_err(|e| client_error_to_shell_error(e, span))?;
Expand Down
15 changes: 3 additions & 12 deletions src/cli/buckets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,31 +170,22 @@ pub fn get_capella_buckets(
span: Span,
) -> Result<Vec<BucketSettings>, ShellError> {
let client = org.client();
let deadline = Instant::now().add(org.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let json_cluster = cluster_from_conn_str(
identifier.clone(),
ctrl_c.clone(),
cluster.hostnames().clone(),
&client,
deadline,
span,
org_id.clone(),
project_id.clone(),
)?;

let buckets = client
.list_buckets(org_id, project_id, json_cluster.id(), deadline, ctrl_c)
.list_buckets(org_id, project_id, json_cluster.id(), ctrl_c)
.map_err(|e| client_error_to_shell_error(e, span))?;
let mut buckets_settings: Vec<BucketSettings> = vec![];
for bucket in buckets.items() {
Expand Down
14 changes: 2 additions & 12 deletions src/cli/buckets_create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -224,25 +224,16 @@ pub fn create_capella_bucket(
span: Span,
) -> Result<(), ShellError> {
let client = org.client();
let deadline = Instant::now().add(org.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;

let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let json_cluster = cluster_from_conn_str(
identifier.clone(),
ctrl_c.clone(),
cluster.hostnames().clone(),
&client,
deadline,
span,
org_id.clone(),
project_id.clone(),
Expand All @@ -262,7 +253,6 @@ pub fn create_capella_bucket(
project_id,
json_cluster.id(),
serde_json::to_string(&json).unwrap(),
deadline,
ctrl_c,
)
.map_err(|e| client_error_to_shell_error(e, span))
Expand Down
14 changes: 2 additions & 12 deletions src/cli/buckets_drop.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,24 +136,15 @@ fn drop_capella_bucket(
span: Span,
) -> Result<(), ShellError> {
let client = org.client();
let deadline = Instant::now().add(org.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let json_cluster = cluster_from_conn_str(
identifier.clone(),
ctrl_c.clone(),
cluster.hostnames().clone(),
&client,
deadline,
span,
org_id.clone(),
project_id.clone(),
Expand All @@ -165,7 +156,6 @@ fn drop_capella_bucket(
project_id,
json_cluster.id(),
bucket,
deadline,
ctrl_c.clone(),
)
.map_err(|e| client_error_to_shell_error(e, span))
Expand Down
22 changes: 3 additions & 19 deletions src/cli/buckets_get.rs
Original file line number Diff line number Diff line change
Expand Up @@ -158,38 +158,22 @@ pub fn get_capella_bucket(
span: Span,
) -> Result<BucketSettings, ShellError> {
let client = org.client();
let deadline = Instant::now().add(org.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let json_cluster = cluster_from_conn_str(
identifier.clone(),
ctrl_c.clone(),
cluster.hostnames().clone(),
&client,
deadline,
span,
org_id.clone(),
project_id.clone(),
)?;

let bucket = client
.get_bucket(
org_id,
project_id,
json_cluster.id(),
bucket_name,
deadline,
ctrl_c,
)
.get_bucket(org_id, project_id, json_cluster.id(), bucket_name, ctrl_c)
.map_err(|e| client_error_to_shell_error(e, span))?;

BucketSettings::try_from(&bucket).map_err(|e| {
Expand Down
14 changes: 2 additions & 12 deletions src/cli/buckets_sample.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,25 +132,16 @@ fn load_capella_sample(
span: Span,
) -> Result<(), ShellError> {
let client = org.client();
let deadline = Instant::now().add(org.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;

let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let json_cluster = cluster_from_conn_str(
identifier.clone(),
ctrl_c.clone(),
cluster.hostnames().clone(),
&client,
deadline,
span,
org_id.clone(),
project_id.clone(),
Expand All @@ -162,7 +153,6 @@ fn load_capella_sample(
project_id,
json_cluster.id(),
sample,
deadline,
ctrl_c.clone(),
)
.map_err(|e| client_error_to_shell_error(e, span))
Expand Down
14 changes: 2 additions & 12 deletions src/cli/buckets_update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -208,25 +208,16 @@ fn update_capella_bucket(
span: Span,
) -> Result<(), ShellError> {
let client = org.client();
let deadline = Instant::now().add(org.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;

let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let json_cluster = cluster_from_conn_str(
identifier.clone(),
ctrl_c.clone(),
cluster.hostnames().clone(),
&client,
deadline,
span,
org_id.clone(),
project_id.clone(),
Expand All @@ -241,7 +232,6 @@ fn update_capella_bucket(
json_cluster.id(),
settings.name().into(),
serde_json::to_string(&json).unwrap(),
deadline,
ctrl_c,
)
.map_err(|e| client_error_to_shell_error(e, span))
Expand Down
16 changes: 3 additions & 13 deletions src/cli/clusters.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@ use nu_protocol::engine::{Command, EngineState, Stack};
use nu_protocol::{
Category, IntoPipelineData, PipelineData, ShellError, Signature, SyntaxShape, Value,
};
use std::ops::Add;
use std::sync::{Arc, Mutex};
use tokio::time::Instant;

#[derive(Clone)]
pub struct Clusters {
Expand Down Expand Up @@ -77,20 +75,12 @@ fn clusters(
guard.named_or_active_project(call.get_flag(engine_state, stack, "project")?)?;

let client = control.client();
let deadline = Instant::now().add(control.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let clusters = client
.list_clusters(org_id, project_id, deadline, ctrl_c)
.list_clusters(org_id, project_id, ctrl_c)
.map_err(|e| client_error_to_shell_error(e, span))?;

let mut results = vec![];
Expand Down
16 changes: 3 additions & 13 deletions src/cli/clusters_create.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@ use crate::client::cloud_json::{ClusterCreateRequest, Provider};
use crate::state::State;
use log::{debug, info};
use std::convert::TryFrom;
use std::ops::Add;
use std::sync::{Arc, Mutex};
use tokio::time::Instant;

use crate::cli::error::{client_error_to_shell_error, serialize_error};
use crate::cli::generic_error;
Expand Down Expand Up @@ -144,25 +142,17 @@ fn clusters_create(
let guard = state.lock().unwrap();
let control = guard.named_or_active_org(capella)?;
let client = control.client();
let deadline = Instant::now().add(control.timeout());

let project =
guard.named_or_active_project(call.get_flag(engine_state, stack, "project")?)?;

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;
let org_id = find_org_id(ctrl_c.clone(), &client, span)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let payload =
serde_json::to_string(&definition).map_err(|e| serialize_error(e.to_string(), span))?;
client
.create_cluster(org_id, project_id, payload, deadline, ctrl_c)
.create_cluster(org_id, project_id, payload, ctrl_c)
.map_err(|e| client_error_to_shell_error(e, span))?;

Ok(PipelineData::empty())
Expand Down
26 changes: 5 additions & 21 deletions src/cli/clusters_drop.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
use crate::state::State;
use log::debug;
use std::ops::Add;
use std::sync::{Arc, Mutex};
use tokio::time::Instant;

use crate::cli::error::client_error_to_shell_error;
use crate::cli::util::{find_org_id, find_project_id};
Expand Down Expand Up @@ -82,30 +80,16 @@ fn clusters_drop(
guard.named_or_active_project(call.get_flag(engine_state, stack, "project")?)?;

let client = control.client();
let deadline = Instant::now().add(control.timeout());

let org_id = find_org_id(ctrl_c.clone(), &client, deadline, span)?;
let project_id = find_project_id(
ctrl_c.clone(),
project,
&client,
deadline,
span,
org_id.clone(),
)?;

let org_id = find_org_id(ctrl_c.clone(), &client, span)?;
let project_id = find_project_id(ctrl_c.clone(), project, &client, span, org_id.clone())?;

let cluster = client
.get_cluster(
name,
org_id.clone(),
project_id.clone(),
deadline,
ctrl_c.clone(),
)
.get_cluster(name, org_id.clone(), project_id.clone(), ctrl_c.clone())
.map_err(|e| client_error_to_shell_error(e, span))?;

client
.delete_cluster(org_id, project_id, cluster.id(), deadline, ctrl_c)
.delete_cluster(org_id, project_id, cluster.id(), ctrl_c)
.map_err(|e| client_error_to_shell_error(e, span))?;

let identifier = {
Expand Down
Loading

0 comments on commit 93034cc

Please sign in to comment.