2 * Director external function prototypes
7 Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
9 This program is free software; you can redistribute it and/or
10 modify it under the terms of the GNU General Public License as
11 published by the Free Software Foundation; either version 2 of
12 the License, or (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 General Public License for more details.
19 You should have received a copy of the GNU General Public
20 License along with this program; if not, write to the Free
21 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
27 extern int authenticate_storage_daemon(JCR *jcr);
28 extern int authenticate_file_daemon(JCR *jcr);
29 extern int authenticate_user_agent(BSOCK *ua);
32 extern int do_autoprune(JCR *jcr);
33 extern int prune_volumes(JCR *jcr);
36 extern int recycle_oldest_purged_volume(JCR *jcr, MEDIA_DBR *mr);
37 extern int recycle_volume(JCR *jcr, MEDIA_DBR *mr);
38 extern int find_recycled_volume(JCR *jcr, MEDIA_DBR *mr);
41 extern int wait_for_job_termination(JCR *jcr);
45 void free_bsr(RBSR *bsr);
46 int complete_bsr(UAContext *ua, RBSR *bsr);
47 int write_bsr_file(UAContext *ua, RBSR *bsr);
48 void add_findex(RBSR *bsr, uint32_t JobId, int32_t findex);
49 RBSR_FINDEX *new_findex();
53 extern void catalog_request(JCR *jcr, BSOCK *bs, char *buf);
54 extern void catalog_update(JCR *jcr, BSOCK *bs, char *buf);
57 extern char *level_to_str(int level);
60 int variable_expansion(JCR *jcr, char *inp, POOLMEM **exp);
64 extern int connect_to_file_daemon(JCR *jcr, int retry_interval,
65 int max_retry_time, int verbose);
66 extern int send_include_list(JCR *jcr);
67 extern int send_exclude_list(JCR *jcr);
68 extern int send_bootstrap_file(JCR *jcr);
69 extern int send_level_command(JCR *jcr);
70 extern int get_attributes_and_put_in_catalog(JCR *jcr);
71 extern int get_attributes_and_compare_to_catalog(JCR *jcr, JobId_t JobId);
72 extern int put_file_into_catalog(JCR *jcr, long file_index, char *fname,
73 char *link, char *attr, int stream);
74 extern void get_level_since_time(JCR *jcr, char *since, int since_len);
75 extern int send_run_before_and_after_commands(JCR *jcr);
82 extern int response(JCR *jcr, BSOCK *fd, char *resp, char *cmd, e_prtmsg prtmsg);
85 extern void set_jcr_defaults(JCR *jcr, JOB *job);
86 extern void create_unique_job_name(JCR *jcr, char *base_name);
87 extern void update_job_end_record(JCR *jcr);
88 extern int get_or_create_client_record(JCR *jcr);
89 extern void run_job(JCR *jcr);
92 extern void mount_request(JCR *jcr, BSOCK *bs, char *buf);
95 extern int connect_to_storage_daemon(JCR *jcr, int retry_interval,
96 int max_retry_time, int verbose);
97 extern int start_storage_daemon_job(JCR *jcr);
98 extern int start_storage_daemon_message_thread(JCR *jcr);
99 extern int bget_dirmsg(BSOCK *bs);
100 extern void wait_for_storage_daemon_termination(JCR *jcr);
103 int find_next_volume_for_append(JCR *jcr, MEDIA_DBR *mr, int create);
104 bool has_volume_expired(JCR *jcr, MEDIA_DBR *mr);
105 bool is_volume_valid_or_recyclable(JCR *jcr, MEDIA_DBR *mr, char **reason);
108 int newVolume(JCR *jcr, MEDIA_DBR *mr);
111 int do_a_command(UAContext *ua, char *cmd);
112 int do_a_dot_command(UAContext *ua, char *cmd);
113 int qmessagescmd(UAContext *ua, char *cmd);
114 int open_db(UAContext *ua);
115 void close_db(UAContext *ua);
120 int create_pool(JCR *jcr, B_DB *db, POOL *pool, e_pool_op op);
121 void set_pool_dbr_defaults_in_media_dbr(MEDIA_DBR *mr, POOL_DBR *pr);
124 int get_cmd(UAContext *ua, char *prompt);
125 int get_pint(UAContext *ua, char *prompt);
126 int get_yesno(UAContext *ua, char *prompt);
127 void parse_ua_args(UAContext *ua);
130 int is_volume_name_legal(UAContext *ua, char *name);
133 void prtit(void *ctx, char *msg);
134 int complete_jcr_for_job(JCR *jcr, JOB *job, POOL *pool);
135 RUN *find_next_run(JOB *job, time_t &runtime);
138 void bsendmsg(void *sock, char *fmt, ...);
139 UAContext *new_ua_context(JCR *jcr);
140 void free_ua_context(UAContext *ua);
143 STORE *select_storage_resource(UAContext *ua);
144 JOB *select_job_resource(UAContext *ua);
145 JOB *select_restore_job_resource(UAContext *ua);
146 CLIENT *select_client_resource(UAContext *ua);
147 FILESET *select_fileset_resource(UAContext *ua);
148 int select_pool_and_media_dbr(UAContext *ua, POOL_DBR *pr, MEDIA_DBR *mr);
149 int select_media_dbr(UAContext *ua, MEDIA_DBR *mr);
150 int select_pool_dbr(UAContext *ua, POOL_DBR *pr);
151 int select_client_dbr(UAContext *ua, CLIENT_DBR *cr);
153 void start_prompt(UAContext *ua, char *msg);
154 void add_prompt(UAContext *ua, char *prompt);
155 int do_prompt(UAContext *ua, char *automsg, char *msg, char *prompt, int max_prompt);
156 CAT *get_catalog_resource(UAContext *ua);
157 STORE *get_storage_resource(UAContext *ua, int use_default);
158 int get_media_type(UAContext *ua, char *MediaType, int max_media);
159 int get_pool_dbr(UAContext *ua, POOL_DBR *pr);
160 int get_client_dbr(UAContext *ua, CLIENT_DBR *cr);
161 POOL *get_pool_resource(UAContext *ua);
162 POOL *select_pool_resource(UAContext *ua);
163 CLIENT *get_client_resource(UAContext *ua);
164 int get_job_dbr(UAContext *ua, JOB_DBR *jr);
166 int find_arg_keyword(UAContext *ua, char **list);
167 int find_arg(UAContext *ua, char *keyword);
168 int find_arg_with_value(UAContext *ua, char *keyword);
169 int do_keyword_prompt(UAContext *ua, char *msg, char **list);
170 int confirm_retention(UAContext *ua, utime_t *ret, char *msg);
173 void user_select_files_from_tree(TREE_CTX *tree);
174 int insert_tree_handler(void *ctx, int num_fields, char **row);
177 int prune_files(UAContext *ua, CLIENT *client);
178 int prune_jobs(UAContext *ua, CLIENT *client, int JobType);
179 int prune_volume(UAContext *ua, MEDIA_DBR *mr);
182 int purge_jobs_from_volume(UAContext *ua, MEDIA_DBR *mr);