@@ -186,6 +186,31 @@ let dm_exists name = match Devmapper.Linux.stat name with
186186let dev_path_of name = " /dev/" ^ vg ^ " /" ^ name
187187let mapper_path_of name = " /dev/mapper/" ^ vg ^ " -" ^ name
188188
189+ let lvchange_addtag =
190+ " lvchange vg/lv [--addtag|--removetag]: check that we can add tags" > ::
191+ fun () ->
192+ xenvm [ " lvcreate" ; " -n" ; " test" ; " -L" ; " 3" ; vg ] |> ignore_string;
193+ assert_lv_exists ~expected_size_in_extents: 1L " test" ;
194+ xenvm [ " lvchange" ; vg ^ " /test" ; " --addtag" ; " hidden" ] |> ignore_string;
195+ let vg_metadata, lv_metadata = Lwt_main. run (Client. get_lv " test" ) in
196+ let tags = List. map Lvm.Name.Tag. to_string lv_metadata.Lvm.Lv. tags in
197+ if not (List. mem " hidden" tags)
198+ then failwith " Failed to add 'hidden' tag" ;
199+ xenvm [ " lvremove" ; vg ^ " /test" ] |> ignore_string
200+
201+ let lvchange_deltag =
202+ " lvchange vg/lv [--addtag|--deltag]: check that we can add and remove tags" > ::
203+ fun () ->
204+ xenvm [ " lvcreate" ; " -n" ; " test" ; " -L" ; " 3" ; vg ] |> ignore_string;
205+ assert_lv_exists ~expected_size_in_extents: 1L " test" ;
206+ xenvm [ " lvchange" ; vg ^ " /test" ; " --addtag" ; " hidden" ] |> ignore_string;
207+ xenvm [ " lvchange" ; vg ^ " /test" ; " --deltag" ; " hidden" ] |> ignore_string;
208+ let vg_metadata, lv_metadata = Lwt_main. run (Client. get_lv " test" ) in
209+ let tags = List. map Lvm.Name.Tag. to_string lv_metadata.Lvm.Lv. tags in
210+ if List. mem " hidden" tags
211+ then failwith " Failed to remove 'hidden' tag" ;
212+ xenvm [ " lvremove" ; vg ^ " /test" ] |> ignore_string
213+
189214let lvchange_n =
190215 " lvchange -an <device>: check that we can deactivate a volume" > ::
191216 fun () ->
@@ -231,6 +256,8 @@ let xenvmd_suite = "Commands which require xenvmd" >::: [
231256 lvcreate_l;
232257 lvcreate_percent;
233258 lvcreate_toobig;
259+ lvchange_addtag;
260+ lvchange_deltag;
234261 lvchange_n;
235262 lvextend_toobig;
236263 vgs_online;
0 commit comments