Hello community,
here is the log from the commit of package yast2-drbd for openSUSE:Factory
checked in at Thu Dec 18 15:37:51 CET 2008.
--------
--- yast2-drbd/yast2-drbd.changes 2008-11-19 10:54:39.000000000 +0100
+++ /mounts/work_src_done/STABLE/yast2-drbd/yast2-drbd.changes 2008-12-18 15:10:25.000000000 +0100
@@ -0,0 +1,6 @@
+Thu Dec 18 22:09:29 CST 2008 - xwhu@suse.de
+
+- bnc#459742: drbd module crashes in ncurses mode
+- bnc#459747: drbd module doesn't update to the latest drbd.conf
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
New:
----
update-agent-latest.diff
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ yast2-drbd.spec ++++++
--- /var/tmp/diff_new_pack.y30438/_old 2008-12-18 15:37:44.000000000 +0100
+++ /var/tmp/diff_new_pack.y30438/_new 2008-12-18 15:37:44.000000000 +0100
@@ -21,7 +21,7 @@
Name: yast2-drbd
Url: http://en.opensuse.org/YaST
Version: 2.13.1
-Release: 215
+Release: 216
License: GPL v2 or later
Group: System/YaST
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -36,6 +36,7 @@
Patch7: bug-291490_typo.patch
Patch8: setnextbutton.diff
Patch9: bug-442758_set-button-lable.patch
+Patch10: update-agent-latest.diff
Prefix: /usr
BuildRequires: perl-XML-Writer ruby ruby-racc update-desktop-files yast2 yast2-devtools yast2-testsuite
Requires: yast2
@@ -65,6 +66,7 @@
%patch7
%patch8 -p1
%patch9 -p1
+%patch10 -p1
%build
%{prefix}/bin/y2tool y2autoconf
@@ -105,6 +107,9 @@
%doc %{prefix}/share/doc/packages/yast2-drbd
%changelog
+* Thu Dec 18 2008 xwhu@suse.de
+- bnc#459742: drbd module crashes in ncurses mode
+- bnc#459747: drbd module doesn't update to the latest drbd.conf
* Wed Nov 19 2008 cmeng@novell.com
- bnc#442758: use another API to set the button lable
* Thu Oct 02 2008 xwhu@suse.de
++++++ bug-442758_set-button-lable.patch ++++++
--- /var/tmp/diff_new_pack.y30438/_old 2008-12-18 15:37:44.000000000 +0100
+++ /var/tmp/diff_new_pack.y30438/_new 2008-12-18 15:37:44.000000000 +0100
@@ -1,8 +1,8 @@
Index: yast2-drbd-2.13.1/src/wizards.ycp
===================================================================
---- yast2-drbd-2.13.1.orig/src/wizards.ycp
-+++ yast2-drbd-2.13.1/src/wizards.ycp
-@@ -67,11 +67,11 @@ any TabSequence()
+--- yast2-drbd-2.13.1.orig/src/wizards.ycp 2008-12-18 13:25:14.000000000 +0800
++++ yast2-drbd-2.13.1/src/wizards.ycp 2008-12-18 13:25:36.000000000 +0800
+@@ -67,11 +67,11 @@
Wizard::CreateTree(tree, "DRBD");
// Buttons redefinition
@@ -12,7 +12,7 @@
if (UI::WidgetExists(`id(`wizardTree))) {
- Wizard::ReplaceBackButton(`PushButton(`id(`help), `opt(`key_F1), Label::HelpButton()));
- Wizard::ReplaceAbortButton(`PushButton(`id(`abort), `opt(`key_F9), Label::CancelButton()));
-+ Wizard::SetBackButton(`help, Label::HelpButton());
++ Wizard::SetBackButton(`help_button, Label::HelpButton());
+ Wizard::SetAbortButton(`abort, Label::CancelButton());
} else {
UI::WizardCommand(`SetNextButtonLabel( Label::FinishButton() ) );
++++++ update-agent-latest.diff ++++++
Index: yast2-drbd-2.13.1/agents/drbd.rb.yy
===================================================================
--- yast2-drbd-2.13.1.orig/agents/drbd.rb.yy 2008-12-18 22:07:52.000000000 +0800
+++ yast2-drbd-2.13.1/agents/drbd.rb.yy 2008-12-18 22:07:52.000000000 +0800
@@ -1,20 +1,31 @@
class DrbdParser
-token TK_GLOBAL TK_RESOURCE TK_ON TK_NET TK_DISK_S TK_SYNCER TK_STARTUP TK_DISABLE_IO_HINTS TK_DISABLE_IP_VERIFICATION TK_PROTOCOL TK_INCON_DEGR_CMD TK_ADDRESS TK_DISK TK_DEVICE TK_META_DISK TK_MINOR_COUNT TK_INTEGER TK_STRING TK_ON_IO_ERROR TK_SIZE TK_TIMEOUT TK_CONNECT_INT TK_PING_INT TK_MAX_BUFFERS TK_IPADDR TK_UNPLUG_WATERMARK TK_MAX_EPOCH_SIZE TK_SNDBUF_SIZE TK_SKIP_SYNC TK_USE_CSUMS TK_RATE TK_SYNC_GROUP TK_AL_EXTENTS TK_WFC_TIMEOUT TK_DEGR_WFC_TIMEOUT TK_KO_COUNT TK_ON_DISCONNECT TK_DIALOG_REFRESH
+token TK_GLOBAL TK_RESOURCE TK_ON TK_NET TK_DISK_S TK_SYNCER TK_STARTUP TK_DISABLE_IP_VERIFICATION TK_PROTOCOL TK_ADDRESS TK_DISK TK_DEVICE TK_META_DISK TK_MINOR_COUNT TK_INTEGER TK_STRING TK_ON_IO_ERROR TK_SIZE TK_TIMEOUT TK_CONNECT_INT TK_PING_INT TK_MAX_BUFFERS TK_IPADDR TK_UNPLUG_WATERMARK TK_MAX_EPOCH_SIZE TK_SNDBUF_SIZE TK_RATE TK_AL_EXTENTS TK_WFC_TIMEOUT TK_DEGR_WFC_TIMEOUT TK_KO_COUNT TK_ON_DISCONNECT TK_DIALOG_REFRESH TK_USAGE_COUNT TK_COMMON TK_HANDLERS TK_FENCING TK_USE_BMBV TK_NO_DISK_BARRIER TK_NO_DISK_FLUSHES TK_NO_DISK_DRAIN TK_NO_MD_FLUSHES TK_MAX_BIO_BVECS TK_PINT_TIMEOUT TK_ALLOW_TWO_PRIMARIES TK_CRAM_HMAC_ALG TK_SHARED_SECRET TK_AFTER_SB_0PRI TK_AFTER_SB_1PRI TK_AFTER_SB_2PRI TK_DATA_INTEGRITY_ALG TK_RR_CONFLICT TK_NO_TCP_CORK TK_CPU_MASK TK_VERIFY_ALG TK_AFTER TK_FLEXIBLE_META_DISK TK_PRI_ON_INCON_DEGR TK_PRI_LOST_AFTER_SB TK_PRI_LOST TK_OUTDATE_PEER TK_LOCAL_IO_ERROR TK_SPLIT_BRAIN TK_BEFORE_RESYNC_TARGET TK_AFTER_RESYNC_TARGET TK_WAIT_AFTER_SB TK_BECOME_PRIMARY_ON TK_IPV6ADDR TK_IPV6
rule
- config: global_sec resources { $drbd['global'] = val[0]; $drbd['resources'] = val[1]; return $drbd; }
+ config: global_sec common_sec resources { $drbd['global'] = val[0]; $drbd['common'] = val[1]; $drbd['resources'] = val[2]; return $drbd; }
global_sec: /* none */ { return {}; }
| TK_GLOBAL '{' glob_stmts '}' { return val[2]; }
glob_stmts: /* none */ { return {}; }
| glob_stmts glob_stmt ';' { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
- glob_stmt: TK_DISABLE_IO_HINTS { return ["#{val[0]}", true]; }
- | TK_DISABLE_IP_VERIFICATION { return ["#{val[0]}", true]; }
+ glob_stmt: TK_USAGE_COUNT TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_DISABLE_IP_VERIFICATION { return ["#{val[0]}", true]; }
| TK_MINOR_COUNT TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_DIALOG_REFRESH TK_STRING { return ["#{val[0]}", val[1]];}
+ common_sec: /* none */ { return {}; }
+ | TK_COMMON '{' common_stmts '}' { return val[2]; }
+ common_stmts: /* none */ { return {}; }
+ | common_stmts common_stmt { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
+
+ common_stmt: TK_DISK_S disk_stmts '}' { return ["#{val[0]}", val[1]]; }
+ | TK_NET '{' net_stmts '}' { return ["#{val[0]}", val[2]]; }
+ | TK_SYNCER '{' sync_stmts '}' { return ["#{val[0]}", val[2]]; }
+ | TK_STARTUP '{' startup_stmts '}' { return ["#{val[0]}", val[2]]; }
+ | TK_HANDLERS '{' handlers_stmts '}' { return ["#{val[0]}", val[2]]; }
+
resources: /* none */ { return {}; }
| resources resource { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
@@ -23,8 +34,8 @@
resource_name: TK_STRING { return val[0]; }
res_stmts: /* none */ { return {}; }
- | res_stmts res_stmt ';' { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
- | res_stmts section {nk = val[1][0];
+ | res_stmts res_stmt ';' { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
+ | res_stmts section {nk = val[1][0];
if nk == "on" then
if (!val[0]["on"]) then val[0]["on"] = {}; end
val[0]["on"][val[1][1]] = val[1][2];
@@ -34,12 +45,15 @@
return val[0]; }
res_stmt: TK_PROTOCOL TK_STRING { return ["#{val[0]}", val[1]]; }
- | TK_INCON_DEGR_CMD TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_DEVICE TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_META_DISK meta_disk_and_index { return ["#{val[0]}", val[1]]; }
+ | TK_DISK TK_STRING { return ["#{val[0]}", val[1]]; }
section: TK_DISK_S disk_stmts '}' { return ["#{val[0]}", val[1]]; }
| TK_NET '{' net_stmts '}' { return ["#{val[0]}", val[2]]; }
| TK_SYNCER '{' sync_stmts '}' { return ["#{val[0]}", val[2]]; }
| TK_STARTUP '{' startup_stmts '}' { return ["#{val[0]}", val[2]]; }
+ | TK_HANDLERS '{' handlers_stmts '}' { return ["#{val[0]}", val[2]]; }
| TK_ON hostname '{' host_stmts '}' { return ["#{val[0]}", "#{val[1]}", val[3]]; }
hostname: TK_STRING { return val[0]; }
@@ -49,6 +63,13 @@
disk_stmt: TK_ON_IO_ERROR TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_SIZE TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_FENCING TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_USE_BMBV TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_NO_DISK_BARRIER TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_NO_DISK_FLUSHES TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_NO_DISK_DRAIN TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_NO_MD_FLUSHES TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_MAX_BIO_BVECS TK_STRING { return ["#{val[0]}", val[1]]; }
net_stmts: /* none */ { return {}; }
| net_stmts net_stmt ';' { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
@@ -56,20 +77,29 @@
net_stmt: TK_TIMEOUT TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_CONNECT_INT TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_PING_INT TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_PINT_TIMEOUT TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_MAX_BUFFERS TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_UNPLUG_WATERMARK TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_MAX_EPOCH_SIZE TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_SNDBUF_SIZE TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_KO_COUNT TK_STRING { return ["#{val[0]}", val[1]]; }
- | TK_ON_DISCONNECT TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_ALLOW_TWO_PRIMARIES { return ["#{val[0]}", true]; }
+ | TK_CRAM_HMAC_ALG TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_SHARED_SECRET TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_AFTER_SB_0PRI TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_AFTER_SB_1PRI TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_AFTER_SB_2PRI TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_DATA_INTEGRITY_ALG TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_RR_CONFLICT TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_NO_TCP_CORK { return ["#{val[0]}", true]; }
sync_stmts: /* none */ { return {}; }
| sync_stmts sync_stmt ';' { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
- sync_stmt: TK_SKIP_SYNC { return ["#{val[0]}", true];}
- | TK_USE_CSUMS { return ["#{val[0]}", true];}
- | TK_RATE TK_STRING { return ["#{val[0]}", val[1]]; }
- | TK_SYNC_GROUP TK_STRING { return ["#{val[0]}", val[1]]; }
+ sync_stmt: TK_RATE TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_CPU_MASK TK_STRING { return ["#{val[0]}", vavl[1]]; }
+ | TK_VERIFY_ALG TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_AFTER TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_AL_EXTENTS TK_STRING { return ["#{val[0]}", val[1]]; }
host_stmts: /* none */ { return {}; }
@@ -79,16 +109,35 @@
| TK_DEVICE TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_ADDRESS ip_and_port { return ["#{val[0]}", val[1]]; }
| TK_META_DISK meta_disk_and_index { return ["#{val[0]}", val[1]]; }
+ | TK_FLEXIBLE_META_DISK flexible_meta_disk { return ["#{val[0]}", val[1]]; }
+
+ handlers_stmts: /* none */ { return {}; }
+ | handlers_stmts handlers_stmt ';' { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
+
+ handlers_stmt: TK_PRI_ON_INCON_DEGR TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_PRI_LOST_AFTER_SB TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_PRI_LOST TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_OUTDATE_PEER TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_LOCAL_IO_ERROR TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_SPLIT_BRAIN TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_BEFORE_RESYNC_TARGET TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_AFTER_RESYNC_TARGET TK_STRING { return ["#{val[0]}", val[1]]; }
ip_and_port: TK_STRING ':' TK_STRING { return "#{val[0]}:#{val[2]}"; }
+ | TK_IPV6 TK_IPV6ADDR ":" TK_STRING { return "#{val[0]} #{val[1]}:#{val[3]}"; }
+ | TK_STRING TK_STRING ':' TK_STRING { return "#{val[0]} #{val[1]}:#{val[3]}"; }
meta_disk_and_index: TK_STRING TK_STRING { return "#{val[0]} #{val[1]}"; }
| TK_STRING { return val[0]; }
+ flexible_meta_disk: TK_STRING { return val[0]; }
+
startup_stmts: /* */ { return {}; }
| startup_stmts startup_stmt ';' { nk = val[1][0]; val[0][nk] = val[1][1]; return val[0]; }
startup_stmt: TK_WFC_TIMEOUT TK_STRING { return ["#{val[0]}", val[1]]; }
+ | TK_WAIT_AFTER_SB { return ["#{val[0]}", true]; }
+ | TK_BECOME_PRIMARY_ON TK_STRING { return ["#{val[0]}", val[1]]; }
| TK_DEGR_WFC_TIMEOUT TK_STRING { return ["#{val[0]}", val[1]]; }
end
@@ -98,21 +147,17 @@
---- inner
def parse(str)
-# @yydebug = true
+ @yydebug = false
@q = []
until str.empty? || !str
case str
when /\A\s+/
when /\Adisable-ip-verification/
@q.push [:TK_DISABLE_IP_VERIFICATION, 'disable-ip-verification']
- when /\Adisable-io-hints/
- @q.push [:TK_DISABLE_IO_HINTS, 'disable-io-hints']
- when /\Aincon-degr-cmd/
- @q.push [:TK_INCON_DEGR_CMD, 'incon-degr-cmd']
+ when /\Ausage-count/
+ @q.push [:TK_USAGE_COUNT, 'usage-count']
when /\Adialog-refresh/
@q.push [:TK_DIALOG_REFRESH, 'dialog-refresh']
- when /\Aon-disconnect/
- @q.push [:TK_ON_DISCONNECT, 'on-disconnect']
when /\Aon-io-error/
@q.push [:TK_ON_IO_ERROR, 'on-io-error']
when /\Aglobal/
@@ -121,10 +166,12 @@
@q.push [:TK_MINOR_COUNT, 'minor-count']
when /\Aresource/
@q.push [:TK_RESOURCE, 'resource']
+ when /\Acommon/
+ @q.push [:TK_COMMON, 'common']
when /\Aprotocol/
@q.push [:TK_PROTOCOL, 'protocol']
when /\Adisk\s*\{/
- @q.push [:TK_DISK_S, 'disk']
+ @q.push [:TK_DISK_S, 'disk_s']
when /\Adisk/
@q.push [:TK_DISK, 'disk']
when /\Anet/
@@ -133,12 +180,80 @@
@q.push [:TK_SYNCER, 'syncer']
when /\Astartup/
@q.push [:TK_STARTUP, 'startup']
+ when /\Ahandlers/
+ @q.push [:TK_HANDLERS, 'handlers']
+ when /\Afencing/
+ @q.push [:TK_FENCING, 'fencing']
+ when /\Ause-bmbv/
+ @q.push [:TK_USE_BMBV, 'use-bmbv']
+ when /\Ano-disk-barrier/
+ @q.push [:TK_NO_DISK_BARRIER, 'no-disk-barrier']
+ when /\Ano-disk-flushes/
+ @q.push [:TK_NO_DISK_FLUSHES, 'no-disk-flushes']
+ when /\Ano-disk-drain/
+ @q.push [:TK_NO_DISK_DRAIN, 'no-disk-drain']
+ when /\Ano-md-flushes/
+ @q.push [:TK_NO_MD_FLUSHES, 'no-md-flushes']
+ when /\Amax-bio-bvecs/
+ @q.push [:TK_MAX_BIO_BVECS, 'max-bio-bvecs']
+ when /\Aping-timeout/
+ @q.push [:TK_PING_TIMEOUT, 'ping-timeout']
+ when /\Aallow-two-primaries/
+ @q.push [:TK_ALLOW_TWO_PRIMARIES, 'allow-two-primaries']
+ when /\Acram-hmac-alg/
+ @q.push [:TK_CRAM_HMAC_ALG, 'cram-hmac-alg']
+ when /\Ashared-secret/
+ @q.push [:TK_SHARED_SECRET, 'shared-secret']
+ when /\Aafter-sb-0pri/
+ @q.push [:TK_AFTER_SB_0PRI, 'after-sb-0pri']
+ when /\Aafter-sb-1pri/
+ @q.push [:TK_AFTER_SB_0PRI, 'after-sb-1pri']
+ when /\Aafter-sb-2pri/
+ @q.push [:TK_AFTER_SB_0PRI, 'after-sb-2pri']
+ when /\Adata-integrity-alg/
+ @q.push [:TK_DATA_INTEGRITY_ALG, 'data-integrity-alg']
+ when /\Arr-conflict/
+ @q.push [:TK_RR_CONFLICT, 'rr-conflict']
+ when /\Apri-on-incon-degr/
+ @q.push [:TK_PRI_ON_INCON_DEGR, 'pri-on-incon-degr']
+ when /\Apri-lost-after-sb/
+ @q.push [:TK_PRI_LOST_AFTER_SB, 'pri-lost-after-sb']
+ when /\Apri-lost/
+ @q.push [:TK_PRI_LOST, 'pri-lost']
+ when /\Aoutdate-peer/
+ @q.push [:TK_OUTDATE_PEER, 'outdate-peer']
+ when /\Alocal-io-error/
+ @q.push [:TK_LOCAL_IO_ERROR, 'local-io-error']
+ when /\Asplit-brain/
+ @q.push [:TK_SPLIT_BRAIN, 'split-brain']
+ when /\Abefore-resync-target/
+ @q.push [:TK_BEFORE_RESYNC_TARGET, 'before-rsync-target']
+ when /\Aafter-resync-target/
+ @q.push [:TK_AFTER_RESYNC_TARGET, 'after-resync-target']
+ when /\Await-after-sb/
+ @q.push [:TK_WAIT_AFTER_SB, 'wait-after-sb']
+ when /\Abecome-primary-on/
+ @q.push [:TK_BECOME_PRIMARY_ON, 'become-primary-on']
+ when /\Ano-tcp-cork/
+ @q.push [:TK_NO_TCP_CORK, 'no-tcp-cork']
+ when /\Acpu-mask/
+ @q.push [:TK_CPU_MASK, 'cpu-mask']
+ when /\Averify-alg/
+ @q.push [:TK_VERIFY_ALG, 'verify-alg']
when /\Asize/
@q.push [:TK_SIZE, 'size']
when /\Atimeout/
@q.push [:TK_TIMEOUT, 'timeout']
when /\Aconnect-int/
@q.push [:TK_CONNECT_INT, 'connect-int']
+ when /\Aafter-sb-0pri/
+ @q.push [:TK_AFTER_SB_0PRI, 'after-sb-0pri']
+ when /\Aafter-sb-1pri/
+ @q.push [:TK_AFTER_SB_0PRI, 'after-sb-1pri']
+ when /\Aafter-sb-2pri/
+ @q.push [:TK_AFTER_SB_0PRI, 'after-sb-2pri']
+ when /\Arr-conflict/
+ @q.push [:TK_RR_CONFLICT, 'rr-conflict']
when /\Aping-int/
@q.push [:TK_PING_INT, 'ping-int']
when /\Amax-buffers/
@@ -151,32 +266,34 @@
@q.push [:TK_SNDBUF_SIZE, 'sndbuf-size']
when /\Ako-count/
@q.push [:TK_KO_COUNT, 'ko-count']
- when /\Askip-sync/
- @q.push [:TK_SKIP_SYNC, 'skip-sync']
- when /\Ause-csums/
- @q.push [:TK_USE_CSUMS, 'use-csums']
when /\Arate/
@q.push [:TK_RATE, 'rate']
- when /\Agroup/
- @q.push [:TK_SYNC_GROUP, 'group']
when /\Aal-extents/
@q.push [:TK_AL_EXTENTS, 'al-extents']
+ when /\Aafter/
+ @q.push [:TK_AFTER, 'after']
when /\Adevice/
@q.push [:TK_DEVICE, 'device']
when /\Aaddress/
@q.push [:TK_ADDRESS, 'address']
when /\Ameta-disk/
@q.push [:TK_META_DISK, 'meta-disk']
- when /\Awfc-timeout/
- @q.push [:TK_WFC_TIMEOUT, 'wfc-timeout']
+ when /\Aflexible-meta-disk/
+ @q.push [:TK_FLEXIBLE_META_DISK, 'flexible-meta-disk']
when /\Adegr-wfc-timeout/
@q.push [:TK_DEGR_WFC_TIMEOUT, 'degr-wfc-timeout']
+ when /\Awfc-timeout/
+ @q.push [:TK_WFC_TIMEOUT, 'wfc-timeout']
+ when /\Aipv6/
+ @q.push [:TK_IPV6, 'ipv6']
when /\Aon\s*/
@q.push [:TK_ON, 'on']
when /\A"[^"]*"/
@q.push [:TK_STRING, $&]
+ when /\A\[[\w\.\/:]+:[\w\.\/:]+\]/
+ @q.push [:TK_IPV6ADDR, $&]
when /\A[\w\.\/\[\]-]+/
- @q.push [:TK_STRING, $&]
+ @q.push [:TK_STRING, $&]
when /\A.|\n/o
s = $&
@q.push [s, s]
@@ -235,7 +352,7 @@
def doList (path)
if path.length == 0 then
- puts "[ \"global\", \"resources\" ]"
+ puts "[ \"global\", \"resources\", \"common\" ]"
return
end
@@ -331,6 +448,10 @@
errlog path[it]+" is changed to "+path[it].chomp()[1..-2]
path[it]=path[it].chomp()[1..-2]
end
+ if path[it] != "" and path[it][0..1] == "\\\"" then
+ errlog path[it]+" is changed to "+path[it].chomp()[1..-3]+"\""
+ path[it]=path[it].chomp()[1..-3]+"\""
+ end
end
if args[0..1] == "\\\"" then
@@ -431,7 +552,7 @@
if $drbd.has_key?("global") then
file.puts "global {"
$drbd["global"].each_key do |key|
- if key == "disable-ip-verification" or key == "disable-io-hints" then
+ if key == "disable-ip-verification" then
if $drbd["global"][key] == "" or $drbd["global"][key] == "true" then
file.puts " "+key+";"
end
@@ -449,14 +570,10 @@
file.puts " protocol\t"+$drbd["resources"][res_name]["protocol"]+";"
end
- if $drbd["resources"][res_name].has_key?("incon-degr-cmd") then
- file.puts " incon-degr-cmd\t"+$drbd["resources"][res_name]["incon-degr-cmd"]+";"
- end
-
- if $drbd["resources"][res_name].has_key?("disk") then
+ if $drbd["resources"][res_name].has_key?("disk_s") then
file.puts " disk {"
- $drbd["resources"][res_name]["disk"].each_key do |key|
- file.puts " "+key+"\t"+$drbd["resources"][res_name]["disk"][key]+";"
+ $drbd["resources"][res_name]["disk_s"].each_key do |key|
+ file.puts " "+key+"\t"+$drbd["resources"][res_name]["disk_s"][key]+";"
end
file.puts " }"
end
@@ -512,10 +629,12 @@
# `Write (.drbd) means to write the file, other wise, the file is not written anyway
+errlog($drbd.to_s)
+
$stdin.each do |line|
errlog(line)
line.chomp
- cmd = line.gsub(/^`?([a-zA-Z]+)\s.*$/, '\1')
+ cmd = line.gsub(/^`?([a-zA-Z]+)\s+$/, '\1')
path = line.gsub(/^`?([a-zA-Z]+)\s+\(([^,]*)(,.*)?\)$/, '\2').split('.')-[""]-["\n"]
args = line.gsub(/^`?([a-zA-Z]+)\s+\(([^,]*)(,.*)?\)$/, '\3')
if args.length != 0 then
Index: yast2-drbd-2.13.1/src/Drbd.ycp
===================================================================
--- yast2-drbd-2.13.1.orig/src/Drbd.ycp 2008-12-18 22:07:52.000000000 +0800
+++ yast2-drbd-2.13.1/src/Drbd.ycp 2008-12-18 22:08:14.000000000 +0800
@@ -49,9 +49,9 @@
global map resource_config = $[];
global string drbd_dir = "/etc";
global boolean start_daemon = false;
-global map