]>
git.proxmox.com Git - proxmox-backup.git/blob - src/bin/proxmox-backup-api.rs
1 extern crate proxmox_backup
;
5 use proxmox_backup
::api
::schema
::*;
6 use proxmox_backup
::api
::router
::*;
7 use proxmox_backup
::api
::config
::*;
8 use proxmox_backup
::server
::rest
::*;
9 use proxmox_backup
::getopts
;
12 use lazy_static
::lazy_static
;
14 use futures
::future
::Future
;
20 if let Err(err
) = syslog
::init(
21 syslog
::Facility
::LOG_DAEMON
,
22 log
::LevelFilter
::Info
,
23 Some("proxmox-backup-api")) {
24 eprintln
!("unable to inititialize syslog: {}", err
);
25 std
::process
::exit(-1);
28 let command
: Arc
<Schema
> = StringSchema
::new("Command.")
29 .format(Arc
::new(ApiStringFormat
::Enum(vec
![
36 let schema
= ObjectSchema
::new("Parameters.")
37 .required("command", command
);
39 let args
: Vec
<String
> = std
::env
::args().skip(1).collect();
41 let options
= match getopts
::parse_arguments(&args
, &vec
!["command"], &schema
) {
42 Ok((options
, rest
)) => {
44 eprintln
!("Error: got additional arguments: {:?}", rest
);
45 std
::process
::exit(-1);
50 eprintln
!("Error: unable to parse arguments:\n{}", err
);
51 std
::process
::exit(-1);
55 let command
= options
["command"].as_str().unwrap();
59 println
!("Starting server.");
62 println
!("Stopping server.");
63 std
::process
::exit(0);
66 println
!("Server status.");
67 std
::process
::exit(0);
70 eprintln
!("got unexpected command {}", command
);
71 std
::process
::exit(-1);
75 let addr
= ([127,0,0,1], 82).into();
78 static ref ROUTER
: Router
= proxmox_backup
::api2
::router();
81 let config
= ApiConfig
::new(
82 "/usr/share/javascript/proxmox-backup", &ROUTER
, RpcEnvironmentType
::PRIVILEDGED
);
84 let rest_server
= RestServer
::new(config
);
86 let server
= hyper
::Server
::bind(&addr
)
88 .map_err(|e
| eprintln
!("server error: {}", e
));
91 // Run this server for... forever!
92 hyper
::rt
::run(server
);