[lvm-devel] LVM2 ./WHATS_NEW lib/format_text/archive.c lib ...
bmr at sourceware.org
bmr at sourceware.org
Fri Jun 8 22:38:49 UTC 2007
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: bmr at sourceware.org 2007-06-08 22:38:48
Modified files:
. : WHATS_NEW
lib/format_text: archive.c archiver.c archiver.h format-text.h
tools : vgcfgrestore.c
Log message:
Allow vgcfgrestore to list metadata backup files using -f
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.624&r2=1.625
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archive.c.diff?cvsroot=lvm2&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archiver.c.diff?cvsroot=lvm2&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archiver.h.diff?cvsroot=lvm2&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/format-text.h.diff?cvsroot=lvm2&r1=1.20&r2=1.21
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/vgcfgrestore.c.diff?cvsroot=lvm2&r1=1.13&r2=1.14
--- LVM2/WHATS_NEW 2007/06/06 19:40:27 1.624
+++ LVM2/WHATS_NEW 2007/06/08 22:38:48 1.625
@@ -1,5 +1,6 @@
Version 2.02.26 -
=================================
+ Allow vgcfgrestore to list metadata backup files using -f
Add vg_check_status to consolidate vg status checks and error messages.
Add pvdisplay --maps implementation.
Fix vgcfgrestore man pg to show mandatory VG name and remove LVM1 options.
--- LVM2/lib/format_text/archive.c 2007/01/25 14:37:48 1.25
+++ LVM2/lib/format_text/archive.c 2007/06/08 22:38:48 1.26
@@ -362,6 +362,22 @@
return 1;
}
+int archive_list_file(struct cmd_context *cmd, const char *file)
+{
+ struct archive_file af;
+
+ af.path = (char *)file;
+
+ if (!path_exists(af.path)) {
+ log_err("Archive file %s not found.", af.path);
+ return 0;
+ }
+
+ _display_archive(cmd, &af);
+
+ return 1;
+}
+
int backup_list(struct cmd_context *cmd, const char *dir, const char *vgname)
{
struct archive_file af;
--- LVM2/lib/format_text/archiver.c 2006/08/21 12:54:52 1.5
+++ LVM2/lib/format_text/archiver.c 2007/06/08 22:38:48 1.6
@@ -148,6 +148,17 @@
return r1 && r2;
}
+int archive_display_file(struct cmd_context *cmd, const char *file)
+{
+ int r;
+
+ init_partial(1);
+ r = archive_list_file(cmd, file);
+ init_partial(0);
+
+ return r;
+}
+
int backup_init(struct cmd_context *cmd, const char *dir)
{
if (!(cmd->backup_params = dm_pool_zalloc(cmd->libmem,
--- LVM2/lib/format_text/archiver.h 2005/05/17 13:46:37 1.1
+++ LVM2/lib/format_text/archiver.h 2007/06/08 22:38:48 1.2
@@ -38,6 +38,7 @@
void archive_enable(struct cmd_context *cmd, int flag);
int archive(struct volume_group *vg);
int archive_display(struct cmd_context *cmd, const char *vg_name);
+int archive_display_file(struct cmd_context *cmd, const char *file);
int backup_init(struct cmd_context *cmd, const char *dir);
void backup_exit(struct cmd_context *cmd);
--- LVM2/lib/format_text/format-text.h 2006/05/11 17:58:58 1.20
+++ LVM2/lib/format_text/format-text.h 2007/06/08 22:38:48 1.21
@@ -33,6 +33,7 @@
* Displays a list of vg backups in a particular archive directory.
*/
int archive_list(struct cmd_context *cmd, const char *dir, const char *vgname);
+int archive_list_file(struct cmd_context *cmd, const char *file);
int backup_list(struct cmd_context *cmd, const char *dir, const char *vgname);
/*
--- LVM2/tools/vgcfgrestore.c 2007/03/09 20:47:41 1.13
+++ LVM2/tools/vgcfgrestore.c 2007/06/08 22:38:48 1.14
@@ -19,26 +19,27 @@
{
char *vg_name;
- if (argc != 1) {
+ if (argc == 1) {
+ vg_name = skip_dev_dir(cmd, argv[0], NULL);
+ if (!validate_name(vg_name)) {
+ log_error("Volume group name \"%s\" is invalid", vg_name);
+ return ECMD_FAILED;
+ }
+ } else if (!(arg_count(cmd, list_ARG) && arg_count(cmd, file_ARG))) {
log_err("Please specify a *single* volume group to restore.");
return ECMD_FAILED;
}
- vg_name = skip_dev_dir(cmd, argv[0], NULL);
-
- if (!validate_name(vg_name)) {
- log_error("Volume group name \"%s\" is invalid", vg_name);
- return ECMD_FAILED;
- }
-
/*
* FIXME: overloading the -l arg for now to display a
* list of archive files for a particular vg
*/
if (arg_count(cmd, list_ARG)) {
- if (!archive_display(cmd, vg_name))
+ if (!(arg_count(cmd,file_ARG) ?
+ archive_display_file(cmd,
+ arg_str_value(cmd, file_ARG, "")) :
+ archive_display(cmd, vg_name)))
return ECMD_FAILED;
-
return ECMD_PROCESSED;
}
More information about the lvm-devel
mailing list