2013-07-10 07:15:40 -04:00
# VMware vCloud director 1.5 API client
### Introduction
Collection and Model representation in vcloudng fog provider
```
Organizations
Organization
vdcs -> vdc -> vapps -> vapp -> vms -> vm -> customizations -> script
-> network
-> disks -> disk
-> tags -> tag
-> power_on
networks -> network
catalogs -> catalog -> catalog_items -> catalog_item -> instantiate_vapp
```
#### Actions
Every collection supports the following methods:
method name | lazy load
--- | ---
get(id) | false
get_by_name(name) | false
all | true
all(false) | false
#### Lazy load
< / br >
When listing a collection (ie: ```vdc.vapps```), lazy load will be used by default to improve the performance, otherwise it will make as many requests as items are in the collection.
You can disable lazy load using the explict caller and passing a *false* option ```vdc.vapps.all(false)```
Attributes showing the value **NonLoaded** will be populated when accessing the value, if there are more than one **NonLoaded** values the first time accessing on any of those values will populate the others.
You can explicitly load those attributes with the ```reload``` method:
```
org = vcloud.organizations.first
org.reload
```
Lazy load isn't used with ```get``` and ```get_by_name``` methods are used
### Initialize
```ruby
2013-07-10 07:24:24 -04:00
vcloud = Fog::Compute::Vcloudng.new(vcloudng_username: "< username > @org_name_", vcloudng_password: "< password > ", vcloudng_host: 'example.com', :connection_options => {:ssl_verify_peer => false, :connect_timeout => 200, :read_timeout => 200 } )
2013-07-10 07:15:40 -04:00
```
### Organizations
< / br >
- List organizations
Note that when listing, by default all the attrs but **id, name, type** and **href** are not loaded. To disable lazy_loading, just specify false: , another option is to reload a specific item: ```vcloud.organizations.first.reload```
```ruby
vcloud.organizations
```
```
< Fog::Compute::Vcloudng::Organizations
[
< Fog::Compute::Vcloudng::Organization
id="c6a4c623-c158-41cf-a87a-dbc1637ad55a",
name="DevOps",
type="application/vnd.vmware.vcloud.org+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/org/c6a4c623-c158-41cf-a87a-dbc1637ad55a",
2013-07-10 07:15:40 -04:00
description=NonLoaded
>
]
>
```
- Get a specific organization by id
```ruby
org = vcloud.organizations.get("c6a4c623-c158-41cf-a87a-dbc1637ad55a")
```
- Get a specific organization by name
```ruby
org = vcloud.organizations.get_by_name("DevOps")
```
### vDCs
< / br >
it shows the Organization's vDCs
- List vDCs
```ruby
org = vcloud.organizations.first
org.vdcs
```
```ruby
< Fog::Compute::Vcloudng::Vdcs
organization= < Fog::Compute::Vcloudng::Organization
id="c6a4c623-c158-41cf-a87a-dbc1637ad55a",
name="DevOps",
type="application/vnd.vmware.vcloud.org+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/org/c6a4c623-c158-41cf-a87a-dbc1637ad55a",
2013-07-10 07:15:40 -04:00
description=NonLoaded
>
[
< Fog::Compute::Vcloudng::Vdc
id="9a06a16b-12c6-44dc-aee1-06aa52262ea3",
name="DevOps - VDC",
type="application/vnd.vmware.vcloud.vdc+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vdc/9a06a16b-12c6-44dc-aee1-06aa52262ea3",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
available_networks=NonLoaded,
compute_capacity_cpu=NonLoaded,
compute_capacity_memory=NonLoaded,
storage_capacity=NonLoaded,
allocation_model=NonLoaded,
capabilities=NonLoaded,
nic_quota=NonLoaded,
network_quota=NonLoaded,
vm_quota=NonLoaded,
is_enabled=NonLoaded
>
]
>
```
- Get a vDC
```ruby
org = vcloud.organizations.first
org.vdcs.get_by_name("DevOps - VDC")
```
```ruby
< Fog::Compute::Vcloudng::Vdc
id="9a06a16b-12c6-44dc-aee1-06aa52262ea3",
name="DevOps - VDC",
type="application/vnd.vmware.vcloud.vdc+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vdc/9a06a16b-12c6-44dc-aee1-06aa52262ea3",
2013-07-10 07:15:40 -04:00
description="",
2013-07-10 07:24:24 -04:00
available_networks={:type=>"application/vnd.vmware.vcloud.network+xml", :name=>"DevOps - Dev Network Connection", :href=>"https://example.com/api/network/d5f47bbf-de27-4cf5-aaaa-56772f2ccd17"},
2013-07-10 07:15:40 -04:00
compute_capacity_cpu=NonLoaded,
compute_capacity_memory={:Units=>"MB", :Allocated=>"0", :Limit=>"0", :Used=>"3584", :Overhead=>"65"},
storage_capacity={:Units=>"MB", :Allocated=>"1048320", :Limit=>"1048320", :Used=>"903168", :Overhead=>"0"},
allocation_model="AllocationVApp",
capabilities={:SupportedHardwareVersion=>"vmx-09"},
nic_quota=0,
network_quota=1024,
vm_quota=0,
is_enabled=true
>
```
#### Vapps
- List
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps
```
```ruby
< Fog::Compute::Vcloudng::Vapps
vdc= < Fog::Compute::Vcloudng::Vdc
id="9a06a16b-12c6-44dc-aee1-06aa52262ea3",
name="DevOps - VDC",
type="application/vnd.vmware.vcloud.vdc+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vdc/9a06a16b-12c6-44dc-aee1-06aa52262ea3",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
available_networks=NonLoaded,
compute_capacity_cpu=NonLoaded,
compute_capacity_memory=NonLoaded,
storage_capacity=NonLoaded,
allocation_model=NonLoaded,
capabilities=NonLoaded,
nic_quota=NonLoaded,
network_quota=NonLoaded,
vm_quota=NonLoaded,
is_enabled=NonLoaded
>
[
< Fog::Compute::Vcloudng::Vapp
id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="segundo",
type="application/vnd.vmware.vcloud.vApp+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
deployed=NonLoaded,
status=NonLoaded,
deployment_lease_in_seconds=NonLoaded,
storage_lease_in_seconds=NonLoaded,
startup_section=NonLoaded,
network_section=NonLoaded,
network_config=NonLoaded,
owner=NonLoaded,
InMaintenanceMode=NonLoaded
>,
< Fog::Compute::Vcloudng::Vapp
id="vapp-6ac43e0e-13e2-4642-a58a-6dc3a12f585b",
name="vApp_restebanez_9",
type="application/vnd.vmware.vcloud.vApp+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vapp-6ac43e0e-13e2-4642-a58a-6dc3a12f585b",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
deployed=NonLoaded,
status=NonLoaded,
deployment_lease_in_seconds=NonLoaded,
storage_lease_in_seconds=NonLoaded,
startup_section=NonLoaded,
network_section=NonLoaded,
network_config=NonLoaded,
owner=NonLoaded,
InMaintenanceMode=NonLoaded
>
]
>
```
- Get
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
```
```ruby
< Fog::Compute::Vcloudng::Vapp
id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="segundo",
type="application/vnd.vmware.vcloud.vApp+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
2013-07-10 07:15:40 -04:00
description="",
deployed=false,
status="8",
deployment_lease_in_seconds=NonLoaded,
storage_lease_in_seconds="7776000",
startup_section={:ovf_stopDelay=>"0", :ovf_stopAction=>"powerOff", :ovf_startDelay=>"0", :ovf_startAction=>"powerOn", :ovf_order=>"0", :ovf_id=>"DEVWEB"},
network_section={:ovf_name=>"DevOps - Dev Network Connection", :"ovf:Description"=>""},
2013-07-10 07:24:24 -04:00
network_config={:networkName=>"DevOps - Dev Network Connection", :Link=>{:rel=>"repair", :href=>"https://example.com/api/admin/network/82a07044-4dda-4a3e-a53d-8981cf0d5baa/action/reset"}, :Description=>"", :Configuration=>{:IpScope=>{:IsInherited=>"true", :Gateway=>"10.192.0.1", :Netmask=>"255.255.252.0", :Dns1=>"10.192.0.11", :Dns2=>"10.192.0.12", :DnsSuffix=>"dev.ad.mdsol.com", :IpRanges=>{:IpRange=>{:StartAddress=>"10.192.0.100", :EndAddress=>"10.192.3.254"}}}, :ParentNetwork=>{:name=>"DevOps - Dev Network Connection", :id=>"d5f47bbf-de27-4cf5-aaaa-56772f2ccd17", :href=>"https://example.com/api/admin/network/d5f47bbf-de27-4cf5-aaaa-56772f2ccd17"}, :FenceMode=>"bridged", :RetainNetInfoAcrossDeployments=>"false"}, :IsDeployed=>"false"},
owner={:type=>"application/vnd.vmware.admin.user+xml", :name=>"restebanez", :href=>"https://example.com/api/admin/user/c3ca7b97-ddea-425f-8bdb-1fdb946f7349"},
2013-07-10 07:15:40 -04:00
InMaintenanceMode=false
>
```
#### VMs
- List
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vapp.vms
```
```ruby
< Fog::Compute::Vcloudng::Vms
vapp= < Fog::Compute::Vcloudng::Vapp
id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="segundo",
type="application/vnd.vmware.vcloud.vApp+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
2013-07-10 07:15:40 -04:00
description="",
deployed=false,
status="8",
deployment_lease_in_seconds=NonLoaded,
storage_lease_in_seconds="7776000",
startup_section={:ovf_stopDelay=>"0", :ovf_stopAction=>"powerOff", :ovf_startDelay=>"0", :ovf_startAction=>"powerOn", :ovf_order=>"0", :ovf_id=>"DEVWEB"},
network_section={:ovf_name=>"DevOps - Dev Network Connection", :"ovf:Description"=>""},
2013-07-10 07:24:24 -04:00
network_config={:networkName=>"DevOps - Dev Network Connection", :Link=>{:rel=>"repair", :href=>"https://example.com/api/admin/network/82a07044-4dda-4a3e-a53d-8981cf0d5baa/action/reset"}, :Description=>"", :Configuration=>{:IpScope=>{:IsInherited=>"true", :Gateway=>"10.192.0.1", :Netmask=>"255.255.252.0", :Dns1=>"10.192.0.11", :Dns2=>"10.192.0.12", :DnsSuffix=>"dev.ad.mdsol.com", :IpRanges=>{:IpRange=>{:StartAddress=>"10.192.0.100", :EndAddress=>"10.192.3.254"}}}, :ParentNetwork=>{:name=>"DevOps - Dev Network Connection", :id=>"d5f47bbf-de27-4cf5-aaaa-56772f2ccd17", :href=>"https://example.com/api/admin/network/d5f47bbf-de27-4cf5-aaaa-56772f2ccd17"}, :FenceMode=>"bridged", :RetainNetInfoAcrossDeployments=>"false"}, :IsDeployed=>"false"},
owner={:type=>"application/vnd.vmware.admin.user+xml", :name=>"restebanez", :href=>"https://example.com/api/admin/user/c3ca7b97-ddea-425f-8bdb-1fdb946f7349"},
2013-07-10 07:15:40 -04:00
InMaintenanceMode=false
>
[
< Fog::Compute::Vcloudng::Vm
id="vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
vapp_id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="DEVWEB",
type="application/vnd.vmware.vcloud.vm+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
2013-07-10 07:15:40 -04:00
status="off",
operating_system="Microsoft Windows Server 2008 R2 (64-bit)",
ip_address="10.192.0.144",
cpu=3,
memory=3584,
hard_disks=[{"Hard disk 1"=>163840}]
>
]
>
```
- Get
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vapp.vms.get_by_name("DEVWEB")
```
```ruby
< Fog::Compute::Vcloudng::Vm
id="vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
vapp_id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="DEVWEB",
type="application/vnd.vmware.vcloud.vm+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
2013-07-10 07:15:40 -04:00
status="off",
operating_system="Microsoft Windows Server 2008 R2 (64-bit)",
ip_address="10.192.0.144",
cpu=3,
memory=3584,
hard_disks=[{"Hard disk 1"=>163840}]
>
```
- Modfy CPU
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.cpu = 4
```
```ruby
... success
4
```
- Modify Memory
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.cpu = 4
```
```ruby
... success
4096
```
- power_on
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.power_on
```
```ruby
..... success
true
```
#### VM Customization
- Show
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.customization
```
```ruby
< Fog::Compute::Vcloudng::VmCustomization
id="vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
type="application/vnd.vmware.vcloud.guestCustomizationSection+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192/guestCustomizationSection/",
2013-07-10 07:15:40 -04:00
enabled=false,
change_sid=false,
join_domain_enabled=false,
use_org_settings=false,
admin_password_enabled=false,
reset_password_required=false,
virtual_machine_id="2ddeea36-ac71-470f-abc5-c6e3c2aca192",
computer_name="DEVWEB-001",
has_customization_script=true
>
```
- modify one or more attrs
Customization attribute's model requires to `save` it after setting the attributes
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
customization = vm.customization
customization.compute_name = "NEWNAME"
customization.enabled = false
customization.script = "new userdata script"
customization.save
```
```ruby
.. success
true
```
#### VM Network
- Show
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.network
```
```ruby
< Fog::Compute::Vcloudng::VmNetwork
id="vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
type="application/vnd.vmware.vcloud.networkConnectionSection+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192/networkConnectionSection/",
2013-07-10 07:15:40 -04:00
info="Specifies the available VM network connections",
primary_network_connection_index=0,
network="DevOps - Dev Network Connection",
needs_customization=true,
network_connection_index=0,
is_connected=true,
mac_address="00:50:56:01:00:ea",
ip_address_allocation_mode="POOL"
>
```
- modify one or more attrs
Network attribute's model requires to `save` it after setting the attributes
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
network = vm.network
network.is_connected = false
network.ip_address_allocation_mode = "DHCP"
network.save
```
```ruby
.. success
true
```
#### VM Disk
- List
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.disks
```
```ruby
< Fog::Compute::Vcloudng::Disks
vm= < Fog::Compute::Vcloudng::Vm
id="vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
vapp_id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="DEVWEB",
type="application/vnd.vmware.vcloud.vm+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
2013-07-10 07:15:40 -04:00
status="off",
operating_system="Microsoft Windows Server 2008 R2 (64-bit)",
ip_address="10.192.0.144",
cpu=4,
memory=4096,
hard_disks=[{"Hard disk 1"=>163840}]
>
[
< Fog::Compute::Vcloudng::Disk
id=2,
address=0,
description="SCSI Controller",
name="SCSI Controller 0",
resource_sub_type="lsilogicsas",
resource_type=6,
address_on_parent=nil,
parent=nil,
capacity=nil,
bus_sub_type=nil,
bus_type=nil
>,
< Fog::Compute::Vcloudng::Disk
id=2000,
address=nil,
description="Hard disk",
name="Hard disk 1",
resource_sub_type=nil,
resource_type=17,
address_on_parent=0,
parent=2,
capacity=163840,
bus_sub_type="lsilogicsas",
bus_type=6
>,
< Fog::Compute::Vcloudng::Disk
id=3,
address=0,
description="IDE Controller",
name="IDE Controller 0",
resource_sub_type=nil,
resource_type=5,
address_on_parent=nil,
parent=nil,
capacity=nil,
bus_sub_type=nil,
bus_type=nil
>
]
>
```
- Create a new disk
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
disks = vm.disks
disks.create(1024)
```
```ruby
... success
true
```
The new disk should show up
```ruby
>> vm.disks
< Fog::Compute::Vcloudng::Disks
vm= < Fog::Compute::Vcloudng::Vm
id="vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
vapp_id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="DEVWEB",
type="application/vnd.vmware.vcloud.vm+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
2013-07-10 07:15:40 -04:00
status="off",
operating_system="Microsoft Windows Server 2008 R2 (64-bit)",
ip_address="10.192.0.144",
cpu=4,
memory=4096,
hard_disks=[{"Hard disk 1"=>163840}]
>
[
< Fog::Compute::Vcloudng::Disk
id=2,
address=0,
description="SCSI Controller",
name="SCSI Controller 0",
resource_sub_type="lsilogicsas",
resource_type=6,
address_on_parent=nil,
parent=nil,
capacity=nil,
bus_sub_type=nil,
bus_type=nil
>,
< Fog::Compute::Vcloudng::Disk
id=2000,
address=nil,
description="Hard disk",
name="Hard disk 1",
resource_sub_type=nil,
resource_type=17,
address_on_parent=0,
parent=2,
capacity=163840,
bus_sub_type="lsilogicsas",
bus_type=6
>,
< Fog::Compute::Vcloudng::Disk
id=2001,
address=nil,
description="Hard disk",
name="Hard disk 2",
resource_sub_type=nil,
resource_type=17,
address_on_parent=1,
parent=2,
capacity=1024,
bus_sub_type="lsilogicsas",
bus_type=6
>,
< Fog::Compute::Vcloudng::Disk
id=3,
address=0,
description="IDE Controller",
name="IDE Controller 0",
resource_sub_type=nil,
resource_type=5,
address_on_parent=nil,
parent=nil,
capacity=nil,
bus_sub_type=nil,
bus_type=nil
>
]
>
```
- Modify the hard disk size
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
disks = vm.disks
disks.get_by_name("Hard disk 2").capacity = 2048
```
```ruby
... success
true
```
- Delete a hard disk
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
disks = vm.disks
disks.get_by_name("Hard disk 2").destroy
```
```ruby
... success
true
```
#### VM Tags
- List
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.tags
```
```ruby
< Fog::Compute::Vcloudng::Tags
vm= < Fog::Compute::Vcloudng::Vm
id="vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
vapp_id="vapp-11c7102f-443d-40fd-b1da-cca981fb44b6",
name="DEVWEB",
type="application/vnd.vmware.vcloud.vm+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/vApp/vm-2ddeea36-ac71-470f-abc5-c6e3c2aca192",
2013-07-10 07:15:40 -04:00
status="off",
operating_system="Microsoft Windows Server 2008 R2 (64-bit)",
ip_address="10.192.0.144",
cpu=4,
memory=4096,
hard_disks=[{"Hard disk 1"=>163840}]
>
[
< Fog::Compute::Vcloudng::Tag
id="environment",
value="devlab"
>,
< Fog::Compute::Vcloudng::Tag
id="product",
value="devlabtest"
>,
< Fog::Compute::Vcloudng::Tag
id="hello",
value="ddd"
>,
< Fog::Compute::Vcloudng::Tag
id="uno",
value="jander"
>
]
>
```
- Create a tag
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.tags.create('this_is_a_key', 'this_is_a_value')
```
```ruby
success
true
```
- Get a tag
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.tags.get_by_name('this_is_a_key')
```
```ruby
< Fog::Compute::Vcloudng::Tag
id="this_is_a_key",
value="this_is_a_value"
>
```
- Edit a tag
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.tags.get_by_name('this_is_a_key').value = 'new_value'
```
```ruby
success
"new_value"
```
- Delete a tag
```ruby
org = vcloud.organizations.first
vdc = org.vdcs.first
vapp = vdc.vapps.get_by_name("segundo")
vm = vapp.vms.get_by_name("DEVWEB")
vm.tags.get_by_name('this_is_a_key').destroy
```
```ruby
success
true
```
### Networks
< / br >
it shows the Organization's Networks
- List
```ruby
org = vcloud.organizations.first
org.networks
```
```ruby
< Fog::Compute::Vcloudng::Networks
organization= < Fog::Compute::Vcloudng::Organization
id="c6a4c623-c158-41cf-a87a-dbc1637ad55a",
name="DevOps",
type="application/vnd.vmware.vcloud.org+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/org/c6a4c623-c158-41cf-a87a-dbc1637ad55a",
2013-07-10 07:15:40 -04:00
description=NonLoaded
>
[
< Fog::Compute::Vcloudng::Network
id="d5f47bbf-de27-4cf5-aaaa-56772f2ccd17",
name="DevOps - Dev Network Connection",
type="application/vnd.vmware.vcloud.orgNetwork+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/network/d5f47bbf-de27-4cf5-aaaa-56772f2ccd17",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
is_inherited=NonLoaded,
gateway=NonLoaded,
netmask=NonLoaded,
dns1=NonLoaded,
dns2=NonLoaded,
dns_suffix=NonLoaded,
ip_ranges=NonLoaded
>
]
>
```
- Get
```ruby
org = vcloud.organizations.first
org.networks.get_by_name("DevOps - Dev Network Connection")
```
```ruby
< Fog::Compute::Vcloudng::Network
id="d5f47bbf-de27-4cf5-aaaa-56772f2ccd17",
name="DevOps - Dev Network Connection",
type="application/vnd.vmware.vcloud.orgNetwork+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/network/d5f47bbf-de27-4cf5-aaaa-56772f2ccd17",
2013-07-10 07:15:40 -04:00
description=nil,
is_inherited=true,
gateway="10.192.0.1",
netmask="255.255.252.0",
dns1="10.192.0.11",
dns2="10.192.0.12",
dns_suffix="dev.ad.mdsol.com",
ip_ranges=[{:start_address=>"10.192.0.100", :end_address=>"10.192.3.254"}]
>
```
### Catalogs
< / br >
it shows the Organization's Catalogs
- List
```ruby
org = vcloud.organizations.first
```
```ruby
< Fog::Compute::Vcloudng::Catalogs
organization= < Fog::Compute::Vcloudng::Organization
id="c6a4c623-c158-41cf-a87a-dbc1637ad55a",
name="DevOps",
type="application/vnd.vmware.vcloud.org+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/org/c6a4c623-c158-41cf-a87a-dbc1637ad55a",
2013-07-10 07:15:40 -04:00
description=NonLoaded
>
[
< Fog::Compute::Vcloudng::Catalog
id="4ee720e5-173a-41ac-824b-6f4908bac975",
name="Public VM Templates",
type="application/vnd.vmware.vcloud.catalog+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalog/4ee720e5-173a-41ac-824b-6f4908bac975",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
is_published=NonLoaded
>,
< Fog::Compute::Vcloudng::Catalog
id="ea0c6acf-c9c0-46b7-b19f-4b2d3bf8aa33",
name="prueba",
type="application/vnd.vmware.vcloud.catalog+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalog/ea0c6acf-c9c0-46b7-b19f-4b2d3bf8aa33",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
is_published=NonLoaded
>
]
>
```
- Get
```ruby
org = vcloud.organizations.first
org.catalogs.get("4ee720e5-173a-41ac-824b-6f4908bac975") # or get_by_name("Public VM Templates")
```
```ruby
< Fog::Compute::Vcloudng::Catalog
id="4ee720e5-173a-41ac-824b-6f4908bac975",
name="Public VM Templates",
type="application/vnd.vmware.vcloud.catalog+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalog/4ee720e5-173a-41ac-824b-6f4908bac975",
2013-07-10 07:15:40 -04:00
description="",
is_published=true
>
```
#### Catalog Items
- List
```ruby
org = vcloud.organizations.first
catalog = org.catalogs.first
catalog.catalog_items
```
```ruby
< Fog::Compute::Vcloudng::CatalogItems
catalog= < Fog::Compute::Vcloudng::Catalog
id="4ee720e5-173a-41ac-824b-6f4908bac975",
name="Public VM Templates",
type="application/vnd.vmware.vcloud.catalog+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalog/4ee720e5-173a-41ac-824b-6f4908bac975",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
is_published=NonLoaded
>
[
< Fog::Compute::Vcloudng::CatalogItem
id="2bd55629-2734-420c-9068-2ff06a4a8028",
name="DEVWIN",
type="application/vnd.vmware.vcloud.catalogItem+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalogItem/2bd55629-2734-420c-9068-2ff06a4a8028",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
vapp_template_id=NonLoaded
>,
< Fog::Compute::Vcloudng::CatalogItem
id="5437aa3f-e369-40b2-b985-2e63e1bc9f2e",
name="DEVRHL",
type="application/vnd.vmware.vcloud.catalogItem+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalogItem/5437aa3f-e369-40b2-b985-2e63e1bc9f2e",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
vapp_template_id=NonLoaded
>,
< Fog::Compute::Vcloudng::CatalogItem
id="54cf5deb-326f-4770-a91a-39048689b6ea",
name="DEVAPP",
type="application/vnd.vmware.vcloud.catalogItem+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalogItem/54cf5deb-326f-4770-a91a-39048689b6ea",
2013-07-10 07:15:40 -04:00
description=NonLoaded,
vapp_template_id=NonLoaded
>
]
>
```
- Get
```ruby
org = vcloud.organizations.first
catalog = org.catalogs.first
catalog.catalog_items.get_by_name('DEVAPP')
```
```ruby
< Fog::Compute::Vcloudng::CatalogItem
id="54cf5deb-326f-4770-a91a-39048689b6ea",
name="DEVAPP",
type="application/vnd.vmware.vcloud.catalogItem+xml",
2013-07-10 07:24:24 -04:00
href="https://example.com/api/catalogItem/54cf5deb-326f-4770-a91a-39048689b6ea",
2013-07-10 07:15:40 -04:00
description="Windows Server 2008 R2 Application Server",
vapp_template_id="vappTemplate-b5902d57-7906-49c8-8af5-bbebe0a60a97"
>
```
- Instantiate
it creates a Vapp from a CatalogItem.
```ruby
org = vcloud.organizations.first
catalog = org.catalogs.first
devapp = catalog.catalog_items.get_by_name('DEVAPP')
devapp.instantiate('webserver')
```
```ruby
1%
5%
40%
80%
100%
```
It there were more than one vDC or/and network you'd have to specify it as a second param,
```devapp.instantiate('webserver', {vdc_id: "9a06a16b-12c6-44dc-aee1-06aa52262ea3", network_id: "d5f47bbf-de27-4cf5-aaaa-56772f2ccd17"}```