Revision 58458012

b/src/Ganeti/Storage/Lvm/LVParser.hs
112 112
        <$> uuidP <*> nameP <*> attrP <*> majorP <*> minorP <*> kernelMajorP
113 113
        <*> kernelMinorP <*> sizeP <*> segCountP <*> tagsP <*> modulesP
114 114
        <*> vgUuidP <*> vgNameP <*> segtypeP <*> segStartP <*> segStartPeP
115
        <*> segSizeP <*> segTagsP <*> segPeRangesP <*> devicesP <* A.endOfLine
115
        <*> segSizeP <*> segTagsP <*> segPeRangesP <*> devicesP 
116
        <*> return Nothing <* A.endOfLine
116 117

  
117 118
-- | The parser for a whole diskstatus file.
118 119
lvParser :: Parser [LVInfo]
b/src/Ganeti/Storage/Lvm/Types.hs
54 54
  , simpleField "seg_tags"          [t| String |]
55 55
  , simpleField "seg_pe_ranges"     [t| String |]
56 56
  , simpleField "devices"           [t| String |]
57
  , optionalNullSerField $
58
    simpleField "instance"          [t| String |]
57 59
  ])
b/test/hs/Test/Ganeti/Storage/Lvm/LVParser.hs
49 49
      (negate 1) 253 0 1073741824 1
50 50
      "originstname+instance1.example.com" ""
51 51
      "uZgXit-eiRr-vRqe-xpEo-e9nU-mTuR-9nfVIU" "xenvg" "linear" 0 0 1073741824
52
      "" "/dev/sda5:0-15" "/dev/sda5(0)"
52
      "" "/dev/sda5:0-15" "/dev/sda5(0)" Nothing
53 53
  , LVInfo "5fW5mE-SBSs-GSU0-KZDg-hnwb-sZOC-zZt736"
54 54
      "df9ff3f6-a833-48ff-8bd5-bff2eaeab759.disk0_meta" "-wi-ao" (negate 1)
55 55
      (negate 1) 253 1 134217728 1
56 56
      "originstname+instance1.example.com" ""
57 57
      "uZgXit-eiRr-vRqe-xpEo-e9nU-mTuR-9nfVIU" "xenvg" "linear" 0 0 134217728 ""
58
      "/dev/sda5:16-17" "/dev/sda5(16)"
58
      "/dev/sda5:16-17" "/dev/sda5(16)" Nothing
59 59
  ]
60 60

  
61 61
-- | Serialize a LVInfo in the same format that is output by @lvs@.
62
-- The "instance" field is not serialized because it's not provided by @lvs@
63
-- so it is not part of this test.
62 64
serializeLVInfo :: LVInfo -> String
63 65
serializeLVInfo l = intercalate ";"
64 66
  [ lviUuid l
......
88 90
serializeLVInfos = concatMap serializeLVInfo
89 91

  
90 92
-- | Arbitrary instance for LVInfo.
93
-- The instance is always Nothing because it is not part of the parsed data:
94
-- it is added afterwards from a different source.
91 95
instance Arbitrary LVInfo where
92 96
  arbitrary =
93 97
    LVInfo
......
111 115
      <*> genName        -- seg_tags
112 116
      <*> genName        -- seg_pe_ranges
113 117
      <*> genName        -- devices
118
      <*> return Nothing -- instance
114 119

  
115 120
-- | Test if a randomly generated LV lvs output is properly parsed.
116 121
prop_parse_lvs_lv :: [LVInfo] -> Property

Also available in: Unified diff