update CLI argument for vm deploy port exposure
Adds conflict rules to prevent using `--public-ip` and `--expose-port` at the same time.
This commit is contained in:
		
							parent
							
								
									6b6c7b2356
								
							
						
					
					
						commit
						d753358795
					
				| @ -148,7 +148,7 @@ fn clap_cmd() -> Command { | |||||||
|                     ) |                     ) | ||||||
|                     .arg( |                     .arg( | ||||||
|                         Arg::new("port") |                         Arg::new("port") | ||||||
|                         .long("port") |                         .long("expose-port") | ||||||
|                         .value_parser(clap::value_parser!(u32).range(0..65535)) |                         .value_parser(clap::value_parser!(u32).range(0..65535)) | ||||||
|                         .action(clap::ArgAction::Append) |                         .action(clap::ArgAction::Append) | ||||||
|                         .help("Application exposing port") |                         .help("Application exposing port") | ||||||
| @ -394,6 +394,16 @@ fn clap_cmd() -> Command { | |||||||
|                     .long("public-ip") |                     .long("public-ip") | ||||||
|                     .help("get a public IPv4 address for this VM") |                     .help("get a public IPv4 address for this VM") | ||||||
|                     .action(clap::ArgAction::SetTrue) |                     .action(clap::ArgAction::SetTrue) | ||||||
|  |                     .conflicts_with("port") | ||||||
|  |                 ) | ||||||
|  |                 .arg( | ||||||
|  |                     Arg::new("port") | ||||||
|  |                     .long("expose-port") | ||||||
|  |                     .value_parser(clap::value_parser!(u32).range(0..65535)) | ||||||
|  |                     .action(clap::ArgAction::Append) | ||||||
|  |                     .help("vm exposing port") | ||||||
|  |                     .long_help("Port to expose on the vm which mapped into the host's public IP's port") | ||||||
|  |                     .conflicts_with("public-ip") | ||||||
|                 ) |                 ) | ||||||
|             ) |             ) | ||||||
|             .subcommand(Command::new("inspect").about("list all available information about a VM") |             .subcommand(Command::new("inspect").about("list all available information about a VM") | ||||||
|  | |||||||
| @ -63,8 +63,13 @@ fn handle_vm_deploy(matches: &ArgMatches) -> Result<snp::VmSshArgs, Box<dyn Erro | |||||||
|     let location = matches.get_one::<String>("location").unwrap().as_str(); |     let location = matches.get_one::<String>("location").unwrap().as_str(); | ||||||
|     let ipv4: crate::snp::deploy::IPv4Config = match matches.get_one::<bool>("public-ip").unwrap() { |     let ipv4: crate::snp::deploy::IPv4Config = match matches.get_one::<bool>("public-ip").unwrap() { | ||||||
|         true => crate::snp::deploy::IPv4Config::PublicIPv4, |         true => crate::snp::deploy::IPv4Config::PublicIPv4, | ||||||
|         false => crate::snp::deploy::IPv4Config::PublishPorts(Vec::new()), |         false => { | ||||||
|  |             let exposing_port = | ||||||
|  |                 matches.get_many::<u32>("port").unwrap_or_default().cloned().collect::<Vec<_>>(); | ||||||
|  |             crate::snp::deploy::IPv4Config::PublishPorts(exposing_port) | ||||||
|  |         } | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|     let distro = |     let distro = | ||||||
|         crate::snp::Distro::from_string(matches.get_one::<String>("distribution").unwrap()); |         crate::snp::Distro::from_string(matches.get_one::<String>("distribution").unwrap()); | ||||||
|     let vm_config = snp::deploy::Request { |     let vm_config = snp::deploy::Request { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user