hpe3par_sdk 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1850 @@
1
+ # (c) Copyright 2016-2017 Hewlett Packard Enterprise Development LP
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ #
7
+ # Unless required by applicable law or agreed to in writing, software distributed
8
+ # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
9
+ # CONDITIONS OF ANY KIND, either express or implied. See the License for the
10
+ # specific language governing permissions and limitations under the License.
11
+
12
+ module Hpe3parSdk
13
+ class VirtualVolume
14
+
15
+ # [type - Number]
16
+ # Detailed state of the VV - Hpe3parSdk::VolumeDetailedState
17
+ attr_accessor :additional_states
18
+
19
+ # [type - Space]
20
+ # Administrative space in MiB.
21
+ attr_accessor :admin_space
22
+
23
+ # [type - Number]
24
+ # The ID of the volume that is the base
25
+ # volume (at the root of the snapshot
26
+ # tree) for the volume.
27
+ attr_accessor :base_id
28
+
29
+ # [type - String]
30
+ # Comment associated with the volume.
31
+ attr_accessor :comment
32
+
33
+ # [type - CapEfficiency]
34
+ # Capacity efficiency attributes.
35
+ attr_accessor :capacity_efficiency
36
+
37
+ # [type - String]
38
+ # If the volume is a physical copy or
39
+ # virtual copy of another volume, this
40
+ # field indicates the volume that this
41
+ # volume is a copy of.
42
+ attr_accessor :copy_of
43
+
44
+ # [type - Number]
45
+ # Indicates the copy type of the volume. - Hpe3parSdk::VolumeCopyType
46
+ attr_accessor :copy_type
47
+
48
+ # [type - String]
49
+ # Time of volume creation.
50
+ attr_accessor :creation_time8601
51
+
52
+ # [type - Number]
53
+ # Time of volume creation, measured in
54
+ # seconds since 12 AM on 01/01/1970.
55
+ attr_accessor :creation_time_sec
56
+
57
+ # [type - Number]
58
+ # Volume detailed state. - Hpe3parSdk::VolumeDetailedState
59
+ attr_accessor :degraded_states
60
+
61
+ # [type - String]
62
+ # Volume domain.
63
+ attr_accessor :domain
64
+
65
+ # [type - String]
66
+ # Time of volume expiration.
67
+ attr_accessor :expiration_time8601
68
+
69
+ # [type - Number]
70
+ # Time of volume expiration.
71
+ attr_accessor :expiration_time_sec
72
+
73
+ # [type - Number]
74
+ # Volume detailed state. - Hpe3parSdk::VolumeDetailedState
75
+ attr_accessor :failed_states
76
+
77
+ # [type - Number]
78
+ # Volume compression state - Hpe3parSdk::VolumeCompressionState
79
+ attr_accessor :compression_state
80
+
81
+ # [type - Number]
82
+ # Volume deduplication state. - Hpe3parSdk::VolumeDetailedState
83
+ attr_accessor :deduplication_state
84
+
85
+ # [type - Number]
86
+ # Volume identifier.
87
+ attr_accessor :id
88
+
89
+ # [type - Array of URL links]
90
+ # Links include the URL for space
91
+ # distribution for a particular volume, and
92
+ # the self URL when querying for the
93
+ # single instance.
94
+ attr_accessor :links
95
+
96
+ # [type - String]
97
+ # Volume name.
98
+ attr_accessor :name
99
+
100
+ # [type - Number]
101
+ # ID of the parent in the snapshot tree
102
+ # (not necessarily the same as the
103
+ # CopyOf VV).
104
+ attr_accessor :parent_id
105
+
106
+ # [type - Number]
107
+ # ID of the physical parent. Valid for a
108
+ # physical copy only.
109
+ attr_accessor :phys_parent_id
110
+
111
+ # [type - Policy]
112
+ # Policies used for the volume.
113
+ attr_accessor :policies
114
+
115
+ # [type - Number]
116
+ # Volume provisioning. - Hpe3parSdk::VolumeProvisioningType
117
+ attr_accessor :provisioning_type
118
+
119
+ # [type - Boolean]
120
+ # Enables (true) or disables (false)
121
+ # read/write.
122
+ attr_accessor :read_only
123
+
124
+ # [type - String]
125
+ # Time of volume retention time
126
+ # expiration.
127
+ attr_accessor :retention_time8601
128
+
129
+ # [type - Number]
130
+ # Time of volume retention expiration.
131
+ attr_accessor :retention_time_sec
132
+
133
+ # [type - Number]
134
+ # ID of the read-only child volume in the
135
+ # snapshot tree.
136
+ attr_accessor :ro_child_id
137
+
138
+ # [type - Number]
139
+ # ID of the read/write child volume in the
140
+ # snapshot tree.
141
+ attr_accessor :rw_child_id
142
+
143
+ # [type - Number]
144
+ # Total written to volume. For TDVVs this
145
+ # includes shared data that this volume
146
+ # references.
147
+ attr_accessor :host_write_mib
148
+
149
+ # [type - Number]
150
+ # Total used space. Sum of used
151
+ # UserSpace and used Snapshot space.
152
+ attr_accessor :total_used_mib
153
+
154
+ # [type - Number]
155
+ # Total Reserved space.
156
+ attr_accessor :total_reserved_mib
157
+
158
+ # [type - Number]
159
+ # Detailed Virtual size of volume in MiB (10242
160
+ # bytes).
161
+ attr_accessor :size_mib
162
+
163
+ # [type - String]
164
+ # CPG name from which the snapshot
165
+ # (snap and admin) space is allocated.
166
+ attr_accessor :snap_cpg
167
+
168
+ # [type - Space]
169
+ # Snapshot space in MiB.
170
+ attr_accessor :snapshot_space
171
+
172
+ # [type - Number]
173
+ # Sets a snapshot space allocation limit.
174
+ # Prevents the snapshot space of the
175
+ # volume from growing beyond the
176
+ # indicated percentage of the volume
177
+ # size.
178
+ attr_accessor :ss_spc_alloc_limit_pct
179
+
180
+ # [type - Number]
181
+ # Enables a snapshot space allocation
182
+ # warning. Generates a warning alert
183
+ # when the reserved snapshot space of
184
+ # the virtual volume exceeds the
185
+ # indicated percentage of the virtual
186
+ # volume size. - Hpe3parSdk::VolumeDetailedState
187
+ attr_accessor :ss_spc_alloc_warning_pct
188
+
189
+ # [type - Number]
190
+ # State of the volume. - Hpe3parSdk::CPGState
191
+ attr_accessor :state
192
+
193
+ # [type - String]
194
+ # CPG name from which the user space
195
+ # is allocated.
196
+ attr_accessor :user_cpg
197
+
198
+ # [type - Space]
199
+ # User space in MiB.
200
+ attr_accessor :user_space
201
+
202
+ # [type - Number]
203
+ # This field sets the user space allocation
204
+ # limit. The user space of the TPVV is
205
+ # prevented from growing beyond the
206
+ # specified percentage of the volume
207
+ # size. After the size is reached, any new
208
+ # writes to the volume will fail.
209
+ attr_accessor :usr_spc_alloc_limit_pct
210
+
211
+ # [type - Number]
212
+ # This field enables a user space
213
+ # allocation warning. It specifies that a
214
+ # warning alert is generated when the
215
+ # reserved user space of the TPVV
216
+ # exceeds the specified percentage of
217
+ # the volume size.
218
+ attr_accessor :usr_spc_alloc_warning_pct
219
+
220
+ # [type - String]
221
+ # The UUID that was automatically
222
+ # assigned to the volume at creation.
223
+ attr_accessor :uuid
224
+
225
+ # [type - Number]
226
+ # The ID of the shared volume that this
227
+ # volume is associated with.
228
+ attr_accessor :shared_parent_id
229
+
230
+ # [type - Number]
231
+ # User-Defined identifier per VV for
232
+ # OpenVMS hosts.
233
+ attr_accessor :udid
234
+
235
+ # [type - String]
236
+ # Volume WWN.
237
+ attr_accessor :wwn
238
+
239
+ def initialize(object_hash)
240
+ if object_hash == nil
241
+ return
242
+ end
243
+
244
+ self.additional_states = object_hash['additionalStates']
245
+
246
+ !object_hash['adminSpace'].nil? ? self.admin_space = Space.new(object_hash['adminSpace']) : self.admin_space = nil
247
+
248
+ self.base_id = object_hash['baseId']
249
+
250
+ self.comment = object_hash['comment']
251
+
252
+ !object_hash['capacityEfficiency'].nil? ? self.capacity_efficiency = CapEfficiency.new(object_hash['capacityEfficiency']) : self.capacity_efficiency = nil
253
+
254
+ self.copy_of = object_hash['copyOf']
255
+
256
+ self.copy_type = object_hash['copyType']
257
+
258
+ self.creation_time8601 = object_hash['creationTime8601']
259
+
260
+ self.creation_time_sec = object_hash['creationTimeSec']
261
+
262
+ self.degraded_states = object_hash['degradedStates']
263
+
264
+ self.domain = object_hash['domain']
265
+
266
+ self.expiration_time8601 = object_hash['expirationTime8601']
267
+
268
+ self.expiration_time_sec = object_hash['expirationTimeSec']
269
+
270
+ self.failed_states = object_hash['failedStates']
271
+
272
+ self.compression_state = object_hash['compressionState']
273
+
274
+ self.deduplication_state = object_hash['deduplicationState']
275
+
276
+ self.id = object_hash['id']
277
+
278
+ self.links = object_hash['links']
279
+
280
+ self.name = object_hash['name']
281
+
282
+ self.parent_id = object_hash['parentId']
283
+
284
+ self.phys_parent_id = object_hash['physParentId']
285
+
286
+ !object_hash['policies'].nil? ? self.policies = Policy.new(object_hash['policies']) : self.policies = nil
287
+
288
+ self.provisioning_type = object_hash['provisioningType']
289
+
290
+ self.read_only = object_hash['readOnly']
291
+
292
+ self.retention_time8601 = object_hash['retentionTime8601']
293
+
294
+ self.retention_time_sec = object_hash['retentionTimeSec']
295
+
296
+ self.ro_child_id = object_hash['roChildId']
297
+
298
+ self.rw_child_id = object_hash['rwChildId']
299
+
300
+ self.host_write_mib = object_hash['hostWriteMiB']
301
+
302
+ self.total_used_mib = object_hash['totalUsedMiB']
303
+
304
+ self.total_reserved_mib = object_hash['totalReservedMiB']
305
+
306
+ self.size_mib = object_hash['sizeMiB']
307
+
308
+ self.snap_cpg = object_hash['snapCPG']
309
+
310
+ !object_hash['snapshotSpace'].nil? ? self.snapshot_space = Space.new(object_hash['snapshotSpace']) : self.snapshot_space = nil
311
+
312
+ self.ss_spc_alloc_limit_pct = object_hash['ssSpcAllocLimitPct']
313
+
314
+ self.ss_spc_alloc_warning_pct = object_hash['ssSpcAllocWarningPct']
315
+
316
+ self.state = object_hash['state']
317
+
318
+ self.user_cpg = object_hash['userCPG']
319
+
320
+ !object_hash['userSpace'].nil? ? self.user_space = Space.new(object_hash['userSpace']) : self.user_space = nil
321
+
322
+ self.usr_spc_alloc_limit_pct = object_hash['usrSpcAllocLimitPct']
323
+
324
+ self.usr_spc_alloc_warning_pct = object_hash['usrSpcAllocWarningPct']
325
+
326
+ self.uuid = object_hash['uuid']
327
+
328
+ self.shared_parent_id = object_hash['sharedParentID']
329
+
330
+ self.udid = object_hash['udid']
331
+
332
+ self.wwn = object_hash['wwn']
333
+ end
334
+ end
335
+
336
+ class Host
337
+
338
+ # [type - Number]
339
+ # Specifies the ID of the host.
340
+ attr_accessor :id
341
+
342
+ # [type - String]
343
+ # Specifies the name of the host.
344
+ attr_accessor :name
345
+
346
+ # [type - Hpe3parSdk::HostPersona]
347
+ # ID of the persona to assigned to the host.
348
+ attr_accessor :persona
349
+
350
+ # [type - Array of FCPath]
351
+ # A host object query response can include an array of one or more FCPaths objects
352
+ attr_accessor :fcpaths
353
+
354
+ # [type - Array of SCSIPath]
355
+ # A host object query response can include an array of one or more iSCSIPaths objects.
356
+ attr_accessor :iscsi_paths
357
+
358
+ # [type - String]
359
+ # The domain or associated with this host.
360
+ attr_accessor :domain
361
+
362
+ # [type - Descriptors]
363
+ # An optional sub-object of the host object for creation and modification
364
+ attr_accessor :descriptors
365
+
366
+ # [type - Agent]
367
+ # Agent object
368
+ attr_accessor :agent
369
+
370
+ # [type - String]
371
+ # Initiator Chap Name
372
+ attr_accessor :initiator_chap_name
373
+
374
+ # [type - Boolean]
375
+ # Flag to determine whether or not the chap initiator is enabled.
376
+ attr_accessor :initiator_chap_enabled
377
+
378
+ # [type - String]
379
+ # Target chap name.
380
+ attr_accessor :target_chap_name
381
+
382
+ # [type - Boolean]
383
+ # Flag to determine whether or not the chap target is enabled.
384
+ attr_accessor :target_chap_enabled
385
+
386
+ # [type - String]
387
+ # Encrypted CHAP secret of initiator.
388
+ attr_accessor :initiator_encrypted_chap_secret
389
+
390
+ # [type - String]
391
+ # Encrypted CHAP secret of target.
392
+ attr_accessor :target_encrypted_chap_secret
393
+
394
+ def initialize(object_hash)
395
+ if object_hash == nil
396
+ return
397
+ end
398
+
399
+ self.id = object_hash['id']
400
+
401
+ self.name = object_hash['name']
402
+
403
+ self.persona = object_hash['persona']
404
+
405
+ self.fcpaths = []
406
+ unless object_hash['FCPaths'].nil?
407
+ object_hash['FCPaths'].each do |fc_path|
408
+ self.fcpaths.push(FCPath.new(fc_path))
409
+ end
410
+ end
411
+
412
+ self.iscsi_paths = []
413
+ unless object_hash['iSCSIPaths'].nil?
414
+ object_hash['iSCSIPaths'].each do |iscsi_path|
415
+ self.iscsi_paths.push(SCSIPath.new(iscsi_path))
416
+ end
417
+ end
418
+
419
+ self.domain = object_hash['domain']
420
+
421
+ !object_hash['descriptors'].nil? ? self.descriptors = Descriptors.new(object_hash['descriptors']) : self.descriptors = nil
422
+
423
+ !object_hash['agent'].nil? ? self.agent = Agent.new(object_hash['agent']) : self.agent = nil
424
+
425
+ self.initiator_chap_name = object_hash['initiatorChapName']
426
+
427
+ self.initiator_chap_enabled = object_hash['initiatorChapEnabled']
428
+
429
+ self.target_chap_name = object_hash['targetChapName']
430
+
431
+ self.target_chap_enabled = object_hash['targetChapEnabled']
432
+
433
+ self.initiator_encrypted_chap_secret = object_hash['initiatorEncryptedChapSecret']
434
+
435
+ self.target_encrypted_chap_secret = object_hash['targetEncryptedChapSecret']
436
+
437
+ end
438
+ end
439
+
440
+ class QoSRule
441
+
442
+ # [type - Number]
443
+ # ID of the QoS target.
444
+ attr_accessor :id
445
+
446
+ # [type - Hpe3parSdk::QoStargetType]
447
+ # Type of QoS target.
448
+ attr_accessor :type
449
+
450
+ # [type - String]
451
+ # Name of the target
452
+ attr_accessor :name
453
+
454
+ # [type - String]
455
+ # Name of the domain.
456
+ attr_accessor :domain
457
+
458
+ # [type - Boolean]
459
+ # QoS state of the target.
460
+ attr_accessor :enabled
461
+
462
+ # [type - Hpe3parSdk::QoSpriorityEnumeration]
463
+ # QoS priority.
464
+ attr_accessor :priority
465
+
466
+ # [type - Number]
467
+ # Bandwidth minimum goal in kilobytes per second.
468
+ attr_accessor :bw_min_goal_kb
469
+
470
+ # [type - Number]
471
+ # Bandwidth maximum limit in kilobytes per second.
472
+ attr_accessor :bw_max_limit_kb
473
+
474
+ # [type - Number]
475
+ # I/O-per-second minimum goal.
476
+ attr_accessor :io_min_goal
477
+
478
+ # [type - Number]
479
+ # I/O-per-second maximum limit.
480
+ attr_accessor :io_max_limit
481
+
482
+ # [type - Number]
483
+ # Latency goal in milliseconds.
484
+ attr_accessor :latency_goal
485
+
486
+ # [type - Number]
487
+ # Latency goal in microseconds.
488
+ attr_accessor :latency_goal_usecs
489
+
490
+ def initialize(object_hash)
491
+ if object_hash == nil
492
+ return
493
+ end
494
+
495
+ self.id = object_hash['id']
496
+
497
+ self.type = object_hash['type']
498
+
499
+ self.name = object_hash['name']
500
+
501
+ self.domain = object_hash['domain']
502
+
503
+ self.enabled = object_hash['enabled']
504
+
505
+ self.priority = object_hash['priority']
506
+
507
+ self.bw_min_goal_kb = object_hash['bwMinGoalKB']
508
+
509
+ self.bw_max_limit_kb = object_hash['bwMaxLimitKB']
510
+
511
+ self.io_min_goal = object_hash['ioMinGoal']
512
+
513
+ self.io_max_limit = object_hash['ioMaxLimit']
514
+
515
+ self.latency_goal = object_hash['latencyGoal']
516
+
517
+ self.latency_goal_usecs = object_hash['latencyGoaluSecs']
518
+
519
+ end
520
+ end
521
+
522
+ class VLUN
523
+
524
+ # [type - Number]
525
+ # Exported LUN value.
526
+ attr_accessor :lun
527
+
528
+ # [type - String]
529
+ # Name of exported virtual volume name or VV-set name.
530
+ attr_accessor :volume_name
531
+
532
+ # [type - String]
533
+ # Host name or host set name to which the VLUN is exported.
534
+ attr_accessor :hostname
535
+
536
+ # [type - String]
537
+ # Host WWN, or iSCSI name, or SAS address; depends on port type.
538
+ attr_accessor :remote_name
539
+
540
+ # [type - PortPos]
541
+ # System port of VLUN exported to. It includes node number, slot number, and cardPort number.
542
+ attr_accessor :port_pos
543
+
544
+ # [type - Hpe3parSdk::VlunType]
545
+ # VLUN type.
546
+ attr_accessor :type
547
+
548
+ # [type - String]
549
+ # WWN of exported volume. If a VV set is exported, this value is null.
550
+ attr_accessor :volume_wwn
551
+
552
+ # [type - Hpe3parSdk::VlunMultipathing]
553
+ # Multipathing method in use.
554
+ attr_accessor :multipathing
555
+
556
+ # [type - Hpe3parSdk::VLUNfailedPathPol]
557
+ # Failed path monitoring method.
558
+ attr_accessor :failed_path_pol
559
+
560
+ # [type - Number]
561
+ # Monitoring interval in seconds after which the host checks for failed paths.
562
+ attr_accessor :failed_path_interval
563
+
564
+ # [type - String]
565
+ # The device name for this VLUN on the host.
566
+ attr_accessor :host_device_name
567
+
568
+ # [type - Boolean]
569
+ # Specified if the VLUN is an active VLUN or a VLUN template.
570
+ attr_accessor :active
571
+
572
+ def initialize(object_hash)
573
+ if object_hash == nil
574
+ return
575
+ end
576
+
577
+ self.lun = object_hash['lun']
578
+
579
+ self.volume_name = object_hash['volumeName']
580
+
581
+ self.hostname = object_hash['hostname']
582
+
583
+ self.remote_name = object_hash['remoteName']
584
+
585
+ !object_hash['portPos'].nil? ? self.port_pos = PortPos.new(object_hash['portPos']) : self.port_pos = nil
586
+
587
+ self.type = object_hash['type']
588
+
589
+ self.volume_wwn = object_hash['volumeWWN']
590
+
591
+ self.multipathing = object_hash['multipathing']
592
+
593
+ self.failed_path_pol = object_hash['failedPathPol']
594
+
595
+ self.failed_path_interval = object_hash['failedPathInterval']
596
+
597
+ self.host_device_name = object_hash['hostDeviceName']
598
+
599
+ self.active = object_hash['active']
600
+
601
+ end
602
+ end
603
+
604
+ class CPG
605
+
606
+ # [type - Number]
607
+ # Cpg ID.
608
+ attr_accessor :id
609
+
610
+ # [type - String]
611
+ # The UUID that was automatically assigned to the Cpg at creation.
612
+ attr_accessor :uuid
613
+
614
+ # [type - String]
615
+ # Cpg name.
616
+ attr_accessor :name
617
+
618
+ # [type - String]
619
+ # Domain to which the Cpg belongs.
620
+ attr_accessor :domain
621
+
622
+ # [type - Number]
623
+ # Percentage usage at which to issue an alert.
624
+ attr_accessor :warning_pct
625
+
626
+ # [type - Number]
627
+ # Number of TPVVs allocated in the Cpg.
628
+ attr_accessor :num_tpvvs
629
+
630
+ # [type - Number]
631
+ # Number of FPVVs allocated in the Cpg.
632
+ attr_accessor :num_fpvvs
633
+
634
+ # [type - Number]
635
+ # Number of TDVVs created in the Cpg.
636
+ attr_accessor :num_tdvvs
637
+
638
+ # [type - Usage]
639
+ # User data space usage.
640
+ attr_accessor :usr_usage
641
+
642
+ # [type - Usage]
643
+ # Snap-shot administration usage.
644
+ attr_accessor :sausage
645
+
646
+ # [type - Usage]
647
+ # Snap-shot data space usage.
648
+ attr_accessor :sdusage
649
+
650
+ # [type - GrowthParams]
651
+ # Snap-shot administration space autogrowth parameters.
652
+ attr_accessor :sagrowth
653
+
654
+ # [type - GrowthParams]
655
+ # Snap-shot data space auto-growth parameters.
656
+ attr_accessor :sdgrowth
657
+
658
+ # [type - Number]
659
+ # Overall state of the Cpg.- Hpe3parSdk::CPGState
660
+ attr_accessor :state
661
+
662
+ # [type - Number]
663
+ # Detailed state of the Cpg. - Hpe3parSdk::CPGState
664
+ attr_accessor :failed_states
665
+
666
+ # [type - Number]
667
+ # Detailed state of the Cpg. - Hpe3parSdk::CPGState
668
+ attr_accessor :degraded_states
669
+
670
+ # [type - Number]
671
+ # Detailed state of the Cpg. - Hpe3parSdk::CPGState
672
+ attr_accessor :additional_states
673
+
674
+ # [type - Boolean]
675
+ # Enables (true) or disables (false) Cpg deduplication capability.
676
+ attr_accessor :dedup_capable
677
+
678
+ # [type - Number]
679
+ # Shared Cpg space in MiB
680
+ attr_accessor :shared_space_MiB
681
+
682
+ # [type - Number]
683
+ # Free Cpg space in MiB
684
+ attr_accessor :free_space_MiB
685
+
686
+ # [type - Number]
687
+ # Total Cpg space in MiB
688
+ attr_accessor :total_space_MiB
689
+
690
+ # [type - Number]
691
+ # Raw shared space in MiB
692
+ attr_accessor :raw_shared_space_MiB
693
+
694
+ # [type - Number]
695
+ # Raw free space in MiB
696
+ attr_accessor :raw_free_space_MiB
697
+
698
+ # [type - Number]
699
+ # Raw total space in MiB
700
+ attr_accessor :raw_total_space_MiB
701
+
702
+ # [type - Number]
703
+ # Deduplication version used by volumes in the Cpg.
704
+ attr_accessor :tdvv_version
705
+
706
+ # [type - Number]
707
+ # Maximum size of the deduplication store Volume in the Cpg.
708
+ attr_accessor :dds_rsvd_MiB
709
+
710
+ # [type - PrivateSpace]
711
+ # Private Cpg space in MiB
712
+ attr_accessor :private_space_MiB
713
+
714
+ def initialize(object_hash)
715
+ if object_hash == nil
716
+ return
717
+ end
718
+
719
+ self.id = object_hash['id']
720
+
721
+ self.uuid = object_hash['uuid']
722
+
723
+ self.name = object_hash['name']
724
+
725
+ self.domain = object_hash['domain']
726
+
727
+ self.warning_pct = object_hash['warningPct']
728
+
729
+ self.num_tpvvs = object_hash['numTPVVs']
730
+
731
+ self.num_fpvvs = object_hash['numFPVVs']
732
+
733
+ self.num_tdvvs = object_hash['numTDVVs']
734
+
735
+ !object_hash['UsrUsage'].nil? ? self.usr_usage = Usage.new(object_hash['UsrUsage']) : self.usr_usage = nil
736
+
737
+ !object_hash['SAUsage'].nil? ? self.sausage = Usage.new(object_hash['SAUsage']) : self.sausage = nil
738
+
739
+ !object_hash['SDUsage'].nil? ? self.sdusage = Usage.new(object_hash['SDUsage']) : self.sdusage = nil
740
+
741
+ !object_hash['SAGrowth'].nil? ? self.sagrowth = GrowthParams.new(object_hash['SAGrowth']) : self.sagrowth = nil
742
+
743
+ !object_hash['SDGrowth'].nil? ? self.sdgrowth = GrowthParams.new(object_hash['SDGrowth']) : self.sdgrowth = nil
744
+
745
+ self.state = object_hash['state']
746
+
747
+ self.failed_states = object_hash['failedStates']
748
+
749
+ self.degraded_states = object_hash['degradedStates']
750
+
751
+ self.additional_states = object_hash['additionalStates']
752
+
753
+ self.dedup_capable = object_hash['dedupCapable']
754
+
755
+ self.shared_space_MiB = object_hash['sharedSpaceMiB']
756
+
757
+ self.free_space_MiB = object_hash['freeSpaceMiB']
758
+
759
+ self.total_space_MiB = object_hash['totalSpaceMiB']
760
+
761
+ self.raw_shared_space_MiB = object_hash['rawSharedSpaceMiB']
762
+
763
+ self.raw_free_space_MiB = object_hash['rawFreeSpaceMiB']
764
+
765
+ self.raw_total_space_MiB = object_hash['rawTotalSpaceMiB']
766
+
767
+ self.tdvv_version = object_hash['tdvvVersion']
768
+
769
+ self.dds_rsvd_MiB = object_hash['ddsRsvdMiB']
770
+
771
+ !object_hash['privateSpaceMiB'].nil? ? self.private_space_MiB = PrivateSpace.new(object_hash['privateSpaceMiB']) : self.private_space_MiB = nil
772
+
773
+ end
774
+ end
775
+
776
+ class FlashCache
777
+
778
+ # [type - Number 1: Simulator 2: Real]
779
+ # Encrypted CHAP secret of target.
780
+ attr_accessor :mode
781
+
782
+ # [type - Number]
783
+ # The total size of the Flash Cache on the entire system. This might differ from the sizeGib input in the create Flash Cache request if the system has more than two nodes.
784
+ attr_accessor :size_gib
785
+
786
+ # [type - Hpe3parSdk::CPGState]
787
+ # State of flash cache
788
+ attr_accessor :state
789
+
790
+ # [type - Number]
791
+ # The used size of the Flash Cache.
792
+ attr_accessor :used_size_gib
793
+
794
+ def initialize(object_hash)
795
+ if object_hash == nil
796
+ return
797
+ end
798
+
799
+ self.mode = object_hash['mode']
800
+
801
+ self.size_gib = object_hash['sizeGiB']
802
+
803
+ self.state = object_hash['state']
804
+
805
+ self.used_size_gib = object_hash['usedSizeGiB']
806
+ end
807
+ end
808
+
809
+ class HostSet
810
+
811
+ # [type - String]
812
+ # Name of the set.
813
+ attr_accessor :name
814
+
815
+ # [type - String]
816
+ # UUID of the set.
817
+ attr_accessor :uuid
818
+
819
+ # [type - Number]
820
+ # Set identifier.
821
+ attr_accessor :id
822
+
823
+ # [type - String]
824
+ # Comment for the set.
825
+ attr_accessor :comment
826
+
827
+ # [type - String]
828
+ # Set domain.
829
+ attr_accessor :domain
830
+
831
+ # [type - Array of String]
832
+ # The members of the set.
833
+ attr_accessor :setmembers
834
+
835
+ def initialize(object_hash)
836
+ if object_hash == nil
837
+ return
838
+ end
839
+
840
+ self.name = object_hash['name']
841
+
842
+ self.uuid = object_hash['uuid']
843
+
844
+ self.id = object_hash['id']
845
+
846
+ self.comment = object_hash['comment']
847
+
848
+ self.domain = object_hash['domain']
849
+
850
+ self.setmembers = object_hash['setmembers']
851
+
852
+ end
853
+ end
854
+
855
+ class Port
856
+
857
+ # [type - PortPos]
858
+ # port n:s:p.
859
+ attr_accessor :port_pos
860
+
861
+ # [type - Hpe3parSdk::PortMode]
862
+ # port mode.
863
+ attr_accessor :mode
864
+
865
+ # [type - Hpe3parSdk::PortLinkState]
866
+ # port link state.
867
+ attr_accessor :linkState
868
+
869
+ # [type - String]
870
+ # Node WWN that is unique across all ports.
871
+ attr_accessor :nodewwn
872
+
873
+ # [type - String]
874
+ # port WWN for FCoE and FC ports. Not included in JSON for other ports.
875
+ attr_accessor :portwwn
876
+
877
+ # [type - Hpe3parSdk::PortConnType]
878
+ # port connection type.
879
+ attr_accessor :type
880
+
881
+ # [type - String]
882
+ # Hardware address for RCIP and iSCSI ports. Not included in JSON for other ports.
883
+ attr_accessor :hwaddr
884
+
885
+ # [type - Hpe3parSdk::PortProtocol]
886
+ # Indicates the port protocol type.
887
+ attr_accessor :protocol
888
+
889
+ # [type - String]
890
+ # Configurable, human-readable label identifying the HBA port. Maximum length is 15 characters.
891
+ attr_accessor :label
892
+
893
+ # [type - Arry of string]
894
+ # Array of device name (cage0, host1, etc.) of the device connected to the port.
895
+ attr_accessor :device
896
+
897
+ # [type - PortPos]
898
+ # Location of failover partner port in <Node><Slot><Port> format.
899
+ attr_accessor :partner_pos
900
+
901
+ # [type - Hpe3parSdk::PortFailOverState]
902
+ # The state of the failover operation, shown for the two ports indicated in the N:S:P and Partner columns.
903
+ attr_accessor :failover_state
904
+
905
+ # [type - String]
906
+ # For RCIP and iSCSI ports only; not included in the JSON object for other ports.
907
+ attr_accessor :ip_addr
908
+
909
+ # [type - String]
910
+ # For iSCSI port only; not included in the JSON object for other ports.
911
+ attr_accessor :iscsi_name
912
+
913
+ # [type - String]
914
+ # Ethernet node MAC address.
915
+ attr_accessor :enode_macaddr
916
+
917
+ # [type - String]
918
+ # PFC mask.
919
+ attr_accessor :pfcmask
920
+
921
+ # [type - ISCSIPortInfo]
922
+ # Contains information related to iSCSI port properties.
923
+ attr_accessor :iscsi_portinfo
924
+
925
+ def initialize(object_hash)
926
+ if object_hash == nil
927
+ return
928
+ end
929
+ !object_hash['portPos'].nil? ? self.port_pos = PortPos.new(object_hash['portPos']) : self.port_pos = nil
930
+
931
+ self.mode = object_hash['mode']
932
+
933
+ self.linkState = object_hash['linkState']
934
+
935
+ self.nodewwn = object_hash['nodeWWN']
936
+
937
+ self.portwwn = object_hash['portWWN']
938
+
939
+ self.type = object_hash['type']
940
+
941
+ self.hwaddr = object_hash['HWAddr']
942
+
943
+ self.protocol = object_hash['protocol']
944
+
945
+ self.label = object_hash['label']
946
+
947
+ self.device = object_hash['device']
948
+
949
+ !object_hash['partnerPos'].nil? ? self.partner_pos = PortPos.new(object_hash['partnerPos']) : self.partner_pos = nil
950
+
951
+ self.failover_state = object_hash['failoverState']
952
+
953
+ self.ip_addr = object_hash['IPAddr']
954
+
955
+ self.iscsi_name = object_hash['iSCSIName']
956
+
957
+ self.enode_macaddr = object_hash['enodeMACAddr']
958
+
959
+ self.pfcmask = object_hash['pfcMask']
960
+
961
+ !object_hash['iSCSIPortInfo'].nil? ? self.iscsi_portinfo = ISCSIPortInfo.new(object_hash['iSCSIPortInfo']) : self.iscsi_portinfo = nil
962
+
963
+ end
964
+
965
+ end
966
+
967
+
968
+ class ISCSIPortInfo
969
+
970
+ # [type - String]
971
+ # iSCSI port only, not included in the JSON object for other ports.
972
+ attr_accessor :ip_addr
973
+
974
+ # [type - String]
975
+ # iSCSI port only, not included in the JSON object for other ports.
976
+ attr_accessor :iscsi_name
977
+
978
+ # [type - String]
979
+ # Netmask for Ethernet port.
980
+ attr_accessor :netmask
981
+
982
+ # [type - String]
983
+ # IP address of the gateway.
984
+ attr_accessor :gateway
985
+
986
+ # [type - Number]
987
+ # MTU size in bytes.
988
+ attr_accessor :mtu
989
+
990
+ # [type - Boolean]
991
+ # Send Targets Group Tag of the iSCSI target
992
+ attr_accessor :stgt
993
+
994
+ # [type - Number]
995
+ # TCP port number for the iSNS server.
996
+ attr_accessor :isns_port
997
+
998
+ # [type - String]
999
+ # iSNS server IP address.
1000
+ attr_accessor :isns_addr
1001
+
1002
+ # [type - String]
1003
+ # Data transfer rate for the iSCSI port
1004
+ attr_accessor :rate
1005
+
1006
+ # [type - Number]
1007
+ # Target portal group tag.
1008
+ attr_accessor :tpgt
1009
+
1010
+ # [type - Boolean]
1011
+ # Indicates whether the port supports VLANs.
1012
+ attr_accessor :vlans
1013
+
1014
+ def initialize(object_hash)
1015
+ if object_hash == nil
1016
+ return
1017
+ end
1018
+
1019
+ self.ip_addr = object_hash['ipAddr']
1020
+
1021
+ self.iscsi_name = object_hash['iSCSIName']
1022
+
1023
+ self.netmask = object_hash['netmask']
1024
+
1025
+ self.gateway = object_hash['gateway']
1026
+
1027
+ self.mtu = object_hash['mtu']
1028
+
1029
+ self.stgt = object_hash['stgt']
1030
+
1031
+ self.isns_port = object_hash['iSNSPort']
1032
+
1033
+ self.isns_addr = object_hash['iSNSAddr']
1034
+
1035
+ self.rate = object_hash['rate']
1036
+
1037
+ self.tpgt = object_hash['tpgt']
1038
+
1039
+ self.vlans = object_hash['vlans']
1040
+
1041
+ end
1042
+ end
1043
+
1044
+ class VolumeSet
1045
+
1046
+ # [type - String]
1047
+ # Name of the set.
1048
+ attr_accessor :name
1049
+
1050
+ # [type - String]
1051
+ # UUID of the set.
1052
+ attr_accessor :uuid
1053
+
1054
+ # [type - Number]
1055
+ # Set identifier.
1056
+ attr_accessor :id
1057
+
1058
+ # [type - String]
1059
+ # Comment for the set.
1060
+ attr_accessor :comment
1061
+
1062
+ # [type - String]
1063
+ # Set domain.
1064
+ attr_accessor :domain
1065
+
1066
+ # [type - Array of String]
1067
+ # The members of the set.
1068
+ attr_accessor :setmembers
1069
+
1070
+ # [type - Number]
1071
+ # The flashCachePolicy
1072
+ # member is valid for volumes sets
1073
+ # only. - Hpe3parSdk::FlashCachePolicy
1074
+ attr_accessor :flash_cache_policy
1075
+
1076
+ # [type - Boolean]
1077
+ # true: Enabled vvset QoS rule.
1078
+ # false: Disabled vvset QoS rules.
1079
+ attr_accessor :qos_enabled
1080
+
1081
+ def initialize(object_hash)
1082
+ if object_hash == nil
1083
+ return
1084
+ end
1085
+
1086
+ self.name = object_hash['name']
1087
+
1088
+ self.uuid = object_hash['uuid']
1089
+
1090
+ self.id = object_hash['id']
1091
+
1092
+ self.comment = object_hash['comment']
1093
+
1094
+ self.domain = object_hash['domain']
1095
+
1096
+ self.setmembers = object_hash['setmembers']
1097
+
1098
+ self.flash_cache_policy = object_hash['flashCachePolicy']
1099
+
1100
+ self.qos_enabled = object_hash['qosEnabled']
1101
+
1102
+ end
1103
+ end
1104
+
1105
+ class Space
1106
+
1107
+ # [type - Number]
1108
+ # Reserved space in MiB.
1109
+ attr_accessor :reserved_MiB
1110
+
1111
+ # [type - Number]
1112
+ # Raw reserved space in MiB.
1113
+ attr_accessor :raw_reserved_MiB
1114
+
1115
+ # [type - Number]
1116
+ # Used space in MiB.
1117
+ attr_accessor :used_MiB
1118
+
1119
+ # [type - Number]
1120
+ # Free space in MiB.
1121
+ attr_accessor :free_MiB
1122
+
1123
+ def initialize(object_hash)
1124
+ if object_hash == nil
1125
+ return
1126
+ end
1127
+
1128
+ self.reserved_MiB = object_hash['reservedMiB']
1129
+
1130
+ self.raw_reserved_MiB = object_hash['rawReservedMiB']
1131
+
1132
+ self.used_MiB = object_hash['usedMiB']
1133
+
1134
+ self.free_MiB = object_hash['freeMiB']
1135
+
1136
+ end
1137
+ end
1138
+
1139
+
1140
+ class LDLayoutCapacity
1141
+
1142
+ # [type - Number]
1143
+ # Raw free capacity in MiB.
1144
+ attr_accessor :rawfree_in_mib
1145
+
1146
+ # [type - Number]
1147
+ # LD free capacity in MiB.
1148
+ attr_accessor :usable_free_in_mib
1149
+
1150
+ # [type - Number]
1151
+ # System contains an over provisioned Virtual Size MiB.
1152
+ attr_accessor :overprovisioned_virtualsize_in_mib
1153
+
1154
+ # [type - Number]
1155
+ # System contains an over provisioned used MiB.
1156
+ attr_accessor :overprovisioned_used_in_mib
1157
+
1158
+ # [type - Number]
1159
+ # System contains an over provisioned allocated MiB.
1160
+ attr_accessor :overprovisioned_allocated_in_mib
1161
+
1162
+ # [type - Number]
1163
+ # System contains an over provisioned free MiB.
1164
+ attr_accessor :overprovisioned_free_in_mib
1165
+
1166
+ # [type - CapEfficiency]
1167
+ # Capacity efficiency attributes.
1168
+ attr_accessor :capacitefficiency
1169
+
1170
+ def initialize(object_hash)
1171
+ if object_hash == nil
1172
+ return
1173
+ end
1174
+
1175
+ self.rawfree_in_mib = object_hash['rawFreeMiB']
1176
+
1177
+ self.usable_free_in_mib = object_hash['usableFreeMiB']
1178
+
1179
+ self.overprovisioned_virtualsize_in_mib = object_hash['overProvisionedVirtualSizeMiB']
1180
+
1181
+ self.overprovisioned_used_in_mib= object_hash['overProvisionedUsedMiB']
1182
+
1183
+ self.overprovisioned_allocated_in_mib = object_hash['overProvisionedAllocatedMiB']
1184
+
1185
+ self.overprovisioned_free_in_mib = object_hash['overProvisionedFreeMiB']
1186
+
1187
+ self.capacitefficiency = CapEfficiency.new(object_hash['capacityEfficiency'])
1188
+
1189
+ end
1190
+ end
1191
+
1192
+ class CapEfficiency
1193
+
1194
+ # [type - Number]
1195
+ # The compaction ratio indicates the overall amount of storage space saved with 3PAR thin technology.
1196
+ attr_accessor :compaction
1197
+
1198
+ # [type - Number]
1199
+ # Indicates the amount of storage space saved using Compression.
1200
+ attr_accessor :compression
1201
+
1202
+ # [type - Number]
1203
+ # Indicates the amount of storage space saved using deduplication and compression together.
1204
+ attr_accessor :data_reduction
1205
+
1206
+ # [type - Number]
1207
+ # Overprovisioning ratio.
1208
+ attr_accessor :over_provisioning
1209
+
1210
+ # [type - Number]
1211
+ # The deduplication ratio indicates the amount of storage space saved with 3PAR thin deduplication.
1212
+ attr_accessor :deduplication
1213
+
1214
+ def initialize(object_hash)
1215
+ if object_hash == nil
1216
+ return
1217
+ end
1218
+
1219
+ self.compaction = object_hash['compaction']
1220
+
1221
+ self.compression = object_hash['compression']
1222
+
1223
+ self.data_reduction = object_hash['dataReduction']
1224
+
1225
+ self.over_provisioning = object_hash['overProvisioning']
1226
+
1227
+ self.deduplication = object_hash['deduplication']
1228
+
1229
+ end
1230
+ end
1231
+
1232
+
1233
+ class Policy
1234
+
1235
+ # [type - Boolean]
1236
+ # true: Stale snapshots. If there is no space for a copyon-
1237
+ # write operation, the snapshot can go stale but the
1238
+ # host write proceeds without an error.
1239
+ # false: No stale snapshots. If there is no space for a
1240
+ # copy-on-write operation, the host write fails.
1241
+ attr_accessor :stale_ss
1242
+
1243
+ # [type - Boolean]
1244
+ # true: Indicates a volume is constrained to export to
1245
+ # one host or one host cluster.
1246
+ # false: Indicates a volume exported to multiple hosts
1247
+ # for use by a cluster-aware application, or when port
1248
+ # presents VLUNs are used
1249
+ attr_accessor :one_host
1250
+
1251
+ # [type - Boolean]
1252
+ # true: Indicates that the storage system scans for
1253
+ # zeros in the incoming write data.
1254
+ # false: Indicates that the storage system does not
1255
+ # scan for zeros in the incoming write data.
1256
+ attr_accessor :zero_detect
1257
+
1258
+ # [type - Boolean]
1259
+ # true: Special volume used by the system.
1260
+ # false: Normal user volume.
1261
+ attr_accessor :system
1262
+
1263
+ # [type - Boolean]
1264
+ # This is a read-only policy and cannot be set.
1265
+ # true: Indicates that the storage system is enabled for
1266
+ # write caching, read caching, and read ahead for the
1267
+ # volume.
1268
+ # false: Indicates that the storage system is disabled
1269
+ # for write caching, read caching, and read ahead for the
1270
+ # volume.
1271
+ attr_accessor :caching
1272
+
1273
+ # [type - Boolean]
1274
+ # true: Stale snapshots. If there is no space for a copyon-
1275
+ #write operation, the snapshot can go stale but the
1276
+ #host write proceeds without an error.
1277
+ #false: No stale snapshots. If there is no space for a
1278
+ #copy-on-write operation, the host write fails.
1279
+ attr_accessor :fsvc
1280
+
1281
+ # [type - Number]
1282
+ # Type of host based DIF policy. - Hpe3parSdk::VolumeHostDIF
1283
+ attr_accessor :host_dif
1284
+
1285
+ def initialize(object_hash)
1286
+ if object_hash == nil
1287
+ return
1288
+ end
1289
+
1290
+ self.stale_ss = object_hash['staleSS']
1291
+
1292
+ self.one_host = object_hash['oneHost']
1293
+
1294
+ self.zero_detect = object_hash['zeroDetect']
1295
+
1296
+ self.system = object_hash['system']
1297
+
1298
+ self.caching = object_hash['caching']
1299
+
1300
+ self.fsvc = object_hash['fsvc']
1301
+
1302
+ self.host_dif = object_hash['hostDIF']
1303
+
1304
+ end
1305
+ end
1306
+
1307
+ class FCPath
1308
+
1309
+ # [type - String]
1310
+ # A WWN assigned to the host.
1311
+ attr_accessor :wwn
1312
+
1313
+ # [type - PortPos]
1314
+ # The portpos details.
1315
+ attr_accessor :port_pos
1316
+
1317
+ # [type - String]
1318
+ # HBA firmware version.
1319
+ attr_accessor :firmware_version
1320
+
1321
+ # [type - String]
1322
+ # HBA vendor.
1323
+ attr_accessor :vendor
1324
+
1325
+ # [type - String]
1326
+ # HBA model.
1327
+ attr_accessor :model
1328
+
1329
+ # [type - String]
1330
+ # HBA driver version.
1331
+ attr_accessor :driver_version
1332
+
1333
+ # [type - String]
1334
+ # HBA host speed.
1335
+ attr_accessor :host_speed
1336
+
1337
+ def initialize(object_hash)
1338
+ if object_hash == nil
1339
+ return
1340
+ end
1341
+
1342
+ self.wwn = object_hash['wwn']
1343
+
1344
+ !object_hash['portPos'].nil? ? self.port_pos = PortPos.new(object_hash['portPos']) : self.port_pos = nil
1345
+
1346
+ self.firmware_version = object_hash['firmwareVersion']
1347
+
1348
+ self.vendor = object_hash['vendor']
1349
+
1350
+ self.model = object_hash['model']
1351
+
1352
+ self.driver_version = object_hash['driverVersion']
1353
+
1354
+ self.host_speed = object_hash['hostSpeed']
1355
+
1356
+ end
1357
+ end
1358
+
1359
+ class SCSIPath
1360
+
1361
+ # [type - String]
1362
+ # An iSCSI name to be assigned to the host.
1363
+ attr_accessor :name
1364
+
1365
+ # [type - PortPos]
1366
+ # The portpos details.
1367
+ attr_accessor :port_pos
1368
+
1369
+ # [type - String]
1370
+ # IP address for Remote Copy.
1371
+ attr_accessor :ipaddr
1372
+
1373
+ # [type - String]
1374
+ # HBA firmware version.
1375
+ attr_accessor :firmware_version
1376
+
1377
+ # [type - String]
1378
+ # HBA vendor.
1379
+ attr_accessor :vendor
1380
+
1381
+ # [type - String]
1382
+ # HBA model.
1383
+ attr_accessor :model
1384
+
1385
+ # [type - String]
1386
+ # HBA driver version.
1387
+ attr_accessor :driver_version
1388
+
1389
+ # [type - String]
1390
+ # HBA host speed.
1391
+ attr_accessor :host_speed
1392
+
1393
+ def initialize(object_hash)
1394
+ if object_hash == nil
1395
+ return
1396
+ end
1397
+
1398
+ self.name = object_hash['name']
1399
+
1400
+ !object_hash['portPos'].nil? ? self.port_pos = PortPos.new(object_hash['portPos']) : self.port_pos = nil
1401
+
1402
+ self.ipaddr = object_hash['IPAddr']
1403
+
1404
+ self.firmware_version = object_hash['firmwareVersion']
1405
+
1406
+ self.vendor = object_hash['vendor']
1407
+
1408
+ self.model = object_hash['model']
1409
+
1410
+ self.driver_version = object_hash['driverVersion']
1411
+
1412
+ self.host_speed = object_hash['hostSpeed']
1413
+
1414
+ end
1415
+ end
1416
+
1417
+ class Descriptors
1418
+
1419
+ # [type - String]
1420
+ # The host’s location.
1421
+ attr_accessor :location
1422
+
1423
+ # [type - String]
1424
+ # The host’s IP address.
1425
+ attr_accessor :ipaddr
1426
+
1427
+ # [type - String]
1428
+ # The operating system running on the host.
1429
+ attr_accessor :os
1430
+
1431
+ # [type - String]
1432
+ # The host’s model.
1433
+ attr_accessor :model
1434
+
1435
+ # [type - String]
1436
+ # The host’s owner and contact.
1437
+ attr_accessor :contact
1438
+
1439
+ # [type - String]
1440
+ # Any additional information for the host.
1441
+ attr_accessor :comment
1442
+
1443
+ def initialize(object_hash)
1444
+ if object_hash == nil
1445
+ return
1446
+ end
1447
+
1448
+ self.location = object_hash['location']
1449
+
1450
+ self.ipaddr = object_hash['IPAddr']
1451
+
1452
+ self.os = object_hash['os']
1453
+
1454
+ self.model = object_hash['model']
1455
+
1456
+ self.contact = object_hash['contact']
1457
+
1458
+ self.comment = object_hash['comment']
1459
+ end
1460
+ end
1461
+
1462
+ class Agent
1463
+
1464
+ # [type - String]
1465
+ # The host name reported by the agent.
1466
+ attr_accessor :reported_name
1467
+
1468
+ # [type - String]
1469
+ # The host agent IP address.
1470
+ attr_accessor :ipaddr
1471
+
1472
+ # [type - String]
1473
+ # The architecture description of the host agent.
1474
+ attr_accessor :architecture
1475
+
1476
+ # [type - String]
1477
+ # Operating system of the host agent.
1478
+ attr_accessor :os
1479
+
1480
+ # [type - String]
1481
+ # The operating system version of the host agent.
1482
+ attr_accessor :os_version
1483
+
1484
+ # [type - String]
1485
+ # The operating system patch level of host agent.
1486
+ attr_accessor :os_patch
1487
+
1488
+ # [type - String]
1489
+ # The multipathing software in use by the host agent.
1490
+ attr_accessor :multi_path_software
1491
+
1492
+ # [type - String]
1493
+ # The multipathing software version.
1494
+ attr_accessor :multi_path_software_version
1495
+
1496
+ # [type - String]
1497
+ # Name of the host cluster of which the host is a member.
1498
+ attr_accessor :cluster_name
1499
+
1500
+ # [type - String]
1501
+ # Host clustering software in use on host.
1502
+ attr_accessor :cluster_software
1503
+
1504
+ # [type - String]
1505
+ # Version of the host clustering software in use.
1506
+ attr_accessor :cluster_version
1507
+
1508
+ # [type - String]
1509
+ # Identifier for the cluster.
1510
+ attr_accessor :cluster_id
1511
+
1512
+ # [type - String]
1513
+ # Identifier for the host agent.
1514
+ attr_accessor :hosted
1515
+
1516
+ def initialize(object_hash)
1517
+ if object_hash == nil
1518
+ return
1519
+ end
1520
+
1521
+ self.reported_name = object_hash['reportedName']
1522
+
1523
+ self.ipaddr = object_hash['IPAddr']
1524
+
1525
+ self.architecture = object_hash['architecture']
1526
+
1527
+ self.os = object_hash['os']
1528
+
1529
+ self.os_version = object_hash['osVersion']
1530
+
1531
+ self.os_patch = object_hash['osPatch']
1532
+
1533
+ self.multi_path_software = object_hash['multiPathSoftware']
1534
+
1535
+ self.multi_path_software_version = object_hash['multiPathSoftwareVersion']
1536
+
1537
+ self.cluster_name = object_hash['clusterName']
1538
+
1539
+ self.cluster_software = object_hash['clusterSoftware']
1540
+
1541
+ self.cluster_version = object_hash['clusterVersion']
1542
+
1543
+ self.cluster_id = object_hash['clusterId']
1544
+
1545
+ self.hosted = object_hash['hosted']
1546
+
1547
+ end
1548
+ end
1549
+
1550
+ class PortPos
1551
+
1552
+ # [type - Number]
1553
+ # System node.
1554
+ attr_accessor :node
1555
+
1556
+ # [type - Number]
1557
+ # PCI bus slot in the node.
1558
+ attr_accessor :slot
1559
+
1560
+ # [type - Number]
1561
+ # Port number on the FC card.
1562
+ attr_accessor :card_port
1563
+
1564
+ def initialize(object_hash)
1565
+ if object_hash == nil
1566
+ return
1567
+ end
1568
+
1569
+ self.node = object_hash['node']
1570
+
1571
+ self.slot = object_hash['slot']
1572
+
1573
+ self.card_port = object_hash['cardPort']
1574
+
1575
+ end
1576
+ end
1577
+
1578
+ class Usage
1579
+
1580
+ # [type - Number]
1581
+ # Total logical disk space in MiB.
1582
+ attr_accessor :total_MiB
1583
+
1584
+ # [type - Number]
1585
+ # Total physical (raw) logical disk space in MiB.
1586
+ attr_accessor :raw_total_MiB
1587
+
1588
+ # [type - Number]
1589
+ # Amount of logical disk used, in MiB.
1590
+ attr_accessor :used_MiB
1591
+
1592
+ # [type - Number]
1593
+ # Amount of physical (raw) logical disk used, in MiB.
1594
+ attr_accessor :raw_used_MiB
1595
+
1596
+ def initialize(object_hash)
1597
+ if object_hash == nil
1598
+ return
1599
+ end
1600
+
1601
+ self.total_MiB = object_hash['totalMiB']
1602
+
1603
+ self.raw_total_MiB = object_hash['rawTotalMiB']
1604
+
1605
+ self.used_MiB = object_hash['usedMiB']
1606
+
1607
+ self.raw_used_MiB = object_hash['rawUsedMiB']
1608
+
1609
+ end
1610
+ end
1611
+
1612
+ class GrowthParams
1613
+
1614
+ # [type - Number]
1615
+ # The growth increment, the amount of logical disk storage created on each auto-grow operation.
1616
+ attr_accessor :increment_MiB
1617
+
1618
+ # [type - LDLayout]
1619
+ # Logical disk types for this CPG.
1620
+ attr_accessor :ld_layout
1621
+
1622
+ # [type - Number]
1623
+ # Threshold of used logical disk space, when exceeded, results in a warning alert.
1624
+ attr_accessor :warning_MiB
1625
+
1626
+ # [type - Number]
1627
+ # The auto-grow operation is limited to the specified storage amount that sets the growth limit.
1628
+ attr_accessor :limit_MiB
1629
+
1630
+ def initialize(object_hash)
1631
+ if object_hash == nil
1632
+ return
1633
+ end
1634
+
1635
+ self.warning_MiB = object_hash['warningMiB']
1636
+
1637
+ self.limit_MiB = object_hash['limitMiB']
1638
+
1639
+ self.increment_MiB = object_hash['incrementMiB']
1640
+
1641
+ self.ld_layout = LDLayout.new(object_hash['LDLayout'])
1642
+
1643
+ end
1644
+ end
1645
+
1646
+ class PrivateSpace
1647
+
1648
+ # [type - Number]
1649
+ # Base space in MiB.
1650
+ attr_accessor :base
1651
+
1652
+ # [type - Number]
1653
+ # Raw base space in MiB.
1654
+ attr_accessor :raw_base
1655
+
1656
+ # [type - Number]
1657
+ # snapshot space in MiB.
1658
+ attr_accessor :snapshot
1659
+
1660
+ # [type - Number]
1661
+ # Raw snapshot space in MiB.
1662
+ attr_accessor :raw_snapshot
1663
+
1664
+ def initialize(object_hash)
1665
+ if object_hash == nil
1666
+ return
1667
+ end
1668
+
1669
+ self.base = object_hash['base']
1670
+
1671
+ self.raw_base = object_hash['rawBase']
1672
+
1673
+ self.snapshot = object_hash['snapshot']
1674
+
1675
+ self.raw_snapshot = object_hash['rawSnapshot']
1676
+
1677
+ end
1678
+ end
1679
+
1680
+ class LDLayout
1681
+
1682
+ # [type - Number]
1683
+ # Specifies the RAID type for the logical disk. - Hpe3parSdk::CPGRAIDType
1684
+ attr_accessor :raidtype
1685
+
1686
+ # [type - Number]
1687
+ # Specifies the set size in the number of chunklets.
1688
+ attr_accessor :set_size
1689
+
1690
+ # [type - Number]
1691
+ # Specifies that the layout must support the failure of one port pair, one cage, or one magazine. - Hpe3parSdk::CPGHA
1692
+ attr_accessor :ha
1693
+
1694
+ # [type - Number]
1695
+ # Specifies the chunklet location preference characteristics. - Hpe3parSdk::CPGChunkletPosPref
1696
+ attr_accessor :chunklet_pos_pref
1697
+
1698
+ # [type - Array of DiskPattern objects]
1699
+ # Specifies patterns for candidate disks.
1700
+ attr_accessor :disk_patterns
1701
+
1702
+ def initialize(object_hash)
1703
+ if object_hash == nil
1704
+ return
1705
+ end
1706
+
1707
+ self.raidtype = object_hash['RAIDType']
1708
+
1709
+ self.set_size = object_hash['setSize']
1710
+
1711
+ self.ha = object_hash['HA']
1712
+
1713
+ self.chunklet_pos_pref = object_hash['chunkletPosPref']
1714
+
1715
+ self.disk_patterns = []
1716
+ if !object_hash['diskPatterns'].nil?
1717
+ object_hash['diskPatterns'].each do |disk_pattern|
1718
+ self.disk_patterns.push(DiskPattern.new(disk_pattern))
1719
+ end
1720
+ end
1721
+ end
1722
+ end
1723
+
1724
+ class DiskPattern
1725
+
1726
+ # [type - String]
1727
+ # Specifies one or more nodes. Nodes are identified by one or more integers. Multiple nodes are separated with a single comma (1,2,3). A range of nodes is separated with a hyphen (0–7). The primary path of the disks must be on the specified node number.
1728
+ attr_accessor :node_list
1729
+
1730
+ # [type - String]
1731
+ # Specifies one or more PCI slots. Slots are identified by one or more integers. Multiple slots are separated with a single comma (1,2,3). A range of slots is separated with a hyphen (0–7). The primary path of the disks must be on the specified PCI slot number(s).
1732
+ attr_accessor :slot_list
1733
+
1734
+ # [type - String]
1735
+ # Specifies one or more ports. Ports are identified by one or more integers. Multiple ports are separated with a single comma (1,2,3). A range of ports is separated with a hyphen (0–4). The primary path of the disks must be on the specified port number(s).
1736
+ attr_accessor :port_list
1737
+
1738
+ # [type - String]
1739
+ # Specifies one or more drive cages. Drive cages are identified by one or more integers. Multiple drive cages are separated with a single comma (1,2,3). A range of drive cages is separated with a hyphen (0– 3). The specified drive cage(s) must contain disks.
1740
+ attr_accessor :cage_list
1741
+
1742
+ # [type - String]
1743
+ # Specifies one or more drive magazines. Drive magazines are identified by one or more integers. Multiple drive magazines are separated with a single comma (1,2,3). A range of drive magazines is separated with a hyphen (0–7). The specified magazine(s) must contain disks.
1744
+ attr_accessor :mag_list
1745
+
1746
+ # [type - String]
1747
+ # Specifies one or more disk positions within a drive magazine. Disk positions are identified by one or more integers. Multiple disk positions are separated with a single comma (1,2,3). A range of disk positions is separated with a hyphen (0–3). The specified portion(s) must contain disks.
1748
+ attr_accessor :disk_pos_list
1749
+
1750
+ # [type - String]
1751
+ # Specifies one or more physical disks. Disks are identified by one or more integers. Multiple disks are separated with a single comma (1,2,3). A range of disks is separated with a hyphen (0–3). Disks must match the specified ID(s).
1752
+ attr_accessor :disk_list
1753
+
1754
+ # [type - Number]
1755
+ # Specifies that physical disks with total chunklets greater than the number specified be selected.
1756
+ attr_accessor :total_chunklets_greater_than
1757
+
1758
+ # [type - Number]
1759
+ # Specifies that physical disks with total chunklets less than the number specified be selected.
1760
+ attr_accessor :total_chunklets_less_than
1761
+
1762
+ # [type - Number]
1763
+ # Specifies that physical disks with free chunklets less than the number specified be selected.
1764
+ attr_accessor :free_chunklets_greater_than
1765
+
1766
+ # [type - Number]
1767
+ # Specifies that physical disks with free chunklets greater than the number specified be selected.
1768
+ attr_accessor :free_chunklets_less_than
1769
+
1770
+ # [type - array of string]
1771
+ # Specifies that PDs identified by their models are selected.
1772
+ attr_accessor :disk_models
1773
+
1774
+ # [type - Number]
1775
+ # Specifies that physical disks must have the specified device type. - Hpe3parSdk::CPGDiskType
1776
+ attr_accessor :disk_type
1777
+
1778
+ # [type - Number]
1779
+ # Disks must be of the specified speed.
1780
+ attr_accessor :rpm
1781
+
1782
+ def initialize(object_hash)
1783
+ if object_hash == nil
1784
+ return
1785
+ end
1786
+
1787
+ self.node_list = object_hash['nodeList']
1788
+
1789
+ self.slot_list = object_hash['slotList']
1790
+
1791
+ self.port_list = object_hash['portList']
1792
+
1793
+ self.cage_list = object_hash['cageList']
1794
+
1795
+ self.mag_list = object_hash['magList']
1796
+
1797
+ self.disk_pos_list = object_hash['diskPosList']
1798
+
1799
+ self.disk_list = object_hash['diskList']
1800
+
1801
+ self.total_chunklets_greater_than = object_hash['totalChunkletsGreaterThan']
1802
+
1803
+ self.total_chunklets_less_than = object_hash['totalChunkletsLessThan']
1804
+
1805
+ self.free_chunklets_greater_than = object_hash['freeChunkletsGreaterThan']
1806
+
1807
+ self.free_chunklets_less_than = object_hash['freeChunkletsLessThan']
1808
+
1809
+ self.disk_models = object_hash['diskModels']
1810
+
1811
+ self.disk_type = object_hash['diskType']
1812
+
1813
+ self.rpm = object_hash['RPM']
1814
+
1815
+ end
1816
+ end
1817
+
1818
+ class Task
1819
+
1820
+ # [type - Number]
1821
+ # Task ID.
1822
+ attr_accessor :task_id
1823
+
1824
+ # [type - Number]
1825
+ # Task Status.
1826
+ attr_accessor :status
1827
+
1828
+ # [type - String]
1829
+ # Task name.
1830
+ attr_accessor :name
1831
+
1832
+ # [type - Number]
1833
+ # Task type.
1834
+ attr_accessor :type
1835
+
1836
+ def initialize(object_hash)
1837
+ if object_hash == nil
1838
+ return
1839
+ end
1840
+
1841
+ self.task_id = object_hash['id']
1842
+
1843
+ self.status = object_hash['status']
1844
+
1845
+ self.name = object_hash['name']
1846
+
1847
+ self.type = object_hash['type']
1848
+ end
1849
+ end
1850
+ end