]>
git.proxmox.com Git - proxmox-backup.git/blob - src/bin/api-test-server.rs
0c0b199b3732cea2ad879e272833a4ecba5a689f
5 use apitest
::api
::schema
::*;
6 use apitest
::api
::router
::*;
7 use apitest
::api
::config
::*;
8 use apitest
::server
::rest
::*;
12 use lazy_static
::lazy_static
;
14 use futures
::future
::Future
;
20 let command
: Arc
<Schema
> = StringSchema
::new("Command.")
21 .format(Arc
::new(ApiStringFormat
::Enum(vec
![
28 let schema
= ObjectSchema
::new("Parameters.")
29 .required("command", command
);
31 let args
: Vec
<String
> = std
::env
::args().skip(1).collect();
33 let options
= match getopts
::parse_arguments(&args
, &vec
!["command"], &schema
) {
34 Ok((options
, rest
)) => {
36 eprintln
!("Error: got additional arguments: {:?}", rest
);
37 std
::process
::exit(-1);
42 eprintln
!("Error: unable to parse arguments:\n{}", err
);
43 std
::process
::exit(-1);
47 let command
= options
["command"].as_str().unwrap();
51 println
!("Starting server.");
54 println
!("Stopping server.");
55 std
::process
::exit(0);
58 println
!("Server status.");
59 std
::process
::exit(0);
62 eprintln
!("got unexpected command {}", command
);
63 std
::process
::exit(-1);
67 let addr
= ([0, 0, 0, 0], 8007).into();
70 static ref ROUTER
: Router
= apitest
::api3
::router();
73 let mut config
= ApiConfig
::new("/usr/share/javascript/proxmox-backup-server", &ROUTER
);
75 // add default dirs which includes jquery and bootstrap
76 // my $base = '/usr/share/libpve-http-server-perl';
77 // add_dirs($self->{dirs}, '/css/' => "$base/css/");
78 // add_dirs($self->{dirs}, '/js/' => "$base/js/");
79 // add_dirs($self->{dirs}, '/fonts/' => "$base/fonts/");
80 config
.add_alias("novnc", "/usr/share/novnc-pve");
81 config
.add_alias("extjs", "/usr/share/javascript/extjs");
82 config
.add_alias("fontawesome", "/usr/share/fonts-font-awesome");
83 config
.add_alias("xtermjs", "/usr/share/pve-xtermjs");
84 config
.add_alias("widgettoolkit", "/usr/share/javascript/proxmox-widget-toolkit");
86 let rest_server
= RestServer
::new(config
);
88 let server
= hyper
::Server
::bind(&addr
)
90 .map_err(|e
| eprintln
!("server error: {}", e
));
93 // Run this server for... forever!
94 hyper
::rt
::run(server
);