Sha256: d1e49fba4afff8c5ec4ef312ee26d9bdd9a45c396364ef833c883e351b2c5c36

Contents?: true

Size: 1.59 KB

Versions: 3

Compression:

Stored size: 1.59 KB

Contents

module FogExtensions
  module Vsphere
    module Snapshots
      module Real
        # Extends fog-vsphere gem for a remove Snapshot method.
        def remove_snapshot(options = {})
          raise ArgumentError, 'snapshot is a required parameter' unless options.key? 'snapshot'
          raise ArgumentError, 'removeChildren is a required parameter' unless options.key? 'removeChildren'

          unless ::Fog::Compute::Vsphere::Snapshot === options['snapshot']
            raise ArgumentError, 'snapshot is a required parameter'
          end

          task = options['snapshot'].mo_ref.RemoveSnapshot_Task(
            removeChildren: options['removeChildren']
          )
          task.wait_for_completion

          {
            'task_state' => task.info.state
          }
        end

        # Extends fog-vsphere gem for a rename Snapshot method.
        # Does not have a return value, VMWare API throws a fault if there are errors
        def rename_snapshot(options = {})
          raise ArgumentError, 'snapshot is a required parameter' unless options.key? 'snapshot'
          raise ArgumentError, 'name is a required parameter' unless options.key? 'name'
          raise ArgumentError, 'description is a required parameter' unless options.key? 'description'

          unless ::Fog::Compute::Vsphere::Snapshot === options['snapshot']
            raise ArgumentError, 'snapshot is a required parameter'
          end

          options['snapshot'].mo_ref.RenameSnapshot(
            name: options['name'],
            description: options['description']
          )
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
foreman_snapshot_management-1.3.0 app/models/concerns/fog_extensions/vsphere/snapshots/real.rb
foreman_snapshot_management-1.2.0 app/models/concerns/fog_extensions/vsphere/snapshots/real.rb
foreman_snapshot_management-1.1.0 app/models/concerns/fog_extensions/vsphere/snapshots/real.rb