Class: MintPress::InfrastructureZfsAppliance::UsingExtraZfsFilesystem

Inherits:
ZfsFilesystem show all
Includes:
Mixins::GenericProvider, Mixins::Properties
Defined in:
src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb

Properties (Read/Write)

  • #name (Default Value: 'ExtraZfsFilesystemProvider')

    Property Attributes
    • default'ExtraZfsFilesystemProvider'
    
    
    167
    # File 'src/mintpress-infrastructure-zfs-appliance/lib/mintpress-infrastructure-zfs-appliance/zfs-filesystem.rb', line 167
    
    property :name, default: 'ExtraZfsFilesystemProvider'
  • #platform ⇒ MintPress::InfrastructureZfsAppliance::ZfsPlatform (Default Value: MintPress::InfrastructureZfsAppliance::ZfsPlatform.new)
    The ZFS Platform object, from which all credentials and client is accessible

    Property Attributes
    • defaultMintPress::InfrastructureZfsAppliance::ZfsPlatform.new
    • requiredtrue
    
    
    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
    • requiredtrue
    
    
    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
    • fromString
    • requiredtrue
    
    
    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
    • fromProc.new { |v| MintPress::InfrastructureZfsAppliance::ZfsProject.new(name: v, pool: self.pool) }
    • requiredtrue
    
    
    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 Attributes
    
    
    44
    # 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
    • defaultProc.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
    • defaultProc.new { self.discover_mount_point }
    • cached_proctrue
    
    
    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 Attributes
    
    
    14
    # 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 Attributes
    
    
    16
    # 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
    • defaultProc.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 Attributes
    
    
    23
    # 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
    • defaultProc.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 Attributes
    
    
    27
    # 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
    • defaulttrue
    
    
    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 Attributes
    
    
    31
    # 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 Attributes
    
    
    10
    # 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 Attributes
    
    
    12
    # 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 Attributes
    
    
    14
    # 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 Attributes
    
    
    16
    # 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
    • defaulttrue
    
    
    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
    • default2
    
    
    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
    • defaultProc.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 Attributes
    
    
    26
    # 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
    • defaultfalse
    
    
    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

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 included from MintLogger::Utils::Common

#boolean_val, #has_value?, #no_value?, #nvl, #path_as_symbol, #ruby_level_to_send

Methods included from Mixins::GenericProvider

included, #register_provider, #register_sub_provider

Methods inherited from ZfsFilesystem

#create, #delete, #discover_mount_point, #exist?, #exists?, #fill_in_properties, #get, #harvest, #modify, #update

Methods inherited from MintPress::Infrastructure::MountPoint

#mount, #mounted?, #unmount, #unpersist

Constructor Details

#initialize(opts = {}) ⇒ UsingExtraZfsFilesystem

Returns a new instance of UsingExtraZfsFilesystem.