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)

}

 

Leave a Reply

You must be logged in to post a comment.