chef-ruby-lvm-attrib 0.2.8 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9ff901d114a6960af72733b64adcafb28d876dea7e4ddd5723594ede10cb085b
4
- data.tar.gz: 8c95ac1c2cbcc290e94a067406c2a9261eb235addb0324a4a5d1844c70c55d83
3
+ metadata.gz: 2950a875f1028a2dd7b384592984534a76002bc9150c2f0d44bf69ba73b3e1ca
4
+ data.tar.gz: 9d75105a6e28b9dab08096a49da9ff65d6d3c34fdda0930c3061b84f952d8be9
5
5
  SHA512:
6
- metadata.gz: 9458e2aefcba80569e5ed0d6fa76b3208a65b6f9380c9a4b3c88010365bbd56b3c984fe255a5a18c79c7b8a7c3a049774f3a9cb25d4747fcc732053bc531897c
7
- data.tar.gz: 5dc2e96fadf95bc1b59e4bc5ea07f21f75be0331e7dfc2010239f5086fcde8b435379223ec8a7cd477dae2c24167b2b1febe8b4c6f44057134ae4780ff164c21
6
+ metadata.gz: 0c7c2c1d289603f8808611fdbb667b1689d2374cf74a054d5869e9a0ce44806b0765f35365726f1896d035b3b29c8713f32601f378ca684818b3159ccb0be659
7
+ data.tar.gz: 6f3381c92dcbe90c5e677a8e7e3fab5ae67c2f98c5a05796591330902676666938e1fde671410fc50b6537c88680537e1fe5c4717b16b62025149e2d170833dd
@@ -0,0 +1,50 @@
1
+ # Documentation available at https://expeditor.chef.io/docs/getting-started/
2
+ ---
3
+
4
+ # Slack channel in Chef Software slack to send notifications about build failures, etc
5
+ slack:
6
+ notify_channel: chef-infra-notify
7
+
8
+ # This publish is triggered by the `built_in:publish_rubygems` artifact_action.
9
+ rubygems:
10
+ - chef-ruby-lvm-attrib
11
+
12
+ github:
13
+ # This deletes the GitHub PR branch after successfully merged into the release branch
14
+ delete_branch_on_merge: true
15
+ # The tag format to use (e.g. v1.0.0)
16
+ version_tag_format: "v{{version}}"
17
+ # allow bumping the minor release via label
18
+ minor_bump_labels:
19
+ - "Expeditor: Bump Version Minor"
20
+ # allow bumping the major release via label
21
+ major_bump_labels:
22
+ - "Expeditor: Bump Version Major"
23
+
24
+ changelog:
25
+ rollup_header: Changes not yet released to rubygems.org
26
+
27
+ # These actions are taken, in order they are specified, anytime a Pull Request is merged.
28
+ merge_actions:
29
+ - built_in:bump_version:
30
+ ignore_labels:
31
+ - "Expeditor: Skip Version Bump"
32
+ - "Expeditor: Skip All"
33
+ - bash:.expeditor/update_version.sh:
34
+ only_if: built_in:bump_version
35
+ - built_in:update_changelog:
36
+ ignore_labels:
37
+ - "Expeditor: Skip Changelog"
38
+ - "Expeditor: Skip All"
39
+ - built_in:build_gem:
40
+ only_if: built_in:bump_version
41
+
42
+ pipelines:
43
+ - verify:
44
+ description: Pull Request validation tests
45
+ public: true
46
+
47
+ promote:
48
+ actions:
49
+ - built_in:rollover_changelog
50
+ - built_in:publish_rubygems
@@ -0,0 +1,44 @@
1
+ #!/bin/bash
2
+ #
3
+ # This script runs a passed in command, but first setups up the bundler caching on the repo
4
+
5
+ set -e
6
+
7
+ export USER="root"
8
+
9
+ # make sure we have the aws cli
10
+ apt-get update -y
11
+ apt-get install awscli -y
12
+
13
+ # grab the s3 bundler if it's there and use it for all operations in bundler
14
+ echo "Fetching bundle cache archive from s3://public-cd-buildkite-cache/${BUILDKITE_PIPELINE_SLUG}/${BUILDKITE_LABEL}/bundle.tar.gz"
15
+ aws s3 cp "s3://public-cd-buildkite-cache/${BUILDKITE_PIPELINE_SLUG}/${BUILDKITE_LABEL}/bundle.tar.gz" bundle.tar.gz || echo 'Could not pull the bundler archive from s3 for caching. Builds may be slower than usual as all gems will have to install.'
16
+ aws s3 cp "s3://public-cd-buildkite-cache/${BUILDKITE_PIPELINE_SLUG}/${BUILDKITE_LABEL}/bundle.sha256" bundle.sha256 || echo "Could not pull the sha256 hash of the vendor/bundle directory from s3. Without this we will compress and upload the bundler archive to S3 even if it hasn't changed"
17
+
18
+ echo "Restoring the bundle cache archive to vendor/bundle"
19
+ if [ -f bundle.tar.gz ]; then
20
+ tar -xzf bundle.tar.gz
21
+ fi
22
+ bundle config --local path vendor/bundle
23
+
24
+ bundle install --jobs=7 --retry=3
25
+ bundle exec $1
26
+
27
+ if [[ -f bundle.tar.gz && -f bundle.sha256 ]]; then # dont' check the sha if we're missing either file
28
+ if shasum --check bundle.sha256 --status; then # if the the sha matches we're done
29
+ echo "Bundled gems have not changed. Skipping upload to s3"
30
+ exit
31
+ fi
32
+ fi
33
+
34
+ echo "Generating sha256 hash file of the vendor/bundle directory to ship to s3"
35
+ shasum -a 256 vendor/bundle > bundle.sha256
36
+
37
+ echo "Creating the tar.gz to of the vendor/bundle directory to ship to s3"
38
+ tar -czf bundle.tar.gz vendor/
39
+
40
+ echo "Uploading the tar.gz of the vendor/bundle directory to s3"
41
+ aws s3 cp bundle.tar.gz "s3://public-cd-buildkite-cache/${BUILDKITE_PIPELINE_SLUG}/${BUILDKITE_LABEL}/bundle.tar.gz" || echo 'Could not push the bundler directory to s3 for caching. Future builds may be slower if this continues.'
42
+
43
+ echo "Uploading the sha256 hash of the vendor/bundle directory to s3"
44
+ aws s3 cp bundle.sha256 "s3://public-cd-buildkite-cache/${BUILDKITE_PIPELINE_SLUG}/${BUILDKITE_LABEL}/bundle.sha256" || echo 'Could not push the bundler directory to s3 for caching. Future builds may be slower if this continues.'
@@ -0,0 +1,12 @@
1
+ #!/bin/bash
2
+ #
3
+ # After a PR merge, Chef Expeditor will bump the PATCH version in the VERSION file.
4
+ # It then executes this file to update any other files/components with that new version.
5
+ #
6
+
7
+ set -evx
8
+
9
+ sed -i -r "s/^(\s*)VERSION = \".+\"/\1VERSION = \"$(cat VERSION)\"/" lib/lvm/attributes.rb
10
+
11
+ # Once Expeditor finshes executing this script, it will commit the changes and push
12
+ # the commit as a new tag corresponding to the value in the VERSION file.
@@ -0,0 +1,10 @@
1
+ steps:
2
+
3
+ - label: lint-chefstyle
4
+ command:
5
+ - .expeditor/run_linux_tests.sh "rake style"
6
+
7
+ expeditor:
8
+ executor:
9
+ docker:
10
+ image: ruby:2.6-buster
@@ -0,0 +1,4 @@
1
+ AllCops:
2
+ Exclude:
3
+ - "lvm2/**/*"
4
+ - "vendor/**/*"
@@ -1,7 +1,26 @@
1
+ # chef-ruby-lvm-attrib Changelog
2
+
3
+ <!-- latest_release 0.3.0 -->
4
+ ## [v0.3.0](https://github.com/chef/chef-ruby-lvm-attrib/tree/v0.3.0) (2019-10-18)
5
+
6
+ #### Merged Pull Requests
7
+ - Add the gem badge to the readme + resolve chefstyle warnings [#23](https://github.com/chef/chef-ruby-lvm-attrib/pull/23) ([tas50](https://github.com/tas50))
8
+ <!-- latest_release -->
9
+ <!-- release_rollup since=0.2.8 -->
10
+ ### Changes not yet released to rubygems.org
11
+
12
+ #### Merged Pull Requests
13
+ - Add the gem badge to the readme + resolve chefstyle warnings [#23](https://github.com/chef/chef-ruby-lvm-attrib/pull/23) ([tas50](https://github.com/tas50)) <!-- 0.3.0 -->
14
+ - Added v2_02_186 attributes [#18](https://github.com/chef/chef-ruby-lvm-attrib/pull/18) ([b-dean](https://github.com/b-dean)) <!-- 0.2.10 -->
15
+ - Wire up Expeditor and Buildkite [#22](https://github.com/chef/chef-ruby-lvm-attrib/pull/22) ([tas50](https://github.com/tas50)) <!-- 0.2.9 -->
16
+ <!-- release_rollup -->
17
+
18
+ <!-- latest_stable_release -->
1
19
  # 0.2.8 (2019-08-09)
2
20
 
3
21
  - Added 2.02.185
4
22
  - Added 2.03.02
23
+ <!-- latest_stable_release -->
5
24
 
6
25
  # 0.2.7 (2019-01-04)
7
26
 
@@ -152,4 +171,4 @@
152
171
 
153
172
  - Added LVM attributes for version 2.02.111
154
173
  - Added MIT license to the Gemspec
155
- - Gemspec now properly loads the version from the lib/attributes.rb file
174
+ - Gemspec now properly loads the version from the lib/attributes.rb file
data/Gemfile CHANGED
@@ -4,4 +4,5 @@ gemspec
4
4
 
5
5
  group :development do
6
6
  gem "chefstyle"
7
+ gem "rake"
7
8
  end
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # chef-ruby-lvm-attrib
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/chef-ruby-lvm-attrib.svg)](https://badge.fury.io/rb/chef-ruby-lvm-attrib)
4
+
3
5
  This is a list of attributes for lvm objects. They are generated from the source code and broken down by version. See ADDING ATTRIBUTES below to contribute.
4
6
 
5
7
  At their core these files exist to determine which arguments to pass lvs/vgs/pvs and the subsequent type conversions.
@@ -21,7 +23,7 @@ Currently this is split from the main ruby-lvm gem since these files require upd
21
23
  ## Installation
22
24
 
23
25
  ```bash
24
- sudo gem install ruby-lvm-attrib
26
+ sudo gem install chef-ruby-lvm-attrib
25
27
  ```
26
28
 
27
29
  ## Updating for new LVM releases
data/Rakefile CHANGED
@@ -1,9 +1,14 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
- task :default => :style
3
+ task default: :style
4
4
 
5
- require "chefstyle"
6
- require "rubocop/rake_task"
7
- RuboCop::RakeTask.new(:style) do |task|
8
- task.options += ["--display-cop-names", "--no-color"]
5
+ begin
6
+ require "chefstyle"
7
+ require "rubocop/rake_task"
8
+ desc "Run Chefstyle tests"
9
+ RuboCop::RakeTask.new(:style) do |task|
10
+ task.options += ["--display-cop-names", "--no-color"]
11
+ end
12
+ rescue LoadError
13
+ puts "chefstyle gem is not installed. bundle install first to make sure all dependencies are installed."
9
14
  end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.3.0
@@ -8,8 +8,8 @@
8
8
  require "fileutils"
9
9
  require "yaml"
10
10
 
11
- VERSION_FILE = "/VERSION"
12
- COLUMNS_FILE = "/lib/report/columns.h"
11
+ VERSION_FILE = "/VERSION".freeze
12
+ COLUMNS_FILE = "/lib/report/columns.h".freeze
13
13
 
14
14
  debug = false
15
15
 
@@ -70,7 +70,6 @@ TYPE_CONVERSION_MAP = {
70
70
  "raidminrecoveryrate" => "Integer",
71
71
  "raidmaxrecoveryrate" => "Integer",
72
72
  "segsizepe" => "Integer",
73
- "thinid" => "Integer",
74
73
  # New fields for caching
75
74
  "cache_total_blocks" => "Integer",
76
75
  "cache_used_blocks" => "Integer",
@@ -92,7 +91,7 @@ TYPE_CONVERSION_MAP = {
92
91
  "seg_new_data_offset" => "Integer",
93
92
  "seg_parity_chunks" => "Integer",
94
93
  "cachemetadataformat" => "Integer",
95
- }
94
+ }.freeze
96
95
 
97
96
  lvm_source = ARGV[0]
98
97
 
@@ -105,9 +104,10 @@ pvssegs = []
105
104
  vgs = []
106
105
  File.readlines(lvm_source + COLUMNS_FILE).each do |line|
107
106
  # eg: FIELD(LVS, lv, STR, "LV UUID", lvid.id[1], 38, uuid, "lv_uuid", "Unique identifier")
108
- next unless line =~ %r{^FIELD\((.*)\)$}
107
+ next unless line =~ /^FIELD\((.*)\)$/
108
+
109
109
  fields = $1.split(", ")
110
- fields.each { |f| f.gsub!(%r{^"}, ""); f.gsub!(%r{"$}, "") }
110
+ fields.each { |f| f.gsub!(/^"/, ""); f.gsub!(/"$/, "") }
111
111
  p fields if debug
112
112
  app = fields[0]
113
113
  general_type = fields[2]
@@ -133,24 +133,24 @@ File.readlines(lvm_source + COLUMNS_FILE).each do |line|
133
133
  # with issues (seg_start).
134
134
  case app
135
135
  when "LVS", "LVSINFOSTATUS", "LVSSTATUS"
136
- method.sub!(%r{^lv_}, "")
136
+ method.sub!(/^lv_/, "")
137
137
  when "SEGS"
138
- method.sub!(%r{^seg_}, "")
138
+ method.sub!(/^seg_/, "")
139
139
  when "LABEL"
140
- method.sub!(%r{^pv_}, "")
140
+ method.sub!(/^pv_/, "")
141
141
  when "PVS"
142
- method.sub!(%r{^pv_}, "")
142
+ method.sub!(/^pv_/, "")
143
143
  when "PVSEGS"
144
- method.sub!(%r{^pvseg_}, "")
144
+ method.sub!(/^pvseg_/, "")
145
145
  when "VGS"
146
- method.sub!(%r{^vg_}, "")
146
+ method.sub!(/^vg_/, "")
147
147
  end
148
148
 
149
149
  attribute = {
150
- :method => method,
151
- :column => column,
152
- :type_hint => attribute_type,
153
- :description => description,
150
+ method: method,
151
+ column: column,
152
+ type_hint: attribute_type,
153
+ description: description,
154
154
  }
155
155
 
156
156
  case app
@@ -170,27 +170,27 @@ File.readlines(lvm_source + COLUMNS_FILE).each do |line|
170
170
  end
171
171
 
172
172
  # we use vg_uuid as our crossover attribute that links vg->lv and vg->pv
173
- attribute = { :method => "vg_uuid",
174
- :column => "vg_uuid",
175
- :type_hint => "String",
176
- :description => "For VolumeGroup to LogicalVolume relationship." }
173
+ attribute = { method: "vg_uuid",
174
+ column: "vg_uuid",
175
+ type_hint: "String",
176
+ description: "For VolumeGroup to LogicalVolume relationship." }
177
177
  lvs << attribute
178
- attribute = { :method => "vg_uuid",
179
- :column => "vg_uuid",
180
- :type_hint => "String",
181
- :description => "For VolumeGroup to PhysicalVolume relationship." }
178
+ attribute = { method: "vg_uuid",
179
+ column: "vg_uuid",
180
+ type_hint: "String",
181
+ description: "For VolumeGroup to PhysicalVolume relationship." }
182
182
  pvs << attribute
183
183
 
184
184
  # and we link lv->lvsegment, pv->pvsegment
185
- attribute = { :method => "lv_uuid",
186
- :column => "lv_uuid",
187
- :type_hint => "String",
188
- :description => "For LogicalVolume to LogicalVolumeSegment relationship." }
185
+ attribute = { method: "lv_uuid",
186
+ column: "lv_uuid",
187
+ type_hint: "String",
188
+ description: "For LogicalVolume to LogicalVolumeSegment relationship." }
189
189
  lvssegs << attribute
190
- attribute = { :method => "pv_uuid",
191
- :column => "pv_uuid",
192
- :type_hint => "String",
193
- :description => "For PhysicalVolume to PhysicalVolumeSegment relationship." }
190
+ attribute = { method: "pv_uuid",
191
+ column: "pv_uuid",
192
+ type_hint: "String",
193
+ description: "For PhysicalVolume to PhysicalVolumeSegment relationship." }
194
194
  pvssegs << attribute
195
195
 
196
196
  lvs.sort! { |x, y| x[:column] <=> y[:column] }
@@ -202,11 +202,11 @@ vgs.sort! { |x, y| x[:column] <=> y[:column] }
202
202
  attributes_dir = "lib/lvm/attributes/#{version}"
203
203
  FileUtils.mkdir(attributes_dir)
204
204
 
205
- disclaimer = <<go
206
- # These are column to object attribute mappings
207
- # generated by #{$0} based on
208
- # #{lvm_source}/lib/report/columns.h
209
- go
205
+ disclaimer = <<~GO
206
+ # These are column to object attribute mappings
207
+ # generated by #{$0} based on
208
+ # #{lvm_source}/lib/report/columns.h
209
+ GO
210
210
 
211
211
  File.open("#{attributes_dir}/lvs.yaml", "w") { |f| f.write(disclaimer); f.write(lvs.to_yaml) }
212
212
  File.open("#{attributes_dir}/lvsseg.yaml", "w") { |f| f.write(disclaimer); f.write(lvssegs.to_yaml) }
@@ -2,7 +2,7 @@ require "yaml"
2
2
 
3
3
  module LVM
4
4
  module Attributes
5
- VERSION = "0.2.8"
5
+ VERSION = "0.3.0".freeze
6
6
 
7
7
  def load(version, name)
8
8
  cwd = File.dirname(__FILE__)
@@ -0,0 +1,328 @@
1
+ # These are column to object attribute mappings
2
+ # generated by ./bin/generate_field_data based on
3
+ # lvm2/lib/report/columns.h
4
+ ---
5
+ - :method: cache_dirty_blocks
6
+ :column: cache_dirty_blocks
7
+ :type_hint: Integer
8
+ :description: Dirty cache blocks.
9
+ - :method: cache_read_hits
10
+ :column: cache_read_hits
11
+ :type_hint: Integer
12
+ :description: Cache read hits.
13
+ - :method: cache_read_misses
14
+ :column: cache_read_misses
15
+ :type_hint: Integer
16
+ :description: Cache read misses.
17
+ - :method: cache_total_blocks
18
+ :column: cache_total_blocks
19
+ :type_hint: Integer
20
+ :description: Total cache blocks.
21
+ - :method: cache_used_blocks
22
+ :column: cache_used_blocks
23
+ :type_hint: Integer
24
+ :description: Used cache blocks.
25
+ - :method: cache_write_hits
26
+ :column: cache_write_hits
27
+ :type_hint: Integer
28
+ :description: Cache write hits.
29
+ - :method: cache_write_misses
30
+ :column: cache_write_misses
31
+ :type_hint: Integer
32
+ :description: Cache write misses.
33
+ - :method: convert_lv
34
+ :column: convert_lv
35
+ :type_hint: String
36
+ :description: For lvconvert
37
+ - :method: convert_lv_uuid
38
+ :column: convert_lv_uuid
39
+ :type_hint: String
40
+ :description: For lvconvert
41
+ - :method: copy_percent
42
+ :column: copy_percent
43
+ :type_hint: String
44
+ :description: For Cache
45
+ - :method: data_lv
46
+ :column: data_lv
47
+ :type_hint: String
48
+ :description: For thin and cache pools
49
+ - :method: data_lv_uuid
50
+ :column: data_lv_uuid
51
+ :type_hint: String
52
+ :description: For thin and cache pools
53
+ - :method: data_percent
54
+ :column: data_percent
55
+ :type_hint: String
56
+ :description: For snapshot
57
+ - :method: kernel_cache_policy
58
+ :column: kernel_cache_policy
59
+ :type_hint: String
60
+ :description: Cache policy used in kernel.
61
+ - :method: kernel_cache_settings
62
+ :column: kernel_cache_settings
63
+ :type_hint: String
64
+ :description: Cache settings/parameters as set in kernel
65
+ - :method: kernel_discards
66
+ :column: kernel_discards
67
+ :type_hint: String
68
+ :description: For thin pools
69
+ - :method: kernel_metadata_format
70
+ :column: kernel_metadata_format
71
+ :type_hint: Integer
72
+ :description: Cache metadata format used in kernel.
73
+ - :method: active
74
+ :column: lv_active
75
+ :type_hint: String
76
+ :description: Active state of the LV.
77
+ - :method: active_exclusively
78
+ :column: lv_active_exclusively
79
+ :type_hint: String
80
+ :description: Set if the LV is active exclusively.
81
+ - :method: active_locally
82
+ :column: lv_active_locally
83
+ :type_hint: String
84
+ :description: Set if the LV is active locally.
85
+ - :method: active_remotely
86
+ :column: lv_active_remotely
87
+ :type_hint: String
88
+ :description: Set if the LV is active remotely.
89
+ - :method: allocation_locked
90
+ :column: lv_allocation_locked
91
+ :type_hint: String
92
+ :description: Set if LV is locked against allocation changes.
93
+ - :method: allocation_policy
94
+ :column: lv_allocation_policy
95
+ :type_hint: String
96
+ :description: LV allocation policy.
97
+ - :method: ancestors
98
+ :column: lv_ancestors
99
+ :type_hint: String
100
+ :description: LV ancestors ignoring any stored history of the ancestry chain.
101
+ - :method: attr
102
+ :column: lv_attr
103
+ :type_hint: String
104
+ :description: Various attributes - see man page.
105
+ - :method: check_needed
106
+ :column: lv_check_needed
107
+ :type_hint: String
108
+ :description: For thin pools and cache volumes
109
+ - :method: converting
110
+ :column: lv_converting
111
+ :type_hint: String
112
+ :description: Set if LV is being converted.
113
+ - :method: descendants
114
+ :column: lv_descendants
115
+ :type_hint: String
116
+ :description: LV descendants ignoring any stored history of the ancestry chain.
117
+ - :method: dm_path
118
+ :column: lv_dm_path
119
+ :type_hint: String
120
+ :description: Internal device-mapper pathname for LV (in /dev/mapper directory).
121
+ - :method: fixed_minor
122
+ :column: lv_fixed_minor
123
+ :type_hint: String
124
+ :description: Set if LV has fixed minor number assigned.
125
+ - :method: full_ancestors
126
+ :column: lv_full_ancestors
127
+ :type_hint: String
128
+ :description: LV ancestors including stored history of the ancestry chain.
129
+ - :method: full_descendants
130
+ :column: lv_full_descendants
131
+ :type_hint: String
132
+ :description: LV descendants including stored history of the ancestry chain.
133
+ - :method: full_name
134
+ :column: lv_full_name
135
+ :type_hint: String
136
+ :description: Full name of LV including its VG
137
+ - :method: health_status
138
+ :column: lv_health_status
139
+ :type_hint: String
140
+ :description: LV health status.
141
+ - :method: historical
142
+ :column: lv_historical
143
+ :type_hint: String
144
+ :description: Set if the LV is historical.
145
+ - :method: host
146
+ :column: lv_host
147
+ :type_hint: String
148
+ :description: Creation host of the LV
149
+ - :method: image_synced
150
+ :column: lv_image_synced
151
+ :type_hint: String
152
+ :description: Set if mirror/RAID image is synchronized.
153
+ - :method: initial_image_sync
154
+ :column: lv_initial_image_sync
155
+ :type_hint: String
156
+ :description: Set if mirror/RAID images underwent initial resynchronization.
157
+ - :method: layout
158
+ :column: lv_layout
159
+ :type_hint: String
160
+ :description: LV layout.
161
+ - :method: lockargs
162
+ :column: lv_lockargs
163
+ :type_hint: String
164
+ :description: Lock args of the LV used by lvmlockd.
165
+ - :method: major
166
+ :column: lv_major
167
+ :type_hint: String
168
+ :description: Persistent major number or -1 if not persistent.
169
+ - :method: merge_failed
170
+ :column: lv_merge_failed
171
+ :type_hint: String
172
+ :description: Set if snapshot merge failed.
173
+ - :method: merging
174
+ :column: lv_merging
175
+ :type_hint: String
176
+ :description: Set if snapshot LV is being merged to origin.
177
+ - :method: metadata_size
178
+ :column: lv_metadata_size
179
+ :type_hint: Integer
180
+ :description: For thin and cache pools
181
+ - :method: minor
182
+ :column: lv_minor
183
+ :type_hint: String
184
+ :description: Persistent minor number or -1 if not persistent.
185
+ - :method: modules
186
+ :column: lv_modules
187
+ :type_hint: String
188
+ :description: Kernel device-mapper modules required for this LV.
189
+ - :method: name
190
+ :column: lv_name
191
+ :type_hint: String
192
+ :description: Name. LVs created for internal use are enclosed in brackets.
193
+ - :method: parent
194
+ :column: lv_parent
195
+ :type_hint: String
196
+ :description: For LVs that are components of another LV
197
+ - :method: path
198
+ :column: lv_path
199
+ :type_hint: String
200
+ :description: Full pathname for LV. Blank for internal LVs.
201
+ - :method: profile
202
+ :column: lv_profile
203
+ :type_hint: String
204
+ :description: Configuration profile attached to this LV.
205
+ - :method: read_ahead
206
+ :column: lv_read_ahead
207
+ :type_hint: String
208
+ :description: Read ahead setting in current units.
209
+ - :method: role
210
+ :column: lv_role
211
+ :type_hint: String
212
+ :description: LV role.
213
+ - :method: size
214
+ :column: lv_size
215
+ :type_hint: Integer
216
+ :description: Size of LV in current units.
217
+ - :method: skip_activation
218
+ :column: lv_skip_activation
219
+ :type_hint: String
220
+ :description: Set if LV is skipped on activation.
221
+ - :method: snapshot_invalid
222
+ :column: lv_snapshot_invalid
223
+ :type_hint: String
224
+ :description: Set if snapshot LV is invalid.
225
+ - :method: tags
226
+ :column: lv_tags
227
+ :type_hint: String
228
+ :description: Tags
229
+ - :method: time
230
+ :column: lv_time
231
+ :type_hint: String
232
+ :description: Creation time of the LV
233
+ - :method: time_removed
234
+ :column: lv_time_removed
235
+ :type_hint: String
236
+ :description: Removal time of the LV
237
+ - :method: uuid
238
+ :column: lv_uuid
239
+ :type_hint: String
240
+ :description: Unique identifier.
241
+ - :method: when_full
242
+ :column: lv_when_full
243
+ :type_hint: String
244
+ :description: For thin pools
245
+ - :method: metadata_lv
246
+ :column: metadata_lv
247
+ :type_hint: String
248
+ :description: For thin and cache pools
249
+ - :method: metadata_lv_uuid
250
+ :column: metadata_lv_uuid
251
+ :type_hint: String
252
+ :description: For thin and cache pools
253
+ - :method: metadata_percent
254
+ :column: metadata_percent
255
+ :type_hint: String
256
+ :description: For cache and thin pools
257
+ - :method: mirror_log
258
+ :column: mirror_log
259
+ :type_hint: String
260
+ :description: For mirrors
261
+ - :method: mirror_log_uuid
262
+ :column: mirror_log_uuid
263
+ :type_hint: String
264
+ :description: For mirrors
265
+ - :method: move_pv
266
+ :column: move_pv
267
+ :type_hint: String
268
+ :description: For pvmove
269
+ - :method: move_pv_uuid
270
+ :column: move_pv_uuid
271
+ :type_hint: String
272
+ :description: For pvmove
273
+ - :method: origin
274
+ :column: origin
275
+ :type_hint: String
276
+ :description: For snapshots and thins
277
+ - :method: origin_size
278
+ :column: origin_size
279
+ :type_hint: Integer
280
+ :description: For snapshots
281
+ - :method: origin_uuid
282
+ :column: origin_uuid
283
+ :type_hint: String
284
+ :description: For snapshots and thins
285
+ - :method: pool_lv
286
+ :column: pool_lv
287
+ :type_hint: String
288
+ :description: For thin volumes
289
+ - :method: pool_lv_uuid
290
+ :column: pool_lv_uuid
291
+ :type_hint: String
292
+ :description: For thin volumes
293
+ - :method: raid_max_recovery_rate
294
+ :column: raid_max_recovery_rate
295
+ :type_hint: Integer
296
+ :description: For RAID1
297
+ - :method: raid_min_recovery_rate
298
+ :column: raid_min_recovery_rate
299
+ :type_hint: Integer
300
+ :description: For RAID1
301
+ - :method: raid_mismatch_count
302
+ :column: raid_mismatch_count
303
+ :type_hint: Integer
304
+ :description: For RAID
305
+ - :method: raid_sync_action
306
+ :column: raid_sync_action
307
+ :type_hint: String
308
+ :description: For RAID
309
+ - :method: raid_write_behind
310
+ :column: raid_write_behind
311
+ :type_hint: Integer
312
+ :description: For RAID1
313
+ - :method: seg_count
314
+ :column: seg_count
315
+ :type_hint: Integer
316
+ :description: Number of segments in LV.
317
+ - :method: snap_percent
318
+ :column: snap_percent
319
+ :type_hint: String
320
+ :description: For snapshots
321
+ - :method: sync_percent
322
+ :column: sync_percent
323
+ :type_hint: String
324
+ :description: For Cache
325
+ - :method: vg_uuid
326
+ :column: vg_uuid
327
+ :type_hint: String
328
+ :description: For VolumeGroup to LogicalVolume relationship.