]>
git.proxmox.com Git - proxmox-backup.git/blob - src/bin/proxmox-backup-api.rs
1 use anyhow
::{bail, Error}
;
4 use proxmox
::try_block
;
5 use proxmox
::api
::RpcEnvironmentType
;
7 //use proxmox_backup::tools;
8 //use proxmox_backup::api_schema::config::*;
9 use proxmox_backup
::server
::rest
::*;
10 use proxmox_backup
::server
;
11 use proxmox_backup
::tools
::daemon
;
12 use proxmox_backup
::auth_helpers
::*;
13 use proxmox_backup
::config
;
14 use proxmox_backup
::buildcfg
;
17 if let Err(err
) = proxmox_backup
::tools
::runtime
::main(run()) {
18 eprintln
!("Error: {}", err
);
19 std
::process
::exit(-1);
23 async
fn run() -> Result
<(), Error
> {
24 if let Err(err
) = syslog
::init(
25 syslog
::Facility
::LOG_DAEMON
,
26 log
::LevelFilter
::Info
,
27 Some("proxmox-backup-api")) {
28 bail
!("unable to inititialize syslog - {}", err
);
31 server
::create_task_log_dirs()?
;
33 config
::create_configdir()?
;
35 config
::update_self_signed_cert(false)?
;
37 proxmox_backup
::rrd
::create_rrdb_dir()?
;
39 if let Err(err
) = generate_auth_key() {
40 bail
!("unable to generate auth key - {}", err
);
42 let _
= private_auth_key(); // load with lazy_static
44 if let Err(err
) = generate_csrf_key() {
45 bail
!("unable to generate csrf key - {}", err
);
47 let _
= csrf_secret(); // load with lazy_static
49 let config
= server
::ApiConfig
::new(
50 buildcfg
::JS_DIR
, &proxmox_backup
::api2
::ROUTER
, RpcEnvironmentType
::PRIVILEGED
)?
;
52 let rest_server
= RestServer
::new(config
);
54 // http server future:
55 let server
= daemon
::create_daemon(
56 ([127,0,0,1], 82).into(),
57 move |listener
, ready
| {
58 let incoming
= proxmox_backup
::tools
::async_io
::StaticIncoming
::from(listener
);
60 .and_then(|_
| hyper
::Server
::builder(incoming
)
62 .with_graceful_shutdown(server
::shutdown_future())
67 eprintln
!("server error: {}", e
);
74 daemon
::systemd_notify(daemon
::SystemdNotify
::Ready
)?
;
76 let init_result
: Result
<(), Error
> = try_block
!({
77 server
::create_task_control_socket()?
;
78 server
::server_state_init()?
;
82 if let Err(err
) = init_result
{
83 bail
!("unable to start daemon - {}", err
);
87 log
::info
!("server shutting down, waiting for active workers to complete");
88 proxmox_backup
::server
::last_worker_future().await?
;
90 log
::info
!("done - exit server");