adapting CLI to the surreal brain
This commit is contained in:
		
							parent
							
								
									fb8558f7a9
								
							
						
					
					
						commit
						8c58aa59ef
					
				
							
								
								
									
										2
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										2
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -1182,7 +1182,7 @@ dependencies = [ | ||||
| [[package]] | ||||
| name = "detee-shared" | ||||
| version = "0.1.0" | ||||
| source = "git+ssh://git@gitea.detee.cloud/testnet/proto.git?branch=main#b5289f1f5ba3ddae2ee066d6deb073ce92436b71" | ||||
| source = "git+ssh://git@gitea.detee.cloud/testnet/proto.git?branch=surreal_brain#fb38352e1b47837b14f32d8df5ae7f6b17202aae" | ||||
| dependencies = [ | ||||
|  "bincode", | ||||
|  "prost", | ||||
|  | ||||
| @ -34,7 +34,7 @@ tokio-retry = "0.3.0" | ||||
| detee-sgx = { git = "ssh://git@gitea.detee.cloud/testnet/detee-sgx.git", branch = "hratls", features=["hratls", "qvl"] } | ||||
| shadow-rs = { version = "1.1.1", features = ["metadata"] } | ||||
| 
 | ||||
| detee-shared = { git = "ssh://git@gitea.detee.cloud/testnet/proto.git", branch = "main" } | ||||
| detee-shared = { git = "ssh://git@gitea.detee.cloud/testnet/proto.git", branch = "surreal_brain" } | ||||
| # detee-shared = { path = "../detee-shared" } | ||||
| 
 | ||||
| [build-dependencies] | ||||
|  | ||||
| @ -309,7 +309,7 @@ impl Config { | ||||
| 
 | ||||
|     pub fn get_brain_info() -> (String, String) { | ||||
|         match Self::init_config().network.as_str() { | ||||
|             "staging" => ("https://159.65.58.38:31337".to_string(), "staging-brain".to_string()), | ||||
|             "staging" => ("https://149.36.48.100:31337".to_string(), "staging-brain".to_string()), | ||||
|             "localhost" => ("https://localhost:31337".to_string(), "staging-brain".to_string()), | ||||
|             _ => ("https://164.92.249.180:31337".to_string(), "testnet-brain".to_string()), | ||||
|         } | ||||
|  | ||||
| @ -49,18 +49,18 @@ impl crate::HumanOutput for VmContract { | ||||
|             "The VM {} has the UUID {}, and it runs on the node {}", | ||||
|             self.hostname, self.uuid, self.node_pubkey | ||||
|         ); | ||||
|         if self.public_ipv4.is_empty() { | ||||
|         if self.vm_public_ipv4.is_empty() { | ||||
|             println!( | ||||
|                 "The VM has no public IPv4. The ports published by the VM are: {:?}", | ||||
|                 self.exposed_ports | ||||
|                 "The VM has no public IPv4. The ports mapped from the host to the VM are: {:?}", | ||||
|                 self.mapped_ports | ||||
|             ); | ||||
|         } else { | ||||
|             println!("The Public IPv4 address of the VM is: {}", self.public_ipv4); | ||||
|             println!("The Public IPv4 address of the VM is: {}", self.vm_public_ipv4); | ||||
|         } | ||||
|         if self.public_ipv6.is_empty() { | ||||
|         if self.vm_public_ipv6.is_empty() { | ||||
|             println!("The VM does not have a public IPv6 address."); | ||||
|         } else { | ||||
|             println!("The Public IPv6 address of the VM is: {}", self.public_ipv6); | ||||
|             println!("The Public IPv6 address of the VM is: {}", self.vm_public_ipv6); | ||||
|         } | ||||
|         println!( | ||||
|             "The VM has {} vCPUS, {}MB of memory and a disk of {} GB.", | ||||
|  | ||||
| @ -64,20 +64,16 @@ impl TryFrom<grpc::proto::VmContract> for VmSshArgs { | ||||
|         args.user = "root".to_string(); | ||||
|         args.key_path = | ||||
|             Config::init_config().get_ssh_pubkey()?.trim_end_matches(".pub").to_string(); | ||||
|         if !contract.public_ipv4.is_empty() { | ||||
|             args.ip = contract.public_ipv4; | ||||
|         if !contract.vm_public_ipv4.is_empty() { | ||||
|             args.ip = contract.vm_public_ipv4; | ||||
|             args.port = "22".to_string(); | ||||
|         } else { | ||||
|             args.port = contract.exposed_ports[0].to_string(); | ||||
|             log::info!( | ||||
|                 "This VM does not have a public IP. Getting node IP for node {}", | ||||
|                 contract.node_pubkey | ||||
|             args.port = contract.mapped_ports[0].host_port.to_string(); | ||||
|             log::debug!( | ||||
|                 "This VM does not have a public IP. Using node public IP: {}", | ||||
|                 contract.node_ip | ||||
|             ); | ||||
|             let node = block_on(snp::grpc::get_one_node(proto::VmNodeFilters { | ||||
|                 node_pubkey: contract.node_pubkey.clone(), | ||||
|                 ..Default::default() | ||||
|             }))?; | ||||
|             args.ip = node.ip; | ||||
|             args.ip = contract.node_ip; | ||||
|         } | ||||
|         Ok(args) | ||||
|     } | ||||
| @ -97,12 +93,6 @@ pub struct Dtrfs { | ||||
| 
 | ||||
| impl Dtrfs { | ||||
|     pub fn print_dtrfs_list() -> Vec<Self> { | ||||
|         // let mut dtrfs_vec = Vec::new();
 | ||||
|         // dtrfs_vec.push(DEFAULT_DTRFS.clone());
 | ||||
|         // dtrfs_vec.push(ALTERNATIVE_INIT[0].clone());
 | ||||
|         // dtrfs_vec.push(ALTERNATIVE_INIT[1].clone());
 | ||||
|         // dtrfs_vec
 | ||||
| 
 | ||||
|         vec![DEFAULT_DTRFS.clone(), ALTERNATIVE_INIT[0].clone(), ALTERNATIVE_INIT[1].clone()] | ||||
|     } | ||||
| 
 | ||||
| @ -134,15 +124,6 @@ impl super::HumanOutput for Vec<Distro> { | ||||
| 
 | ||||
| impl Distro { | ||||
|     pub fn get_template_list() -> Vec<Self> { | ||||
|         // let mut distro_vec = Vec::new();
 | ||||
|         // distro_vec.push(DEFAULT_ARCHLINUX.clone());
 | ||||
|         // distro_vec.push(DEFAULT_UBUNTU.clone());
 | ||||
|         // distro_vec.push(DEFAULT_FEDORA.clone());
 | ||||
|         // distro_vec.push(ALTERNATIVE_DISTROS[0].clone());
 | ||||
|         // distro_vec.push(ALTERNATIVE_DISTROS[1].clone());
 | ||||
|         // distro_vec.push(ALTERNATIVE_DISTROS[2].clone());
 | ||||
|         // distro_vec
 | ||||
| 
 | ||||
|         vec![ | ||||
|             DEFAULT_ARCHLINUX.clone(), | ||||
|             DEFAULT_UBUNTU.clone(), | ||||
| @ -203,25 +184,13 @@ fn display_mins(minutes: &u64) -> String { | ||||
| 
 | ||||
| impl From<proto::VmContract> for VmContract { | ||||
|     fn from(brain_contract: proto::VmContract) -> Self { | ||||
|         let node_pubkey = brain_contract.node_pubkey.clone(); | ||||
|         let location = match block_on(snp::grpc::get_one_node(proto::VmNodeFilters { | ||||
|             node_pubkey: node_pubkey.clone(), | ||||
|             ..Default::default() | ||||
|         })) { | ||||
|             Ok(node) => format!("{}, {} ({})", node.city, node.region, node.country), | ||||
|             Err(e) => { | ||||
|                 log::warn!("Could not get information about node {node_pubkey} fram brain: {e:?}"); | ||||
|                 String::new() | ||||
|             } | ||||
|         }; | ||||
| 
 | ||||
|         Self { | ||||
|             uuid: brain_contract.uuid, | ||||
|             hostname: brain_contract.hostname, | ||||
|             vcpus: brain_contract.vcpus, | ||||
|             mem: brain_contract.memory_mb, | ||||
|             disk: brain_contract.disk_size_gb, | ||||
|             location, | ||||
|             location: brain_contract.location, | ||||
|             cost_h: (brain_contract.nano_per_minute * 60) as f64 / 1_000_000_000.0, | ||||
|             time_left: brain_contract.locked_nano / brain_contract.nano_per_minute, | ||||
|         } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user