build_storage_change

in cookbooks/aws-parallelcluster-slurm/spec/unit/libraries/storage_spec.rb [59:106]


def build_storage_change(type, ownership, action)
  storage_identified = case type
                       when "Ebs", "FsxOntap", "FsxOpenZfs"
                         "VolumeId"
                       when "FileCache"
                         "FileCacheId"
                       else
                         "FileSystemId"
                       end
  storage_settings = case ownership
                     when "external"
                       {
                         storage_identified => "STORAGE_ID",
                       }
                     when "managed"
                       {
                         "SETTING_1" => "VALUE_1",
                         "SETTING_2" => "VALUE_2",
                       }
                     end
  case action
  when "mount"
    current_value = nil
    requested_value = {
      "MountDir" => "/opt/shared/#{type}/#{ownership}/1",
      "Name" => "shared-#{type}-#{ownership}-external-1",
      "StorageType" => "#{type}",
      "#{type}Settings" => storage_settings,
    }
  when "unmount"
    current_value = {
      "MountDir" => "/opt/shared/#{type}/#{ownership}/1",
      "Name" => "shared-#{type}-#{ownership}-external-1",
      "StorageType" => "#{type}",
      "#{type}Settings" => storage_settings,
    }
    requested_value = nil
  else
    raise "Unrecognized action #{action}. It must be one of : mount, unmount"
  end

  {
    "parameter" => "SharedStorage",
    "currentValue" => current_value,
    "requestedValue" => requested_value,
  }
end