]>
git.proxmox.com Git - proxmox-backup.git/blob - src/bin/proxmox-backup-api.rs
d09955a448b932a98fa3f447326f6bdc1cf94fcc
3 use lazy_static
::lazy_static
;
5 use proxmox
::tools
::try_block
;
7 //use proxmox_backup::tools;
8 use proxmox_backup
::api_schema
::router
::*;
9 use proxmox_backup
::api_schema
::config
::*;
10 use proxmox_backup
::server
::rest
::*;
11 use proxmox_backup
::server
;
12 use proxmox_backup
::tools
::daemon
;
13 use proxmox_backup
::auth_helpers
::*;
14 use proxmox_backup
::config
;
18 if let Err(err
) = run().await
{
19 eprintln
!("Error: {}", err
);
20 std
::process
::exit(-1);
24 async
fn run() -> Result
<(), Error
> {
25 if let Err(err
) = syslog
::init(
26 syslog
::Facility
::LOG_DAEMON
,
27 log
::LevelFilter
::Info
,
28 Some("proxmox-backup-api")) {
29 bail
!("unable to inititialize syslog - {}", err
);
32 server
::create_task_log_dirs()?
;
34 config
::create_configdir()?
;
36 if let Err(err
) = generate_auth_key() {
37 bail
!("unable to generate auth key - {}", err
);
39 let _
= private_auth_key(); // load with lazy_static
41 if let Err(err
) = generate_csrf_key() {
42 bail
!("unable to generate csrf key - {}", err
);
44 let _
= csrf_secret(); // load with lazy_static
47 static ref ROUTER
: Router
= proxmox_backup
::api2
::router();
50 let config
= ApiConfig
::new(
51 env
!("PROXMOX_JSDIR"), &ROUTER
, RpcEnvironmentType
::PRIVILEGED
);
53 let rest_server
= RestServer
::new(config
);
55 // http server future:
56 let server
= daemon
::create_daemon(
57 ([127,0,0,1], 82).into(),
59 Ok(hyper
::Server
::builder(listener
.incoming())
61 .with_graceful_shutdown(server
::shutdown_future())
64 eprintln
!("server error: {}", e
);
71 daemon
::systemd_notify(daemon
::SystemdNotify
::Ready
)?
;
73 let init_result
: Result
<(), Error
> = try_block
!({
74 server
::create_task_control_socket()?
;
75 server
::server_state_init()?
;
79 if let Err(err
) = init_result
{
80 bail
!("unable to start daemon - {}", err
);
85 log
::info
!("done - exit server");