Sha256: 64b5ad3a6624307d32f869ef785eb5d62623d9a164b5ac74afbb62c24a002552

Contents?: true

Size: 1.76 KB

Versions: 52

Compression:

Stored size: 1.76 KB

Contents

module Fog
  module AWS
    class EFS
      class MountTarget < Fog::Model
        identity :id, :aliases => "MountTargetId"

        attribute :file_system_id,       :aliases => "FileSystemId"
        attribute :ip_address,           :aliases => "IpAddress"
        attribute :state,                :aliases => "LifeCycleState"
        attribute :network_interface_id, :aliases => "NetworkInterfaceId"
        attribute :owner_id,             :aliases => "OwnerId"
        attribute :subnet_id,            :aliases => "SubnetId"

        def ready?
          state == 'available'
        end

        def destroy
          requires :identity
          service.delete_mount_target(self.identity)
          true
        end

        def file_system
          requires :file_system_id
          service.file_systems.get(self.file_system_id)
        end

        def security_groups
          if persisted?
            requires :identity
            service.describe_mount_target_security_groups(self.identity).body["SecurityGroups"]
          else
            @security_groups || []
          end
        end

        def security_groups=(security_groups)
          if persisted?
            requires :identity
            service.modify_mount_target_security_groups(self.identity, security_groups)
          else
            @security_groups = security_groups
          end
          security_groups
        end

        def save
          requires :file_system_id, :subnet_id
          params = {}
          params.merge!('IpAddress' => self.ip_address) if self.ip_address
          params.merge!('SecurityGroups' => @security_groups) if @security_groups

          merge_attributes(service.create_mount_target(self.file_system_id, self.subnet_id, params).body)
        end
      end
    end
  end
end

Version data entries

52 entries across 50 versions & 2 rubygems

Version Path
fog-aws-3.30.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.29.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.28.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.27.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.26.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.25.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.24.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.23.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.22.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.21.1 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.21.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.20.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.19.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.18.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.17.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.16.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.15.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.14.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.13.0 lib/fog/aws/models/efs/mount_target.rb
fog-aws-3.12.0 lib/fog/aws/models/efs/mount_target.rb