From 132fc324c633ee95ca9ac8d00fb27fe5c4df6a3a Mon Sep 17 00:00:00 2001 From: Daniel Badea Date: Tue, 30 May 2017 21:52:52 +0000 Subject: [PATCH] US-96914 reuse existing drbd-cinder resource Trying to initialize and enable DRBD resource fails in "drbdadm create-md" when the disk already contains meta data. In this case "drbdadm adjust" should be called. --- manifests/resource/up.pp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/manifests/resource/up.pp b/manifests/resource/up.pp index f9de8ab..160c8c2 100644 --- a/manifests/resource/up.pp +++ b/manifests/resource/up.pp @@ -14,7 +14,7 @@ define drbd::resource::up ( exec { "initialize DRBD metadata for ${name}": command => "yes yes | drbdadm create-md ${name}", onlyif => "test -e ${disk}", - unless => "drbdadm dump-md ${name} || (drbdadm cstate ${name} | egrep -q '^(Sync|Connected|WFConnection|StandAlone|Verify)')", + unless => "drbdadm dump-md ${name} || (drbdadm cstate ${name} | egrep -q '^(Sync|Connected|WFConnection|StandAlone|Verify)') || (drbdadm show-gi ${name} | grep 'meta-data: need apply-al')", before => Service['drbd'], require => [ Exec['modprobe drbd'], @@ -26,6 +26,7 @@ define drbd::resource::up ( exec { "enable DRBD resource ${name}": command => "drbdadm up ${name}", onlyif => "drbdadm dstate ${name} | egrep -q '^(Diskless/|Unconfigured|Consistent)'", + unless => "drbdadm show-gi ${name} | grep 'meta-data: need apply-al'", before => Service['drbd'], require => [ Exec["initialize DRBD metadata for ${name}"], @@ -34,6 +35,16 @@ define drbd::resource::up ( notify => Service['drbd'], } + exec { "reuse existing DRBD resoure ${name}": + command => "drbdadm adjust ${name}", + onlyif => "test -e ${disk} && (drbdadm show-gi ${name} | grep 'meta-data: need apply-al')", + before => Service['drbd'], + require => [ + Exec['modprobe drbd'], + Concat["/etc/drbd.d/${name}.res"], + ], + notify => Service['drbd'], + } # these resources should only be applied if we are configuring the # primary node in our HA setup -- 1.8.3.1