Tuesday, 12 February 2019

Prospecting for NetApp Verified Architectures

I’ve come across a few NetApp Verified Architectures in my time and thought they were pretty cool (similarly fabulous to Flexpod Design Guides.) But I’ve never seen a list of NVAs, and knowing that they are usually PDFs on https://www.netapp.com/us/media/ with the name nva-XXXX, or nva-XXXX-design, or nva-XXXX-deploy, I thought I’d try prospecting for them, using similar code to my NetApp Technical Report (TR) PowerShell Collector Script.

Full list of the NVAs discovered:

FlexPod Express with VMware vSphere 6.5 and FAS2600 (DEPLOY)

FlexPod Datacenter with Apprenda for PaaS (DESIGN)
Including Red Hat OpenStack 8, Docker Containers, NetApp Jenkins Plugin, and ONTAP 9

FlexPod Express with Microsoft Windows 2016 Hyper-V and FAS2600 (DEPLOY)

Converged Infrastructure Solution with NetApp E-Series and Splunk (DESIGN)

FlexPod Datacenter with Microsoft Applications and NetApp AFF A-Series (DESIGN)

FlexPod Datacenter with Microsoft Exchange 2016, SharePoint 2016, and NetApp AFF A300 (DEPLOY)

NetApp and Broadcom Modern SAN Cloud-Connected Flash Solution (DESIGN)
Oracle and SUSE NetApp Verified Architecture Design Edition

NetApp ONTAP AI, Powered by NVIDIA (DEPLOY)
Scalable AI Infrastructure for Real-World Deep Learning Use Cases: Deployment Guide

NetApp ONTAP AI, Powered by NVIDIA (DESIGN)
Scalable AI Infrastructure: Designing for Real-World Deep Learning Use Cases

VMware Private Cloud on NetApp HCI (DESIGN)

VMware Private Cloud on NetApp HCI (DESIGN)

FlexPod Express with VMware vSphere 6.7 and NetApp AFF A220 (DEPLOY)

Red Hat OpenShift Container Platform with NetApp HCI (DEPLOY)

Red Hat OpenShift Container Platform with NetApp HCI (DESIGN)

Red Hat OpenShift Container Platform with NetApp HCI (DESIGN)

FlexPod Express with Cisco UCS C-Series and AFF A220 Series (DESIGN)

NetApp and Broadcom Modern SAN Cloud-Connected Flash Solution (DESIGN)
Oracle and SUSE NetApp Verified Architecture Design Edition

NetApp and Broadcom Modern SAN Cloud-Connected Flash Solution (DESIGN)
MongoDB and SUSE NetApp Verified Architecture Design Edition

VMware Validated Design for NetApp HCI (DESIGN)
VVD 4.2 Architecture Design

VMware End-User Computing with NetApp HCI and NVIDIA GPUs (DESIGN)

FlexPod Express with VMware vSphere 6.7U1 and NetApp AFF A220 with Direct-Attached IP-Based Storage (DESIGN)

The Script Used to Prospect for NVAs:


[String]$DownloadFolder = "C:\NVAs\"
[String]$LogFilePath = "C:\NVAs\log.txt"
[Int]$RangeStart = 1000
[Int]$RangeEnd   = 1200
[System.Array]$Title = "","","",""

## Generic display function:
Function Wr{Param($P,$I="WHITE");Write-Host $P -ForegroundColor $I}

## Download the NVAs:
Import-Module BitsTransfer
For($i=$RangeStart; $i -le $RangeEnd; $i++){

  [String]$Title[1] = "nva-$i"
  [String]$Title[2] = "nva-$i-deploy"
  [String]$Title[3] = "nva-$i-design"
 
  For($t = 1;$t -le 3;$t++){
 
    [String]$WebUrl = ("https://www.netapp.com/us/media/" + $Title[$t] + ".pdf")
    [String]$SavePath = ($DownloadFolder + $Title[$t] + ".pdf")
   
    ## Get the header:
    $hdr = $NULL
    Try{$hdr = Invoke-WebRequest $WebUrl -Method Head}
    Catch{"Dead link: $WebUrl" | Out-File $LogFilePath -Append}
   
    ## If we have a header:
    If($hdr){
     
      ## Only download updated versions:
      $Download = $FALSE     
      If(Test-Path $SavePath){
        $SavedLRT = [DateTime]((Get-ChildItem $SavePath).LastWriteTime)
        $WebFileLRT = [DateTime]($hdr.headers."last-modified")
        If($WebFileLRT.Ticks -gt $SavedLRT.Ticks){
          [String]$OutputString = ("UPDATED: " + $Title[$t])
          $OutputString | Out-File $LogFilePath -Append
          Wr $OutputString GREEN
          $Download = $TRUE
        }else{
          [String]$OutputString = ("NO UPDATE: " + $Title[$t])
          Wr $OutputString
        }
      }else{
        [String]$OutputString = ("NEW D/LOAD: " + $Title[$t])
        $OutputString | Out-File $LogFilePath -Append
        Wr $OutputString GREEN
        $Download = $TRUE
      }
     
      ## Download:
      If($Download){
        Start-BitsTransfer -Source $WebUrl -Destination $SavePath
      }
     
    }else{
      Wr "DEAD LINK : $WebUrl"
    }
  }
}


Image: Discovery in Action

No comments:

Post a Comment