Upload Media to vCloud with PowerCLI

June 18, 2013

Table of Contents

This script is a way in which you can upload your media to your vCloud Director Catalog.it is a really nice script for those of us with many ISOs you need to put somewhere safe. Hope it helps:

$isoFolder = “C:MyISOs”

$vdcName = “MyVDC”

$catalogName = “MyCatalog”

# create / delete a cloud media object

Get-ChildItem $isoFolder | %{

$media = New-Object VMware.VimAutomation.Cloud.Views.Media

$media.name = $_.name

$media.ImageType = ‘iso’

$media.size = $_.length

$media.Files = New-Object VMware.VimAutomation.Cloud.Views.FilesList

$media.Files.File = @(new-object VMware.VimAutomation.Cloud.Views.File)

$media.Files.File[0] = new-object VMware.VimAutomation.Cloud.Views.File

$media.Files.file[0].type = ‘iso’

$media.Files.file[0].name = $_.name

$vdc = Get-OrgVdc $vdcName

$vdc.ExtensionData.CreateMedia($media)

$filehref = (Get-Media $media.name | Get-CIView).files.file[0].link[0].href

$webclient = New-Object system.net.webclient

$webclient.Headers.Add(‘x-vcloud-authorization’,$global:DefaultCIServers[0].sessionid)

$webclient.Uploadfile($filehref, ‘PUT’, $_.fullname)

}

#Add non-catalog media to catalog

$mediaList = get-media | where {!$_.catalog}

$catalog = get-catalog $catalogName

foreach ($noCatMedia in $mediaList)

{

 $resEntity = $vdc.extensiondata.resourceEntities.resourceEntity | where {$_.name -eq $noCatMedia.name}

 $catitem = New-Object VMware.VimAutomation.Cloud.Views.CatalogItem

 $catitem.Entity = $resEntity.href

 $catitem.name = $resEntity.name

 $catitem.description = $media.description

 $catalog.extensiondata.createcatalogitem($catitem)

}

Home

 

Share on
Facebook
Twitter
LinkedIn
Pinterest
More posts

Dedicated Servers Quick Guide

What is a Dedicated Servers? Why bother using a dedicated server over a VPS or Shared Hosting?A dedicated server is a server 100% dedicated to your website/project or business needs.

RVTools 3.3 Now Available

Good news: RVTools 3.3 from Rob de Veij is now generally available to the public.  Release notes for this build: GetWebResponse time-out value changed from 5 minutes to 10 minutes

Get 90% Discount

First 3 People gets the Bonus!
Don't Miss Out Our Big Sale

Get 0-90% On All
247Rack Services

247Rack

The Sale Is Until The End Of March