Class: MintPress::InfrastructureZfsAppliance::ZfsFilesystem
- Inherits:
-
MintPress::Infrastructure::NasShare
- Object
- MintPress::Infrastructure::MountPoint
- MintPress::Infrastructure::NasShare
- MintPress::InfrastructureZfsAppliance::ZfsFilesystem
- Includes:
- MintLogger, Mixins::GenericProvider, Mixins::Properties
- Defined in:
- src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb
Direct Known Subclasses
Properties (Read/Write)
-
#platform ⇒ MintPress::InfrastructureZfsAppliance::ZfsPlatform (Default Value: MintPress::InfrastructureZfsAppliance::ZfsPlatform.new)
The ZFS Platform object, from which all credentials and client is accessible
Property Attributes- default ⇒ MintPress::InfrastructureZfsAppliance::ZfsPlatform.new
- required ⇒ true
28
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 28 property :platform, type: MintPress::InfrastructureZfsAppliance::ZfsPlatform, default: MintPress::InfrastructureZfsAppliance::ZfsPlatform.new, required: true
-
#name ⇒ String
The name of the filesystem
Property Attributes- required ⇒ true
31
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 31 property :name, type: String, required: true
-
#pool ⇒ MintPress::InfrastructureZfsAppliance::ZfsPool
The ZFS Pool
Property Attributes- from ⇒ String
- required ⇒ true
34
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 34 property :pool, type: MintPress::InfrastructureZfsAppliance::ZfsPool, from: String, required: true
-
#project ⇒ MintPress::InfrastructureZfsAppliance::ZfsProject
The ZFS Project
Property Attributes- from ⇒ Proc.new { |v| MintPress::InfrastructureZfsAppliance::ZfsProject.new(name: v, pool: self.pool) }
- required ⇒ true
37
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 37 property :project, type: MintPress::InfrastructureZfsAppliance::ZfsProject, from: Proc.new { |v| MintPress::InfrastructureZfsAppliance::ZfsProject.new(name: v, pool: self.pool) }, required: true
-
#properties ⇒ Hash (Default Value: {})
Optional properties to be passed into the API This is not a propertyhash on purpose
Property Attributes- default ⇒ {}
41
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 41 property :properties, type: Hash, default: {}
-
#snapshots ⇒ Hash of ⇒ MintPress::InfrastructureZfsAppliance::ZfsFilesystemSnapshot
Hash of Filesystem Snapshots for the filesystem
Property Attributes44
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 44 property :snapshots, hash: true, type: MintPress::InfrastructureZfsAppliance::ZfsFilesystemSnapshot
-
#export_address (Default Value: Proc.new { self.platform.mount_ip })
On ZFS, we default to the mount IP - we don't use the API url for this
Property Attributes- default ⇒ Proc.new { self.platform.mount_ip }
49
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 49 property :export_address, default: Proc.new { self.platform.mount_ip }
-
#export_name (Default Value: Proc.new { self.discover_mount_point })
Our export name defaults to the name on ZFS
Property Attributes- default ⇒ Proc.new { self.discover_mount_point }
- cached_proc ⇒ true
51
# File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 51 property :export_name, default: Proc.new { self.discover_mount_point }, cached_proc: true
-
#export_address ⇒ IPAddr
Address of the NAS server
Property Attributes14
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 14 property :export_address, type: IPAddr
-
#export_name ⇒ String
Name of the path to mount
Property Attributes16
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 16 property :export_name, type: String
-
#device_node ⇒ String (Default Value: Proc.new { "#{self.export_address}:#{self.export_name}" })
The actual mount string - this defaults to export_aderess:export_name, however you can override it here if you require something odd
Property Attributes- default ⇒ Proc.new { "#{self.export_address}:#{self.export_name}" }
19
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 19 property :device_node, type: String, default: Proc.new { "#{self.export_address}:#{self.export_name}" }
-
#filesystem ⇒ String (Default Value: 'nfs')
Which FS type - usually this is 'nfs', but it could be pnfs or some other not-quite-nfs implementation
Property Attributes- default ⇒ 'nfs'
21
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 21 property :filesystem, type: String, default: 'nfs'
-
#ro_hosts ⇒ Array of ⇒ String
From which hosts this NFS share should be configured to be read-write
Property Attributes23
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 23 property :ro_hosts, type: String, array: true
-
#rw_hosts ⇒ Array of ⇒ String (Default Value: Proc.new { ["#{self.host.values[0].get_local_ip(self.export_address).to_s}/32"] })
From which hosts this NFS share should be configured to be read-only
Property Attributes- default ⇒ Proc.new { ["#{self.host.values[0].get_local_ip(self.export_address).to_s}/32"] }
25
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 25 property :rw_hosts, type: String, array: true, default: Proc.new { ["#{self.host.values[0].get_local_ip(self.export_address).to_s}/32"] }
-
#size_mb ⇒ Integer
How large should this FS be, if we create it?
Property Attributes27
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 27 property :size_mb, type: Integer
-
#is_netdev ⇒ [TrueClass, FalseClass] (Default Value: true)
Property Attributes- default ⇒ true
28
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 28 property :is_netdev, type: [TrueClass, FalseClass], default: true
-
#host ⇒ Hash of ⇒ MintPress::Infrastructure::Host
Which host is this storage attached to?
Property Attributes31
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 31 property :host, type: MintPress::Infrastructure::Host, hash: true
-
#parent ⇒ MintPress::Infrastructure::Host
Property Attributes- prop_name ⇒ :nas_shares
32
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/nas_share.rb', line 32 property :parent, type: MintPress::Infrastructure::Host, prop_name: :nas_shares
-
#name ⇒ String
Property Attributes10
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 10 property :name, type: String
-
#mount_point ⇒ String
Path to mount the filesystem on the target
Property Attributes12
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 12 property :mount_point, type: String
-
#device_node ⇒ String
Device node to mount - '/dev/sda5' or '/dev/large_vg/large_lvol' for example
Property Attributes14
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 14 property :device_node, type: String
-
#filesystem ⇒ String
Filesystem type - for example, ext4, xfs, nfs
Property Attributes16
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 16 property :filesystem, type: String
-
#persistant ⇒ [TrueClass, FalseClass] (Default Value: true)
Should it persist in /etc/fstab?
Property Attributes- default ⇒ true
18
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 18 property :persistant, default: true, type: [TrueClass, FalseClass]
-
#pass ⇒ Integer (Default Value: 2)
Pass for fstab entry
Property Attributes- default ⇒ 2
20
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 20 property :pass, type: Integer, default: 2
-
#dump ⇒ Integer (Default Value: Proc.new { self.pass })
Dump setting for fstab entry
Property Attributes- default ⇒ Proc.new { self.pass }
22
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 22 property :dump, type: Integer, default: Proc.new { self.pass }
-
#options ⇒ Array of ⇒ String (Default Value: 'defaults')
Filesystem options for fstab
Property Attributes- default ⇒ 'defaults'
24
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 24 property :options, type: String, array: true, default: 'defaults'
-
#host ⇒ Hash of ⇒ MintPress::Infrastructure::Host
The hosts to which this mountpoint applies
Property Attributes26
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 26 property :host, type: MintPress::Infrastructure::Host, hash: true
-
#is_netdev ⇒ [TrueClass, FalseClass] (Default Value: false)
Is this at the other end of a network? Defaults to 'false', unless the class is iscsi in which case it defaults to 'true'
Property Attributes- default ⇒ false
29
# File 'src/mintpress-infrastructure/lib/mintpress-infrastructure/mount.rb', line 29 property :is_netdev, type: [TrueClass, FalseClass], default: false
Properties (Read Only)
Constant Summary
Constants included from MintLogger
MintLogger::DEBUG, MintLogger::ERROR, MintLogger::FATAL, MintLogger::INFO, MintLogger::UNKNOWN, MintLogger::VERBOSE, MintLogger::WARN
Instance Attribute Summary
Attributes included from Mixins::Properties
#autopush_set_cache, #dynamic_create, #harvest_on_access, #harvest_undefined_only, #harvested, #tree_root
Instance Method Summary collapse
-
#create ⇒ Object
Create the filesystem.
-
#delete ⇒ Object
Delete the filesystem.
- #discover_mount_point ⇒ Object
-
#exist? ⇒ Boolean
Does the filesystem exist?.
-
#exists? ⇒ Boolean
Alias to exist?.
-
#fill_in_properties ⇒ Object
Augment the properties hash with values specified by users.
-
#get ⇒ Object
Get details of the filesystem.
-
#harvest ⇒ Object
Harvest filesystem details.
-
#initialize(opts = {}) ⇒ ZfsFilesystem
constructor
A new instance of ZfsFilesystem.
-
#modify ⇒ Object
Modify the filesystem.
- #update ⇒ Object
Methods included from Mixins::GenericProvider
included, #register_provider, #register_sub_provider
Methods included from MintLogger::Utils::Common
#boolean_val, #has_value?, #no_value?, #nvl, #path_as_symbol, #ruby_level_to_send
Methods included from Mixins::Properties
#[], #[]=, #add_validate_report_result, #armour_set_property, #array_contains?, #array_is_a?, #check_autopush, #check_stack_overflow, #clone_property_object, #cloner_handle_single_property, #coerce_single, #contains_as_string?, #display_validate_report_result, #double_initialize?, #dump_to_hash, #find_parent, #find_parent_by_identity, #generate_accessor_functions, #get_canonical_renamed, #get_from_opts, #get_my_name, #get_property, #get_property_item, #has?, included, #initialize_validate_report, #inspect, #is_cloned_object?, #is_mintpress_object?, #is_probably_canonical?, #is_set?, #local_debug, #local_info, #local_verbose, #mintpress_property_definitions, #place_object_by_identity, #process_properties, #prop_set?, #property, #property_definitions, #property_details, #property_is_simple_object?, #push_root!, #require_property, #require_update, #retrieve_docstring, #sanitize, #set_map_dirty, #set_property, #set_property_item, #show_short_array, #strip_defaults!, #synchronize, #uncloned_property_definitions, #update_map, #validate, #validate_generic, #validate_properties, #validate_property, #validate_required, #version_allowed?, #weakref
Methods inherited from MintPress::Infrastructure::MountPoint
#mount, #mounted?, #unmount, #unpersist