blob: a5d5cd9ba527dd59a2bcc599eda50a50bbfb42d4 [file] [log] [blame] [raw]
#ifdef HAVE_PLOOP
#ifndef __SNAPSHOT_H__
#define __SNAPSHOT_H__
#include "types.h"
#include "res.h"
struct vzctl_snapshot_data {
int current;
char *guid;
char *parent_guid;
char *name;
char *date;
char *desc;
};
struct vzctl_snapshot_tree {
struct vzctl_snapshot_data **snapshots;
int nsnapshots;
};
struct vzctl_snapshot_param;
#define SNAPSHOT_XML "Snapshots.xml"
#define GET_SNAPSHOT_XML(buf, ve_private) \
snprintf(buf, sizeof(buf), "%s/" SNAPSHOT_XML, ve_private);
#define GET_SNAPSHOT_XML_TMP(buf, ve_private) \
snprintf(buf, sizeof(buf), "%s/" SNAPSHOT_XML ".tmp", ve_private);
/* src/lib/snapshot.c */
void vzctl_free_snapshot_tree(struct vzctl_snapshot_tree *tree);
struct vzctl_snapshot_tree *vzctl_alloc_snapshot_tree(void);
int vzctl_add_snapshot_tree_entry(struct vzctl_snapshot_tree *tree, int current,
const char *guid, const char *parent_guid, const char *name,
const char *date, const char *desc);
void vzctl_del_snapshot_tree_entry(struct vzctl_snapshot_tree *tree, const char *guid);
int vzctl_add_snapshot(struct vzctl_snapshot_tree *tree, const char *guid,
const struct vzctl_snapshot_param *param);
void vzctl_snapshot_tree_set_current(struct vzctl_snapshot_tree *tree, const char *guid);
int vzctl_find_snapshot_by_guid(struct vzctl_snapshot_tree *tree, const char *guid);
/* src/lib/xml.c */
int vzctl_read_snapshot_tree(const char *fname, struct vzctl_snapshot_tree *tree);
int vzctl_store_snapshot_tree(const char *fname, struct vzctl_snapshot_tree *tree);
/* src/snapshot.c */
int is_snapshot_supported(const fs_param *fs);
int vzctl_env_create_snapshot(vps_handler *h, envid_t veid, const fs_param *fs,
const struct vzctl_snapshot_param *param);
int vzctl_env_switch_snapshot(vps_handler *h, envid_t veid, vps_param *g_p,
const struct vzctl_snapshot_param *param);
int vzctl_env_delete_snapshot(vps_handler *h, envid_t veid, const fs_param *fs,
const char *guid);
int vzctl_env_mount_snapshot(unsigned veid, const fs_param *fs, char *mnt,
char *guid);
int vzctl_env_umount_snapshot(unsigned veid, const fs_param *fs,
char *guid);
/* src/snapshot-list.c */
int vzctl_env_snapshot_list(int argc, char **argv, int envid,
const struct fs_param *fs);
#endif /* __SNAPSHOT_H__ */
#endif /* HAVE_PLOOP */