<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEQAR3o-eyp7ImA9WhVTFU0.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595</id><updated>2012-02-29T08:59:06.453+01:00</updated><category term="VMX parameter" /><category term="logging" /><category term="installation" /><category term="uplink" /><category term="serilization" /><category term="bug" /><category term="workflowName" /><category term="free" /><category term="plug-in" /><category term="dvPort" /><category term="vExpert" /><category term="VMworld" /><category term="SOAP client" /><category term="SOAP plug-in" /><category term="boot image" /><category term="vcap-dca" /><category term="vcenter appliance" /><category term="OOTB" /><category term="vCenter Server Appliance" /><category term="troubleshooting" /><category term="WebClient" /><category term="graylog" /><category term="web portal" /><category term="vmx" /><category term="PXE" /><category term="powershell" /><category term="vSphere 4.1" /><category term="web service" /><category term="performance" /><category term="vSphere API" /><category term="VcOptionValues" /><category term="vmware orchestrator bug Andreas Diemer" /><category term="Active-Directory" /><category term="bus" /><category term="2008" /><category term="vCenter Orchestrator" /><category term="x64" /><category term="Auto deploy" /><category term="Altiris SDK" /><category term="Andreas" /><category term="add host" /><category term="scripting" /><category term="Altiris DS" /><category term="java" /><category term="HDS" /><category term="Portal" /><category term="AAM" /><category term="vCenter" /><category term="datastore" /><category term="PyvCO" /><category term="XML" /><category term="vLM auomation" /><category term="Diemer" /><category term="vmx options" /><category term="regular expression" /><category term="graylog2" /><category term="bus id" /><category term="output" /><category term="integration" /><category term="Array" /><category term="HA" /><category term="VMware" /><category term="second SCSI controller" /><category term="OUT" /><category term="automation" /><category term="JavaScript" /><category term="serialize" /><category term="error" /><category term="vCloud" /><category term="phyton" /><category term="wavemaker" /><category term="java.util" /><category term="VMX automation" /><category term="client" /><category term="workflow" /><category term="TFTP" /><category term="cloud service" /><category term="vCD automation" /><category term="secure" /><category term="fast" /><category term="vCloud Director" /><category term="ports" /><category term="Altiris automation" /><category term="web complexity" /><category term="ESX" /><category term="Oracle" /><category term="boot order" /><category term="port-group" /><category term="switch" /><category term="interface" /><category term="PortGroup" /><category term="Altiris ASDK" /><category term="Orchestrator" /><category term="WSDL" /><category term="MTU" /><category term="physical" /><category term="ldap" /><category term="perfmon" /><category term="plugin" /><category term="DVS" /><category term="vCD" /><category term="ldaps" /><category term="dvSwitch" /><category term="Jumbo Frames" /><category term="LabManager" /><category term="Parameter" /><category term="class" /><category term="domain" /><category term="access" /><category term="SSL" /><category term="firewall" /><category term="OptionValue" /><category term="vCO reference" /><category term="JSON" /><category term="suds" /><category term="boot device" /><category term="Cluster" /><category term="SCSI Controller" /><category term="vb .net" /><category term="Cisco UCS" /><category term="vCO" /><category term="SCSI" /><category term="cloud portal" /><category term="operation" /><category term="http://www.blogger.com/img/blank.gif" /><category term="Christian Johannsen" /><category term="vSphere 5" /><category term="connection lost" /><category term="second bus" /><category term="REST" /><category term="ESXi" /><category term="orchestration" /><category term="deployment" /><category term="syslog" /><category term="experience" /><category term="migration" /><category term="vApp" /><category term="name" /><category term="vLM" /><category term="post" /><category term="API" /><category term="Distributed Virtual Switch" /><category term="vb" /><category term="vcap" /><category term="SOAP" /><category term="PHP" /><category term="stateless ESXi" /><category term="Webservice" /><category term="feature" /><category term="RegExp" /><category term="VM config" /><category term="Database" /><category term="Hitachi" /><category term="BlueARC" /><category term="sql express" /><category term="Altiris" /><category term="server" /><category term="unzip" /><category term="AD" /><category term="zip" /><category term="problem" /><title>mighty virtualization</title><subtitle type="html">virtualization and automation focused blog. description and code examples for vCenter Orchestrator, VMware LabManager, vSphere, vCenter Server, vCloud Director and many more. white paper and code snippet platform for virtualization environments.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://mighty-virtualization.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>54</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/MightyVirtualization" /><feedburner:info uri="mightyvirtualization" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CE8BQH8-eSp7ImA9WhVTE0o.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-5801365512803758193</id><published>2012-02-27T21:00:00.002+01:00</published><updated>2012-02-27T21:00:51.151+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-27T21:00:51.151+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="suds" /><category scheme="http://www.blogger.com/atom/ns#" term="fast" /><category scheme="http://www.blogger.com/atom/ns#" term="WSDL" /><category scheme="http://www.blogger.com/atom/ns#" term="scripting" /><category scheme="http://www.blogger.com/atom/ns#" term="PyvCO" /><category scheme="http://www.blogger.com/atom/ns#" term="Webservice" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="SOAP" /><category scheme="http://www.blogger.com/atom/ns#" term="API" /><category scheme="http://www.blogger.com/atom/ns#" term="automation" /><category scheme="http://www.blogger.com/atom/ns#" term="phyton" /><category scheme="http://www.blogger.com/atom/ns#" term="SOAP client" /><title>vCO - want fast success? use python!</title><content type="html">







&lt;br /&gt;
&lt;div class="p1"&gt;
As you may know I´m always interested in finding new methods to make vCO available in the most common programming languages. Last week some guys developed their web service client in python using the outstanding PyvCO module:&amp;nbsp;&lt;a href="http://labs.vmware.com/flings/pyvco"&gt;&lt;span class="s1"&gt;http://labs.vmware.com/flings/pyvco&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
I see their fast and impressive results which took them just a few days and decided to take a look into python using "native" SOAP clients. After reading thru some available modules I decide to use suds:&amp;nbsp;&lt;a href="https://fedorahosted.org/suds/"&gt;&lt;span class="s1"&gt;https://fedorahosted.org/suds/&lt;/span&gt;&lt;/a&gt;&amp;nbsp;because it seems to have a simple design.&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
After installing the module on my MacBook with&amp;nbsp;pip install suds&amp;nbsp;the first test is really simple:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
import suds&lt;br /&gt;
client = suds.client.Client('http://172.16.0.176:8280/vmware-vmo-webcontrol/webservice?wsdl')&lt;br /&gt;
print client&lt;/code&gt;&lt;/div&gt;
&lt;code&gt;
&lt;/code&gt;&lt;div class="p2"&gt;
&lt;code&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
This is the output:&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-NNX5-E6MYzg/T0vbBYJBPxI/AAAAAAAAARM/68iyWbFuMbU/s1600/Screen+Shot+2012-02-27+at+8.34.22+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="186" src="http://4.bp.blogspot.com/-NNX5-E6MYzg/T0vbBYJBPxI/AAAAAAAAARM/68iyWbFuMbU/s320/Screen+Shot+2012-02-27+at+8.34.22+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
As you can see all methods and types are shown with a simple print :)&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
Based on this and some indents you can produce some real nice functions like this:&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;import suds&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;vCOurl = 'http://172.16.0.176:8280/vmware-vmo-webcontrol/webservice?WSDL'&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;#username = raw_input('Username: ')&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;#password = raw_input('Password: ')&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;username = 'USERNAME'&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;password = 'PASSWORD'&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;client = suds.client.Client(vCOurl)&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;#print client&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;def getAllWfs():&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp;allWfs = client.service.getAllWorkflows(username, password)&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp;return allWfs&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;def findWfs(name):&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp;Wfs = client.service.getWorkflowsWithName(name, username, password)&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp;return Wfs&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;#allWfs = getAllWfs()&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;allWfs = findWfs(raw_input('Workflow name: '))&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;for wf in allWfs:&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;print wf.name&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;print wf.id&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;wfInParas = wf.inParameters&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;for iParas in wfInParas[0]:&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'inParameter: '&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print (iParas.name, iParas.type)&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;wfOutParas = wf.outParameters&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp;for oParas in wfOutParas[0]:&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print 'outParameter: '&lt;/code&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;code&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; print (oParas.name, oParas.type)&lt;/code&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;code&gt;
&lt;/code&gt;&lt;div class="p2"&gt;
&lt;code&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="p1"&gt;
With this you can search for a workflow and get the IN/OUT parameters. As you can see the success comes really fast!&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-69vWPwScc0s/T0vgW_xSEyI/AAAAAAAAARc/PHJKs74jnBw/s1600/Screen+Shot+2012-02-27+at+8.48.24+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="92" src="http://2.bp.blogspot.com/-69vWPwScc0s/T0vgW_xSEyI/AAAAAAAAARc/PHJKs74jnBw/s320/Screen+Shot+2012-02-27+at+8.48.24+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="p2"&gt;
So feel free to post your implementations!&lt;/div&gt;
&lt;div class="p2"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-5801365512803758193?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/i0xU3JZghZs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/5801365512803758193/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2012/02/vco-want-fast-success-use-python.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/5801365512803758193?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/5801365512803758193?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/i0xU3JZghZs/vco-want-fast-success-use-python.html" title="vCO - want fast success? use python!" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-NNX5-E6MYzg/T0vbBYJBPxI/AAAAAAAAARM/68iyWbFuMbU/s72-c/Screen+Shot+2012-02-27+at+8.34.22+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2012/02/vco-want-fast-success-use-python.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQERHY5eip7ImA9WhVTE0s.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-393808702187481217</id><published>2012-02-24T21:32:00.001+01:00</published><updated>2012-02-27T19:45:05.822+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-02-27T19:45:05.822+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Altiris DS" /><category scheme="http://www.blogger.com/atom/ns#" term="Altiris" /><category scheme="http://www.blogger.com/atom/ns#" term="Altiris ASDK" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCloud" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="deployment" /><category scheme="http://www.blogger.com/atom/ns#" term="physical" /><category scheme="http://www.blogger.com/atom/ns#" term="vApp" /><category scheme="http://www.blogger.com/atom/ns#" term="Altiris SDK" /><category scheme="http://www.blogger.com/atom/ns#" term="Altiris automation" /><title>vCO - How to automate Altiris Deployments</title><content type="html">This week I was in Vienna to implement a VM deployment automation based on Altiris. First thing I always ask is: "Why do you use Altiris as deployment mechanism if you have VMware templates?" and in this case the physical deployment was the answer. So Altiris Deployment is used for physical and virtual servers.&lt;br /&gt;
&lt;br /&gt;
What I like when implementing these things is that the customer has the freedom to choose where to deploy. So there are no borders to deploy a VM or vApp in the vCloud Director for example. It´s just a decision field away :)&lt;br /&gt;
&lt;br /&gt;
First thing you need is to have the Altiris SDK installed on your Altiris Deployment Server. You can find the actual version here:&amp;nbsp;&lt;a href="http://www.symantec.com/business/support/index?page=content&amp;amp;id=TECH40810"&gt;http://www.symantec.com/business/support/index?page=content&amp;amp;id=TECH40810&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
After the installation you will have another IIS website available: /Altiris.ASDK.DS/ which serves the webservice "API". Now we have two options: the SOAP plug-in and native HTTP POST/GET commands. I prefer the HTTP command way cause the SOAP API isn´t available as one WSDL definition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-PZTegBFYHJ8/T0fxlvl_WZI/AAAAAAAAARE/gFRRGhfp2F8/s1600/Screen+Shot+2012-02-24+at+9.22.22+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="180" src="http://4.bp.blogspot.com/-PZTegBFYHJ8/T0fxlvl_WZI/AAAAAAAAARE/gFRRGhfp2F8/s320/Screen+Shot+2012-02-24+at+9.22.22+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So the most simple way is to call the Altiris URL for the exact task. In my case I search for the UUID because the system is displayed as VMware-xxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxx, rename the system into the VMname IN-parameter and schedule the exact job for the system. You can find the JobIDs via web-browser on the Altiris.ASDK.DS path.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;The command for searching a system (HTTP GET) could look like this:&lt;br /&gt;
&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;var url = "http://"+AltirisServer+"/Altiris.ASDK.DS/ComputerManagementService.asmx/GetComputerID?computerSearchPhrase=";&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;url += Servername&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;url += "&amp;amp;computerSearchType=2";&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;var MyURL = new URL(url);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;MyURL.getContent();&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;var Result = MyURL.result;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, now have fun to automate your Altiris Deployment :)&lt;br /&gt;
Maybe this also could be used to automate the vApp deployment including Altiris for the vCloud Director...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-393808702187481217?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/MORK-K8j7ww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/393808702187481217/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2012/02/vco-how-to-automate-altiris-deployments.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/393808702187481217?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/393808702187481217?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/MORK-K8j7ww/vco-how-to-automate-altiris-deployments.html" title="vCO - How to automate Altiris Deployments" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-PZTegBFYHJ8/T0fxlvl_WZI/AAAAAAAAARE/gFRRGhfp2F8/s72-c/Screen+Shot+2012-02-24+at+9.22.22+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2012/02/vco-how-to-automate-altiris-deployments.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcNSXoycCp7ImA9WhRWEUk.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-6576188953875167736</id><published>2011-12-28T23:25:00.000+01:00</published><updated>2011-12-29T09:41:38.498+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-29T09:41:38.498+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="powershell" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="TFTP" /><category scheme="http://www.blogger.com/atom/ns#" term="plug-in" /><category scheme="http://www.blogger.com/atom/ns#" term="integration" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Server Appliance" /><category scheme="http://www.blogger.com/atom/ns#" term="boot image" /><category scheme="http://www.blogger.com/atom/ns#" term="stateless ESXi" /><category scheme="http://www.blogger.com/atom/ns#" term="PXE" /><category scheme="http://www.blogger.com/atom/ns#" term="Auto deploy" /><title>vCO - Auto Deploy Plug-in</title><content type="html">I used the holidays to test around with the new vCenter Orchestrator Plug-in for VMware Auto Deploy. The main value is that there is no need to use Microsoft Powershell which isn´t really often available in pure linux environments :)&lt;br /&gt;
&lt;br /&gt;
First you have to configure the vCenter Server Appliance to act as a TFTP or DHCP server if this one isn´t already in place. This page describes the DHCP/TFTP configuration:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://jreypo.wordpress.com/tag/vsphere-auto-deploy/"&gt;http://jreypo.wordpress.com/tag/vsphere-auto-deploy/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Once the services are configured you have to download the ESXi depot file from our download area and place it on a webserver. After that you can download the Plug-in for the vCenter Orchestrator and install it with the vCenter Orchestrator configuration interface.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://1.bp.blogspot.com/-B7sZH-Bpg1c/TvuSJIhE2AI/AAAAAAAAAPw/QNNjTZtXqT0/s1600/Screen+Shot+2011-12-28+at+11.02.56+PM.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="102" src="http://1.bp.blogspot.com/-B7sZH-Bpg1c/TvuSJIhE2AI/AAAAAAAAAPw/QNNjTZtXqT0/s400/Screen+Shot+2011-12-28+at+11.02.56+PM.png" width="400" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can add the vCenter Server Appliance as a VMware Auto Deploy host:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-7wX0SMth5h0/TvuT6otso6I/AAAAAAAAAP8/x2H8Ycf8FjM/s1600/Screen+Shot+2011-12-28+at+11.10.01+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="194" src="http://2.bp.blogspot.com/-7wX0SMth5h0/TvuT6otso6I/AAAAAAAAAP8/x2H8Ycf8FjM/s320/Screen+Shot+2011-12-28+at+11.10.01+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After adding the host you need to add a depot too. Please note that you have to extract the ESXi depot .zip file downloaded in the beginning cause you have to point to the "index.xml" file in the package.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-T1F7VB_TB3A/TvuUXtmYAnI/AAAAAAAAAQI/3OyBUWg9tLc/s1600/Screen+Shot+2011-12-28+at+11.12.31+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://1.bp.blogspot.com/-T1F7VB_TB3A/TvuUXtmYAnI/AAAAAAAAAQI/3OyBUWg9tLc/s320/Screen+Shot+2011-12-28+at+11.12.31+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With the host and depot you can now create a deploy rule and activate it with the included workflows.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-ezxDlTVNI6E/TvuU7bawkzI/AAAAAAAAAQU/Qo6R3iLOC64/s1600/Screen+Shot+2011-12-28+at+11.14.30+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="172" src="http://4.bp.blogspot.com/-ezxDlTVNI6E/TvuU7bawkzI/AAAAAAAAAQU/Qo6R3iLOC64/s320/Screen+Shot+2011-12-28+at+11.14.30+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can check the activation really fast by clicking the "Inventory" tab and taking a look into the Auto Deploy tree.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-9Uk-My21e_o/TvuV7Lx2TRI/AAAAAAAAAQg/omg4nW_0ojg/s1600/Screen+Shot+2011-12-28+at+11.19.01+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://2.bp.blogspot.com/-9Uk-My21e_o/TvuV7Lx2TRI/AAAAAAAAAQg/omg4nW_0ojg/s200/Screen+Shot+2011-12-28+at+11.19.01+PM.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything looking as expected you can now check to start a host system (I tested it with some virtual machines) and see if it boots into an ESXi image.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-w81Kdw3ta34/TvuW2Q0Y72I/AAAAAAAAAQs/fx0lpODwZxA/s1600/Screen+Shot+2011-12-28+at+11.22.43+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="194" src="http://1.bp.blogspot.com/-w81Kdw3ta34/TvuW2Q0Y72I/AAAAAAAAAQs/fx0lpODwZxA/s320/Screen+Shot+2011-12-28+at+11.22.43+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is just a small quick start, there are some more possibilities (answer files etc.) but it shows how to get your feet on the street. See you next year!&lt;br /&gt;
&lt;br /&gt;
P.S.: The TFTP/DHCP service isn´t a supported scenario. Thanks&amp;nbsp;&lt;a href="http://www.virtuallyghetto.com/" target="_blank"&gt;William&lt;/a&gt; for the hint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-6576188953875167736?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/0Vlwcw4c1wI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/6576188953875167736/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/12/vco-auto-deploy-plug-in.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/6576188953875167736?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/6576188953875167736?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/0Vlwcw4c1wI/vco-auto-deploy-plug-in.html" title="vCO - Auto Deploy Plug-in" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-B7sZH-Bpg1c/TvuSJIhE2AI/AAAAAAAAAPw/QNNjTZtXqT0/s72-c/Screen+Shot+2011-12-28+at+11.02.56+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/12/vco-auto-deploy-plug-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk8GSHc4fCp7ImA9WhRQF0o.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-3857436454654037943</id><published>2011-12-13T12:13:00.000+01:00</published><updated>2011-12-13T12:13:49.934+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-13T12:13:49.934+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="bus" /><category scheme="http://www.blogger.com/atom/ns#" term="SCSI" /><category scheme="http://www.blogger.com/atom/ns#" term="bus id" /><category scheme="http://www.blogger.com/atom/ns#" term="SCSI Controller" /><category scheme="http://www.blogger.com/atom/ns#" term="second bus" /><category scheme="http://www.blogger.com/atom/ns#" term="workflow" /><category scheme="http://www.blogger.com/atom/ns#" term="second SCSI controller" /><category scheme="http://www.blogger.com/atom/ns#" term="OOTB" /><title>vCO - How to add a second SCSI controller</title><content type="html">&lt;br /&gt;
Sometimes you will miss some OOTB workflows in your vCenter Orchestrator library. The last time I searched for a workflow the customer task was:&lt;br /&gt;
&lt;br /&gt;
"Add a second disk with a different controller type and and a new bus ID (1)."&lt;br /&gt;
&lt;br /&gt;
Reading this the task sounds really simple, but when searching there is only an "Add disk" workflow in the library which always crashes if you set the bus ID to 1, cause there isn´t a second SCSI controller.&lt;br /&gt;
Also there is no workflow to add a second SCSI controller and there is no method in the vSphere Client. So I decide to check how the vSphere client handle this event and used Onyx (&lt;a href="http://labs.vmware.com/flings/onyx"&gt;http://labs.vmware.com/flings/onyx&lt;/a&gt;) to look for the used specifications.&lt;br /&gt;
&lt;br /&gt;
So I found out that there is only an "add disk" method in the vSphere Client which automatically adds a second SCSI controller. With this knowledge I build a workflow which adds a second SCSI controller and then a second hard disk on this SCSI controller.&lt;br /&gt;
&lt;br /&gt;
First make a clone of the "createVirtualScsiControllerConfigSpec" action and change the lines:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;controller.key = 1;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;controller.busNumber = 1;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Now create a new workflow and add a "Scriptable Task" element and the "vim3WaitTaskEnd" action. My IN parameter are: the VM (VC:VirtualMachine), the diskSize (number), the datastore (VC:Datastore) and the thinProvisioned (boolean) switch. The attributes are: task, progress, pollRate.&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-rsYyzA_0Ob4/TucwzGKyBSI/AAAAAAAAAPQ/54VtkjrbTc4/s1600/Screen+shot+2011-12-13+at+12.02.14+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="136" src="http://1.bp.blogspot.com/-rsYyzA_0Ob4/TucwzGKyBSI/AAAAAAAAAPQ/54VtkjrbTc4/s400/Screen+shot+2011-12-13+at+12.02.14+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In the "Scriptable Task" element I added the lines shown in the screenshot. As you can see I use my cloned action to create the second controller. Than just add the second disk and push all into the array and start the reconfigVM task.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Have fun!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-3857436454654037943?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/Z2kO_vlgdUk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/3857436454654037943/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/12/vco-how-to-add-second-scsi-controller.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3857436454654037943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3857436454654037943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/Z2kO_vlgdUk/vco-how-to-add-second-scsi-controller.html" title="vCO - How to add a second SCSI controller" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-rsYyzA_0Ob4/TucwzGKyBSI/AAAAAAAAAPQ/54VtkjrbTc4/s72-c/Screen+shot+2011-12-13+at+12.02.14+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/12/vco-how-to-add-second-scsi-controller.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QHRn86eCp7ImA9WhRRF0s.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-6384631647047031408</id><published>2011-11-30T12:13:00.001+01:00</published><updated>2011-12-01T20:55:37.110+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-01T20:55:37.110+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="graylog2" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter" /><category scheme="http://www.blogger.com/atom/ns#" term="ESX" /><category scheme="http://www.blogger.com/atom/ns#" term="syslog" /><category scheme="http://www.blogger.com/atom/ns#" term="logging" /><category scheme="http://www.blogger.com/atom/ns#" term="vcenter appliance" /><category scheme="http://www.blogger.com/atom/ns#" term="graylog" /><title>vSphere 5 - VCSA and syslog with graylog2</title><content type="html">As you may know the vCenter Server Appliance can act as a syslog server for the ESX host-systems. The appliance logs all messages into a log partition (/storage/log) what´s not a real feature if you or your customer uses a syslog server. My customer actually uses Graylog2 (&lt;a href="http://graylog2.org/"&gt;http://graylog2.org/&lt;/a&gt;) which is a real cool tool.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-e1WCzyWZoDU/TtYbnG2fThI/AAAAAAAAAO4/bmPvF7UnS5Q/s1600/Screen+shot+2011-11-30+at+1.02.22+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="http://2.bp.blogspot.com/-e1WCzyWZoDU/TtYbnG2fThI/AAAAAAAAAO4/bmPvF7UnS5Q/s320/Screen+shot+2011-11-30+at+1.02.22+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In the base configuration you aren´t able to insert a remote syslog server, so you have to access the vCenter Server appliance with ssh. Here you go to the /etc/syslog-ng directory.&lt;br /&gt;
&lt;br /&gt;
In this directory there is a config file called: syslog-ng.conf which you have to open with an editor (vim/less for example).&lt;br /&gt;
&lt;br /&gt;
Now search the line: &lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;#&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;# Enable this and adopt IP to send log messages to a log server.&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;#&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;#destination logserver { udp("10.10.10.10" port(514)); };&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;#log { source(src); destination(logserver); };&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
end enter your syslog host, port. Please don´t forget to remove the # before the line :) After these settings you can enhance the Global Options to send the fully qualified domain name:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;options { long_hostnames(off); sync(0); perm(0640); stats(3600); use_fqdn(yes); };&lt;/code&gt;&lt;br /&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
After the changes restart the syslog deamon with &lt;i&gt;/etc/init.d/syslog restart&lt;/i&gt; and check with &lt;i&gt;tcpdump port 514&lt;/i&gt; if the packages are send.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://3.bp.blogspot.com/-pS2fd6AuuTA/TtYlqro8KBI/AAAAAAAAAPI/WkReIRAOZCM/s1600/Screen+shot+2011-11-30+at+1.46.10+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="105" src="http://3.bp.blogspot.com/-pS2fd6AuuTA/TtYlqro8KBI/AAAAAAAAAPI/WkReIRAOZCM/s320/Screen+shot+2011-11-30+at+1.46.10+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Happy logging!&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-6384631647047031408?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/2l5bWmWClDg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/6384631647047031408/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/11/vsphere-5-vcsa-and-syslog-with-graylog.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/6384631647047031408?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/6384631647047031408?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/2l5bWmWClDg/vsphere-5-vcsa-and-syslog-with-graylog.html" title="vSphere 5 - VCSA and syslog with graylog2" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-e1WCzyWZoDU/TtYbnG2fThI/AAAAAAAAAO4/bmPvF7UnS5Q/s72-c/Screen+shot+2011-11-30+at+1.02.22+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/11/vsphere-5-vcsa-and-syslog-with-graylog.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0ECQXo4fip7ImA9WhRRE0U.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-629671705419114583</id><published>2011-11-24T10:02:00.001+01:00</published><updated>2011-11-27T11:27:40.436+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-27T11:27:40.436+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vCloud Director" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCloud" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="dvSwitch" /><category scheme="http://www.blogger.com/atom/ns#" term="vSphere 5" /><category scheme="http://www.blogger.com/atom/ns#" term="web complexity" /><category scheme="http://www.blogger.com/atom/ns#" term="wavemaker" /><category scheme="http://www.blogger.com/atom/ns#" term="operation" /><category scheme="http://www.blogger.com/atom/ns#" term="web service" /><category scheme="http://www.blogger.com/atom/ns#" term="web portal" /><category scheme="http://www.blogger.com/atom/ns#" term="Parameter" /><title>vCO - wavemaker, your cloud webservice (part II)</title><content type="html">Based on the first article I will show you how to interact with the workflows and give them parameters and receive results. As you might assume this is more complex than only a short "getAllWorkflows", but with wavemaker and some instructions it is much easier than develop web-clients in higher programming languages.&lt;br /&gt;
&lt;br /&gt;
First thing we will need is the workflowId which was displayed in the first tab. To copy the ID from the workflow "getFreeDvPorts" you have to change the options of the dojoGrid.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-8829AhfoJeA/Ts4KXOlcf0I/AAAAAAAAANw/aiMTpiAizsg/s1600/Screen+shot+2011-11-24+at+10.11.44+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-8829AhfoJeA/Ts4KXOlcf0I/AAAAAAAAANw/aiMTpiAizsg/s1600/Screen+shot+2011-11-24+at+10.11.44+AM.png" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So the "selectionMode" has to be "extended" which allows you to copy the ID of the workflow. Next thing you have to do is to change the IN parameter of the "getFreeDvPorts" workflow into "dvSwitchName" as String and "NumPorts" as Number. I also added an "CriticalGroups" as Array/String OUT parameter. So the inputs are the name of the dvSwitch and the minimum of free ports the port-groups must have. The output shows all critical port-groups without enough ports.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-sFNeNwn_TfI/TtC2RJRFjFI/AAAAAAAAAN4/ShdPMfG2DdI/s1600/Screen+shot+2011-11-26+at+10.49.39+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" src="http://4.bp.blogspot.com/-sFNeNwn_TfI/TtC2RJRFjFI/AAAAAAAAAN4/ShdPMfG2DdI/s320/Screen+shot+2011-11-26+at+10.49.39+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In wavemaker, under the tab "getInventory" you can now add 4 textfields:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;username&lt;/li&gt;
&lt;li&gt;password&lt;/li&gt;
&lt;li&gt;dvSwitchName&lt;/li&gt;
&lt;li&gt;FreePorts&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
and a button called "Submit". I also add a TokenID field to control if the workflow is started. Next button is called "Result" and the "dataGrid" is used to show the OUT results of the workflow. I entered the username and password fixed which makes it a bit easier. The page should look like this:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-2GOZKsZRRvI/TtC4sE7prwI/AAAAAAAAAOA/keFKsV_MLYE/s1600/Screen+shot+2011-11-26+at+10.59.15+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="276" src="http://1.bp.blogspot.com/-2GOZKsZRRvI/TtC4sE7prwI/AAAAAAAAAOA/keFKsV_MLYE/s400/Screen+shot+2011-11-26+at+10.59.15+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
First step is to select the submit button and select a new "Service" for the OnClick event. This service I named "executeWf" and select the reference "vCOlab" and the "executeWorkflow" operation. Now the Submit button is linked with the "executeWorkflow" operation.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-icfMn3sDEbM/TtC5rw3WwjI/AAAAAAAAAOQ/m_lSnhSXxKU/s1600/Screen+shot+2011-11-26+at+11.03.21+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="305" src="http://1.bp.blogspot.com/-icfMn3sDEbM/TtC5rw3WwjI/AAAAAAAAAOQ/m_lSnhSXxKU/s320/Screen+shot+2011-11-26+at+11.03.21+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
As you can see the "executeWorkflow" operation needs different input parameters. The first two: username and password are easy, cause you only have to bind them to the text fields created in the beginning. The third one is the workflow ID of the "getFreeDvPorts" workflow you can copy from the first "getAllWorkflows" tab (extended editor).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The fourth parameter is very special and William Lam (&lt;a href="http://www.virtuallyghetto.com/"&gt;http://www.virtuallyghetto.com/&lt;/a&gt;) and I had some sleepless nights to get the right method. The input parameters "workflowInputs" are set as an expression not as Array/List or something. So you have to insert the following in the expression field:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-HSo6K14GcBo/TtC7CcqJMnI/AAAAAAAAAOY/zo26z_sB-g8/s1600/Screen+shot+2011-11-26+at+11.09.49+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://3.bp.blogspot.com/-HSo6K14GcBo/TtC7CcqJMnI/AAAAAAAAAOY/zo26z_sB-g8/s320/Screen+shot+2011-11-26+at+11.09.49+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see the value is linked to the text .dataValue from "dvSwitchName" and "FreeDvPorts". So the name and the ports are defined with the text fields. For the control field you have to link the dataValue of the TokenID field to the return value "id" of the executeWf operation.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-UhwnVyEvomI/TtC8R5bVGYI/AAAAAAAAAOg/HneRDw7k2D0/s1600/Screen+shot+2011-11-26+at+11.13.16+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="161" src="http://3.bp.blogspot.com/-UhwnVyEvomI/TtC8R5bVGYI/AAAAAAAAAOg/HneRDw7k2D0/s320/Screen+shot+2011-11-26+at+11.13.16+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This will show the TokenID also when pressing "Submit" and this indicates that the workflow is executed in vCenter Orchestrator.&lt;br /&gt;
&lt;br /&gt;
The next step is to create a new Service for the "Result" button. This is the "getWorkflowTokenResult" operation which also needs some input parameters: username, password and workflowTokenId. The first and second is bind to the appropriate text field. The third one is linked to the TokenId dataValue:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-LlWa4oIEqNM/TtC_NkNlM0I/AAAAAAAAAOo/9vavawTlyBI/s1600/Screen+shot+2011-11-26+at+11.27.36+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="124" src="http://3.bp.blogspot.com/-LlWa4oIEqNM/TtC_NkNlM0I/AAAAAAAAAOo/9vavawTlyBI/s320/Screen+shot+2011-11-26+at+11.27.36+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At last you have to bind the dataGrid to the return value of the "getResult" operation. As you can the the empty dataGrid is changed to a name, type and value separation.&lt;br /&gt;
&lt;br /&gt;
If everything is right the execution should look like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-h2wrykNeUeA/TtDAGTqAzNI/AAAAAAAAAOw/cNQsbVCui78/s1600/Screen+shot+2011-11-26+at+11.31.40+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://4.bp.blogspot.com/-h2wrykNeUeA/TtDAGTqAzNI/AAAAAAAAAOw/cNQsbVCui78/s320/Screen+shot+2011-11-26+at+11.31.40+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, I hope this more complex scenario helps you to speed up your personal cloud portal with wavemaker and vCO.&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-629671705419114583?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/ZpL2X-VkJl0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/629671705419114583/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/11/vco-wavemaker-your-cloud-webservice_24.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/629671705419114583?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/629671705419114583?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/ZpL2X-VkJl0/vco-wavemaker-your-cloud-webservice_24.html" title="vCO - wavemaker, your cloud webservice (part II)" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-8829AhfoJeA/Ts4KXOlcf0I/AAAAAAAAANw/aiMTpiAizsg/s72-c/Screen+shot+2011-11-24+at+10.11.44+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/11/vco-wavemaker-your-cloud-webservice_24.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IBRnw9cSp7ImA9WhRRFkg.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-1718328310710074301</id><published>2011-11-23T11:37:00.000+01:00</published><updated>2011-11-30T14:25:57.269+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-30T14:25:57.269+01:00</app:edited><title>mighty virtualization - layout change</title><content type="html">I decided to change the layout to a more dynamic one (thanks blogspot). I think this one looks better and it´s better to read :)&lt;br /&gt;
&lt;br /&gt;
UPDATE: Had to change it back cause the links where broken and displayed wrong :(&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-1718328310710074301?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/KcvPzGQPBEc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/1718328310710074301/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/11/mighty-virtualization.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1718328310710074301?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1718328310710074301?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/KcvPzGQPBEc/mighty-virtualization.html" title="mighty virtualization - layout change" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/11/mighty-virtualization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQMSX4-cCp7ImA9WhRREkw.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-1620048923729723525</id><published>2011-11-18T08:51:00.001+01:00</published><updated>2011-11-25T11:53:08.058+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-25T11:53:08.058+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vSphere API" /><category scheme="http://www.blogger.com/atom/ns#" term="ports" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="dvSwitch" /><category scheme="http://www.blogger.com/atom/ns#" term="free" /><category scheme="http://www.blogger.com/atom/ns#" term="port-group" /><category scheme="http://www.blogger.com/atom/ns#" term="switch" /><category scheme="http://www.blogger.com/atom/ns#" term="DVS" /><category scheme="http://www.blogger.com/atom/ns#" term="Distributed Virtual Switch" /><title>vCO - how to determine free dvSwitch ports</title><content type="html">Last week one of my customers ask for a method to report the free ports of all dvSwitch port-groups. First step I try was to look in the API explorer for a "freePorts" parameter, but there wasn´t one. So I developed a litte workflow including some loops (Thanks to Christophe for the bookmarked vCOteam article: &lt;a href="http://www.vcoteam.info/learn-vco/creating-workflow-loops.html" target="_blank"&gt;Creating workflow loops&lt;/a&gt;).&lt;br /&gt;
&lt;br /&gt;
The loops are necessary because of the unknown count of port-groups on the dvSwitch. So the whole workflow looks like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-szeM0ziPGHA/TsYX1RUOx9I/AAAAAAAAANU/EJAQBJ6Z-8w/s1600/Screen+shot+2011-11-18+at+9.26.42+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="289" src="http://4.bp.blogspot.com/-szeM0ziPGHA/TsYX1RUOx9I/AAAAAAAAANU/EJAQBJ6Z-8w/s320/Screen+shot+2011-11-18+at+9.26.42+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The IN parameters are: DVports(String or number) and DVswitch (VC:DistributedVirtualSwitch). The DVports define the minimum available ports for the port groups and the DVswitch is the Switch to test on.&lt;br /&gt;
&lt;br /&gt;
The first element "getAllPortGroups" gets all port-groups and test if it is a uplink port-group which I don´t want to test. The result is an array filled with all port-groups.&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;var DVSgroups = new Array();&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;for(i in DVS.portgroup){&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(DVS.portgroup[i].config.name.match("Uplink")){&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;System.log("Port-group is uplink port-group.");&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;else{&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;DVSgroups.push(DVS.portgroup[i]);&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;}&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The next element "LoopSetup" sets the number of port-groups for the looping (DVSnb = DVSgroups.length;) and the following decision tests if the DVSnb is greater than 0 which allows you to iterate over every port-group.&amp;nbsp;If the decision is true the counter will be lowered in the next step (counter = counter-1;) and the actual port-group is set in the next task (DVportGroup = DVSgroups[DVSnb];).&lt;br /&gt;
&lt;br /&gt;
Now we have one port-group to test on (screenshot, cause the code raises an error in blogspot):&lt;code&gt;&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-ad_7rWn4Kc4/TsY6WEeWsKI/AAAAAAAAANg/N-gXbb1H1_I/s1600/Screen+shot+2011-11-18+at+11.57.43+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="233" src="http://2.bp.blogspot.com/-ad_7rWn4Kc4/TsY6WEeWsKI/AAAAAAAAANg/N-gXbb1H1_I/s400/Screen+shot+2011-11-18+at+11.57.43+AM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As you can see I decided to count the connectees (VM Nics) of the port-groups to ensure that double used ports are counted.&lt;br /&gt;
&lt;br /&gt;
I hope this helps you to find some free ports :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-1620048923729723525?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/zLCcgWJ1U-4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/1620048923729723525/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/11/vco-how-to-determine-free-dvswitch.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1620048923729723525?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1620048923729723525?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/zLCcgWJ1U-4/vco-how-to-determine-free-dvswitch.html" title="vCO - how to determine free dvSwitch ports" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-szeM0ziPGHA/TsYX1RUOx9I/AAAAAAAAANU/EJAQBJ6Z-8w/s72-c/Screen+shot+2011-11-18+at+9.26.42+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/11/vco-how-to-determine-free-dvswitch.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMFRHwyeyp7ImA9WhRREkw.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-1609672885830160978</id><published>2011-11-16T20:36:00.001+01:00</published><updated>2011-11-25T11:53:35.293+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-25T11:53:35.293+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="SOAP" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO reference" /><category scheme="http://www.blogger.com/atom/ns#" term="REST" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud portal" /><category scheme="http://www.blogger.com/atom/ns#" term="web complexity" /><category scheme="http://www.blogger.com/atom/ns#" term="wavemaker" /><category scheme="http://www.blogger.com/atom/ns#" term="interface" /><category scheme="http://www.blogger.com/atom/ns#" term="web service" /><category scheme="http://www.blogger.com/atom/ns#" term="WSDL" /><category scheme="http://www.blogger.com/atom/ns#" term="cloud service" /><category scheme="http://www.blogger.com/atom/ns#" term="web portal" /><title>vCO - wavemaker, your cloud webservice (part I)</title><content type="html">Many of you noticed that VMware acquired wavemaker (&lt;a href="http://dev.wavemaker.com/blog/2011/03/08/wavemaker-springs-to-vmware/" target="_blank"&gt;acquisition&lt;/a&gt;) in march this year. When searching for a WebView (included in vCenter Orchestrator) alternative I decided to take a look on wavemaker. I was really surprised how easy it was to start with a simple web portal as showcase for my customers. The biggest advantage in my opinion is the simple access to the SOAP based vCenter Orchestrator interface which allows you to build web portals an applications without any knowledge of a higher programming language.&lt;br /&gt;
&lt;br /&gt;
With this series I want to show you three examples:&lt;br /&gt;
&lt;br /&gt;
1. Get all Workflows&lt;br /&gt;
2. Get free DVS port-group ports&lt;br /&gt;
3. Clone a simple VM&lt;br /&gt;
&lt;br /&gt;
After the installation of wavemaker on my MacBook Pro the Wavemaker GUI is shown in my browser (http://localhost:8094/wavemaker/). At first I have to open a new project and define the basic layout (you can customize the layout later):&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-xPO_Cjx5GPc/TsQS1UE8caI/AAAAAAAAALg/6wLzw_YLQI4/s1600/Screen+shot+2011-11-16+at+8.25.14+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="281" src="http://1.bp.blogspot.com/-xPO_Cjx5GPc/TsQS1UE8caI/AAAAAAAAALg/6wLzw_YLQI4/s320/Screen+shot+2011-11-16+at+8.25.14+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I normally use the "no_theme" option because of it´s slick design. Next step is to create a WebService reference under "Service" in the main menu. Please note that you have to install the &lt;b&gt;&lt;i&gt;wsdl4j.jar&lt;/i&gt;&lt;/b&gt; library first.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-Ne7HGd4TWVc/TsQS5C-AbSI/AAAAAAAAAMI/o1LBztJu5uQ/s1600/Screen+shot+2011-11-16+at+8.29.22+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://1.bp.blogspot.com/-Ne7HGd4TWVc/TsQS5C-AbSI/AAAAAAAAAMI/o1LBztJu5uQ/s400/Screen+shot+2011-11-16+at+8.29.22+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I named my reference "vCOreference" and insert several elements in the main layout box: 2 text boxes (name/caption username and password), one button (name/caption Submit) and a datagrid below those elements. I also named the tabs as the further functionality: getAllWorkflows, getInventory and cloneVM. Please note that you have to select "password" for the password textbox to ensure the hidden input.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-8A7Sif8DP_w/TsQS2wxJ7nI/AAAAAAAAAL0/0-iMFIkgYeQ/s1600/Screen+shot+2011-11-16+at+8.27.27+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="223" src="http://1.bp.blogspot.com/-8A7Sif8DP_w/TsQS2wxJ7nI/AAAAAAAAAL0/0-iMFIkgYeQ/s400/Screen+shot+2011-11-16+at+8.27.27+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now I select the "Submit" button an pick the "events" text on the right side of the navigation. Then I choose "New Service" for the "OnClick" event. This means that when the button is clicked the service variable is called.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;a href="http://4.bp.blogspot.com/-LDrmOjlP0-w/TsQXNAyjBeI/AAAAAAAAANE/pCBjvto3e5Q/s1600/Screen+shot+2011-11-16+at+9.03.44+PM.png" imageanchor="1" style="clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="304" src="http://4.bp.blogspot.com/-LDrmOjlP0-w/TsQXNAyjBeI/AAAAAAAAANE/pCBjvto3e5Q/s320/Screen+shot+2011-11-16+at+9.03.44+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
After the selection is made wavemaker switches to the Services view and I choose the service I want to use with the new variable.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-Fg9JAiqzQeM/TsQS6RH4cQI/AAAAAAAAAMc/vYFJAUHj8EU/s1600/Screen+shot+2011-11-16+at+8.30.36+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://4.bp.blogspot.com/-Fg9JAiqzQeM/TsQS6RH4cQI/AAAAAAAAAMc/vYFJAUHj8EU/s400/Screen+shot+2011-11-16+at+8.30.36+PM.png" width="173" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
Remember the first use case I choose the "getAllWorkflows" method. After this selection I link the input variables (username/password) to the text boxes designed at the beginning of this article.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-kGtKCbsT7nI/TsQS7Vlj8iI/AAAAAAAAAMk/mryhOSKcsQE/s1600/Screen+shot+2011-11-16+at+8.31.32+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="301" src="http://3.bp.blogspot.com/-kGtKCbsT7nI/TsQS7Vlj8iI/AAAAAAAAAMk/mryhOSKcsQE/s320/Screen+shot+2011-11-16+at+8.31.32+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
Now the variables are linked with the inputs of the SOAP call. As you might imagined I want the data grid to show the result of the "getAllWorkflows" method. This is also really simple: Just click on the data grid and click the bracket beside "data set" in the right navigation pane. In the displayed binding list just choose the first (list) parameter.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-RWtut5QmHts/TsQS8rC9U-I/AAAAAAAAAMs/35ndcvAf2eY/s1600/Screen+shot+2011-11-16+at+8.32.04+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="286" src="http://4.bp.blogspot.com/-RWtut5QmHts/TsQS8rC9U-I/AAAAAAAAAMs/35ndcvAf2eY/s400/Screen+shot+2011-11-16+at+8.32.04+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
With this selection the data grid changes it´s layout into the return parameters (id, name, description) automatically. Now you can save the project and press "Run" on top of the page. After giving the credentials and pressing the "Submit" button all workflows are displayed in the data grid.&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-19T2qUyo-AQ/TsQaRcnxZzI/AAAAAAAAANM/kmA1PDO6c8E/s1600/Screen+shot+2011-11-16+at+9.00.29+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://2.bp.blogspot.com/-19T2qUyo-AQ/TsQaRcnxZzI/AAAAAAAAANM/kmA1PDO6c8E/s400/Screen+shot+2011-11-16+at+9.00.29+PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
As you can see I used only 10-15 clicks to establish a SOAP connection and a small web portal. So my opinion is: &lt;b&gt;"Wavemaker rocks!"&lt;/b&gt; This is really an alternative to the included WebViews and allows you to build web services and web portals from the scratch without any knowledge in programming languages!&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: -webkit-auto;"&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-1609672885830160978?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/gX94-fJrAeQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/1609672885830160978/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/11/vco-wavemaker-your-cloud-webservice.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1609672885830160978?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1609672885830160978?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/gX94-fJrAeQ/vco-wavemaker-your-cloud-webservice.html" title="vCO - wavemaker, your cloud webservice (part I)" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-xPO_Cjx5GPc/TsQS1UE8caI/AAAAAAAAALg/6wLzw_YLQI4/s72-c/Screen+shot+2011-11-16+at+8.25.14+PM.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/11/vco-wavemaker-your-cloud-webservice.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEHR344fip7ImA9WhdQFk0.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-2258729085523674943</id><published>2011-08-17T21:00:00.000+02:00</published><updated>2011-08-17T21:00:36.036+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-17T21:00:36.036+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vCloud Director" /><category scheme="http://www.blogger.com/atom/ns#" term="vLM auomation" /><category scheme="http://www.blogger.com/atom/ns#" term="vCD automation" /><category scheme="http://www.blogger.com/atom/ns#" term="SOAP" /><category scheme="http://www.blogger.com/atom/ns#" term="vLM" /><category scheme="http://www.blogger.com/atom/ns#" term="migration" /><category scheme="http://www.blogger.com/atom/ns#" term="REST" /><category scheme="http://www.blogger.com/atom/ns#" term="LabManager" /><category scheme="http://www.blogger.com/atom/ns#" term="vCD" /><title>vCO - VMware LabManager migration to vCloud Director (part 1)</title><content type="html">Awaiting my new hardware for testing the vLM to vCD migration I decided to give you an theoretical overview how the migration is realized. First thing I had to learn was that a vCD registered host could not act as an vLM host because of a higher agent version on the host (version 5). Unfortunately I forgot to make a screenshot (will repeat that with the new lab).&lt;br /&gt;
&lt;br /&gt;
With this knowledge there is only one option: vLM with vCenter Server 4 and vCD with vCenter Server 5, both registered in the vCenter Orchestrator.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-v-KHh3paPLQ/TkwBJ4renII/AAAAAAAAALA/qnFHMvB-z3s/s1600/vLM_road-to_vCD_part1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-v-KHh3paPLQ/TkwBJ4renII/AAAAAAAAALA/qnFHMvB-z3s/s320/vLM_road-to_vCD_part1.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When migrating to vSphere 5 this could be a one-time scenario. Maybe there are two environments -&amp;gt; the "old" vSphere 4 with vCenter Server 4.x, ESX/ESXi 4.x and VMware LabManager 4.x.x and the "new" one with vCenter 5, ESX 5 and vCD 1.x.&lt;br /&gt;
&lt;br /&gt;
The migration scenario I want to build up is divided into the following steps:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;&lt;li&gt;Archiving the vLM VMs into the Library&lt;/li&gt;
&lt;li&gt;Export of the archived VMs to a "transfer" NFS datastore&lt;/li&gt;
&lt;li&gt;Creation of the "old" configuration as vApp in the vCD&lt;/li&gt;
&lt;li&gt;Import of the exported vLM VMs as new vCD VMs&lt;/li&gt;
&lt;/ol&gt;&lt;div&gt;Really simple, or what?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I think I will need several SOAP workflows for the vLM to export the VMs in a consistent state to the "transfer" datastore. Next thing is to create the configuration in the vCD and register the VMs as new vApps or VMs in the vCD.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Please be patient, in the next 2 weeks I will test it and create a manual for the migration including the vCO packages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In the meantime... have a look upon the new &lt;a href="http://www.vcoteam.info/newsflash/vmware-released-the-amqp-plug-in.html"&gt;AMQP Plug-In&lt;/a&gt;!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-2258729085523674943?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/ZXNHTCTNqZk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/2258729085523674943/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/08/vco-vmware-labmanager-migration-to.html#comment-form" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/2258729085523674943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/2258729085523674943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/ZXNHTCTNqZk/vco-vmware-labmanager-migration-to.html" title="vCO - VMware LabManager migration to vCloud Director (part 1)" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-v-KHh3paPLQ/TkwBJ4renII/AAAAAAAAALA/qnFHMvB-z3s/s72-c/vLM_road-to_vCD_part1.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/08/vco-vmware-labmanager-migration-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4CQXY_fip7ImA9WhdQEU4.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-3414104404734438566</id><published>2011-08-10T23:34:00.014+02:00</published><updated>2011-08-12T10:32:40.846+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-12T10:32:40.846+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vmx" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="VMX parameter" /><category scheme="http://www.blogger.com/atom/ns#" term="vmx options" /><category scheme="http://www.blogger.com/atom/ns#" term="VMX automation" /><category scheme="http://www.blogger.com/atom/ns#" term="VcOptionValues" /><category scheme="http://www.blogger.com/atom/ns#" term="OptionValue" /><title>vCO - what´s up with VcOptionValue?</title><content type="html">Based on my article about the fixed VM boot order and the used VcOptionValue I investigate some time to figure out what else we can do with these parameters. The main statement in my opinion is: "It is the .vmx extension as API data object.".&lt;br /&gt;
&lt;br /&gt;
As described in the API reference:&amp;nbsp;&lt;a href="http://www.vmware.com/support/developer/vc-sdk/visdk41pubs/ApiReference/index.html"&gt;OptionValue&lt;/a&gt;&amp;nbsp;we know that there are two properties: key and value, as used in many other objects.&lt;br /&gt;
&lt;br /&gt;
The things which aren´t described are the keys and the values :( The thing I know from the powershell scripts was the "bios.bootDeviceClasses" key in my last article:&amp;nbsp;&lt;a href="http://mighty-virtualization.blogspot.com/2011/06/vco-change-vms-boot-order.html"&gt;VM Boot order&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
After some investigation I found several other keys and values described by Ulli Hankeln at:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://sanbarrow.com/vmx/vmx-advanced.html"&gt;http://sanbarrow.com/vmx/vmx-advanced.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
With the knowledge of these parameters it is really easy to automate your .vmx parameters. Especially the uuid parameters ("I copied this VM"), could make your life easier.&lt;br /&gt;
&lt;br /&gt;
Here is one example to automate the &lt;a href="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&amp;amp;cmd=displayKC&amp;amp;externalId=196"&gt;KB196&lt;/a&gt; change (repeated characters in VM console) which comes up very often in Linux-VMs:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-RR5Yal_9b9I/TkTee_RGIEI/AAAAAAAAAK8/93_WYlyo6V0/s1600/Screen+shot+2011-08-12+at+10.03.46+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="173" src="http://3.bp.blogspot.com/-RR5Yal_9b9I/TkTee_RGIEI/AAAAAAAAAK8/93_WYlyo6V0/s320/Screen+shot+2011-08-12+at+10.03.46+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Please find the .package file for download at google-docs:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;a href="https://docs.google.com/leaf?id=0B-albCIDFQtYZDUxYjU3ZWItMTc4MC00YjIzLWI0YzAtYTJmNjE2NGYwMDI0&amp;amp;hl=en_US"&gt;de.cjohannen.local.KB196.package&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you have use-cases, please let me know how you change the rules :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-3414104404734438566?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/xP3_r0JepqU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/3414104404734438566/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/08/vco-whats-up-with-vcoptionvalue.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3414104404734438566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3414104404734438566?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/xP3_r0JepqU/vco-whats-up-with-vcoptionvalue.html" title="vCO - what´s up with VcOptionValue?" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-RR5Yal_9b9I/TkTee_RGIEI/AAAAAAAAAK8/93_WYlyo6V0/s72-c/Screen+shot+2011-08-12+at+10.03.46+AM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/08/vco-whats-up-with-vcoptionvalue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkECQX46cCp7ImA9WhdSFkU.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-4563290049730325031</id><published>2011-07-26T15:43:00.001+02:00</published><updated>2011-07-26T15:57:40.018+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-26T15:57:40.018+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vExpert" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="Christian Johannsen" /><title>vExpert 2011 - Christian Johannsen</title><content type="html">Over the last two years I tried to become a so called VMware "vExpert". This award is really important to me cause it indicates what I have done for the community in the last years. As blog author, author of several white-paper and virtualization evangelist (virtual automation cult) this is a real honor.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-dkYh7Lv0gXU/Ti7Ecqzh2II/AAAAAAAAAHk/ftUBCsv4RSw/s1600/Screen+shot+2011-07-26+at+3.42.53+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-dkYh7Lv0gXU/Ti7Ecqzh2II/AAAAAAAAAHk/ftUBCsv4RSw/s1600/Screen+shot+2011-07-26+at+3.42.53+PM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
So, thanks folks! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-4563290049730325031?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/eVk7DTHSM7w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/4563290049730325031/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/07/vexpert-2011-christian-johannsen.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/4563290049730325031?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/4563290049730325031?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/eVk7DTHSM7w/vexpert-2011-christian-johannsen.html" title="vExpert 2011 - Christian Johannsen" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-dkYh7Lv0gXU/Ti7Ecqzh2II/AAAAAAAAAHk/ftUBCsv4RSw/s72-c/Screen+shot+2011-07-26+at+3.42.53+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/07/vexpert-2011-christian-johannsen.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MERHYyeyp7ImA9WhdTFUg.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-7322904277392659153</id><published>2011-07-13T12:00:00.001+02:00</published><updated>2011-07-13T12:03:25.893+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-13T12:03:25.893+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="serialize" /><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="JSON" /><category scheme="http://www.blogger.com/atom/ns#" term="output" /><category scheme="http://www.blogger.com/atom/ns#" term="OUT" /><category scheme="http://www.blogger.com/atom/ns#" term="Parameter" /><category scheme="http://www.blogger.com/atom/ns#" term="serilization" /><title>vCO - OUT-parameter serialization with JSON</title><content type="html">Today I stumbled again delivering OUT-parameters with vCO. There is a main thing you have to know: vCO can´t serialize objects. So it isn´t easy to deliver key-paired values to external interfaces, cause if you use "Object" and "Any" as output you`ll get some errors.&lt;br /&gt;
&lt;br /&gt;
Discussing this with some smart guys at the customer site they came up with a JSON description in the "Developers Guide" which is used for WebView. Typically I put all information in a nested Array/string to generate a machine readable output, but JSON could be an alternative.&lt;br /&gt;
&lt;br /&gt;
I started searching with the API Explorer for "JSON" and I found one action:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&amp;nbsp;objectToJson (includes the "serialize" action)&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;what describes exactly what I want to do.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So here is a little example vm(VC:VirtualMachine) ist IN-Parameter, param(string) is OUT-parameter:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;code&gt;var Specs = new Object();&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmName"] = vm.name;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmId"] = vm.id;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmNumCpus"] = vm.summary.config.numCpu;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmMemorySize"] = vm.summary.config.memorySizeMB;&amp;nbsp;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmPowerState"] = vm.runtime.PowerState.value;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmIpAddress"] = vm.guest.ipAddress;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmMacAddress"] = NicObject.macAddress;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmGuestHeartbeatStatus"] = vm.summary.quickStats.guestHeartbeatStatus.value;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmGuestMemoryUsage"] = vm.summary.quickStats.guestMemoryUsage;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmOverallCpuUsage"] = vm.summary.quickStats.overallCpuUsage;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;Specs["vmUptime"] = vm.summary.quickStats.uptimeSeconds/3600;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;for(i in vm.guest.disk){&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(vm.guest.disk.capacity != undefined){&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;System.log(vm.guest.disk.capacity);&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Specs["vmDiskCapacity"] = vm.guest.disk.capacity;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;else{&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Specs["vmDiskCapacity"] = "undefined";&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;if(vm.guest.disk.freeSpace != undefined){&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;System.log(vm.guest.disk.freeSpace);&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Specs["vmDiskFreeSpace"] = vm.guest.disk.freeSpace;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;else{&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;  &lt;/span&gt;Specs["vmDiskFreeSpace"] = "undefined";&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;}&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;&lt;br /&gt;
&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code&gt;param = System.getModule("com.vmware.web.webview").objectToJson(Specs) ;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-68rW55DBkug/Th1tXG2vllI/AAAAAAAAAHg/4Upi8ISgl3M/s1600/Screen+shot+2011-07-13+at+12.02.30+PM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://1.bp.blogspot.com/-68rW55DBkug/Th1tXG2vllI/AAAAAAAAAHg/4Upi8ISgl3M/s320/Screen+shot+2011-07-13+at+12.02.30+PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The easiest way to validate the code is JSONlint (&lt;a href="http://jsonlint.com/"&gt;http://jsonlint.com&lt;/a&gt;). Please keep in mind that the JSON definition does not know "undefined" as type (&lt;a href="http://en.wikipedia.org/wiki/JSON"&gt;http://en.wikipedia.org/wiki/JSON&lt;/a&gt;). So you need to catch it up and change it into a string or sort it out.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Hope this helps.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-7322904277392659153?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/_gbC8FhENlI" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/7322904277392659153/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/07/vco-out-parameter-serialization-with.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/7322904277392659153?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/7322904277392659153?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/_gbC8FhENlI/vco-out-parameter-serialization-with.html" title="vCO - OUT-parameter serialization with JSON" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-68rW55DBkug/Th1tXG2vllI/AAAAAAAAAHg/4Upi8ISgl3M/s72-c/Screen+shot+2011-07-13+at+12.02.30+PM.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/07/vco-out-parameter-serialization-with.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEUHQX86eip7ImA9WhZbGU8.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-3445392637229767301</id><published>2011-06-24T16:37:00.000+02:00</published><updated>2011-06-24T16:37:10.112+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-24T16:37:10.112+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCD automation" /><category scheme="http://www.blogger.com/atom/ns#" term="vLM" /><category scheme="http://www.blogger.com/atom/ns#" term="automation" /><category scheme="http://www.blogger.com/atom/ns#" term="SOAP plug-in" /><title>vCO - Automate vLM (VMware LabManager)</title><content type="html">Today I wrote an article for the vCOteam blog: How to automate the VMware LabManager operations with the new SOAP plug-in!&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.vcoteam.info/learn-vco/how-to-automate-labmanager-with-vco.html"&gt;http://www.vcoteam.info/learn-vco/how-to-automate-labmanager-with-vco.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Please stay tuned, part two for vCD migration follows :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-3445392637229767301?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/AFgXQ0esuLQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/3445392637229767301/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/06/vco-automate-vlm-vmware-labmanager.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3445392637229767301?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3445392637229767301?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/AFgXQ0esuLQ/vco-automate-vlm-vmware-labmanager.html" title="vCO - Automate vLM (VMware LabManager)" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/06/vco-automate-vlm-vmware-labmanager.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AMQ3o4cSp7ImA9WhZbEkQ.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-5169517935225295883</id><published>2011-06-17T10:36:00.000+02:00</published><updated>2011-06-17T10:36:22.439+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-17T10:36:22.439+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="plug-in" /><category scheme="http://www.blogger.com/atom/ns#" term="SOAP" /><category scheme="http://www.blogger.com/atom/ns#" term="REST" /><category scheme="http://www.blogger.com/atom/ns#" term="automation" /><category scheme="http://www.blogger.com/atom/ns#" term="WSDL" /><category scheme="http://www.blogger.com/atom/ns#" term="vSphere 4.1" /><title>vCO - who will live longer?</title><content type="html">Today is the day for me: the most powerful plug-ins till dunes was aquired by VMware were released yesterday:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;the SOAP/REST plug-in&lt;/li&gt;
&lt;li&gt;the VUM plug-in&lt;/li&gt;
&lt;/ul&gt;With these we are able to automate so much more of our own and 3rd party products. I think that nearly 80% of environments I have seen had applications with WSDL interfaces. Now we can implement them together with the cloud platform and automate daily jobs much better and faster.&lt;br /&gt;
&lt;br /&gt;
Her you will find more information:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://blogs.vmware.com/orchestrator/2011/06/vcenter-orchestrator-http-rest-and-soap-plug-ins-now-available.html"&gt;http://blogs.vmware.com/orchestrator/2011/06/vcenter-orchestrator-http-rest-and-soap-plug-ins-now-available.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
In the next days we will publish some "real world" examples :)&lt;br /&gt;
&lt;br /&gt;
Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-5169517935225295883?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/5bA-AnzaW8w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/5169517935225295883/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/06/vco-who-will-live-longer.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/5169517935225295883?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/5169517935225295883?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/5bA-AnzaW8w/vco-who-will-live-longer.html" title="vCO - who will live longer?" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/06/vco-who-will-live-longer.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HRnw_fip7ImA9WhZUF0w.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-8141623438586260802</id><published>2011-06-10T17:32:00.000+02:00</published><updated>2011-06-10T17:32:17.246+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-06-10T17:32:17.246+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VM config" /><category scheme="http://www.blogger.com/atom/ns#" term="powershell" /><category scheme="http://www.blogger.com/atom/ns#" term="vmx" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="boot device" /><category scheme="http://www.blogger.com/atom/ns#" term="boot order" /><title>vCO - change the VM´s boot order</title><content type="html">When automating the deployment of virtual machines there comes the time when you need to change the boot order of a virtual machine.&amp;nbsp;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;First there is a bad news: the boot order is part of the virtual machine´s BIOS (.nvram) and there is no easy way to edit this file. The good news is: based on &lt;a href="http://communities.vmware.com/message/1184271"&gt;this&lt;/a&gt; community discussion and the powershell examples i start to test the VcOptionValue inside the vCO.&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;After a short period of build and test it works with this simple code:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-oldn_vv_81U/TfI4a7oYVII/AAAAAAAAAHc/Eu29SLAYyxs/s1600/Bildschirmfoto+2011-06-10+um+17.02.07.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="137" src="http://2.bp.blogspot.com/-oldn_vv_81U/TfI4a7oYVII/AAAAAAAAAHc/Eu29SLAYyxs/s320/Bildschirmfoto+2011-06-10+um+17.02.07.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The inputs are : vm (VC:VirtualMachine) = virtual machine and device(string) = cd, net or hd for the boot device. Please keep in mind that this forces the VM to use only this device.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;With this code you are able to change or add other VcOptionValue´s also :)&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-8141623438586260802?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/FdnKQVqUAcs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/8141623438586260802/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/06/vco-change-vms-boot-order.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/8141623438586260802?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/8141623438586260802?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/FdnKQVqUAcs/vco-change-vms-boot-order.html" title="vCO - change the VM´s boot order" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-oldn_vv_81U/TfI4a7oYVII/AAAAAAAAAHc/Eu29SLAYyxs/s72-c/Bildschirmfoto+2011-06-10+um+17.02.07.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/06/vco-change-vms-boot-order.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUQGR3oycSp7ImA9WhdXEE0.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-2856653236296820503</id><published>2011-05-19T12:17:00.003+02:00</published><updated>2011-08-22T10:55:26.499+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-22T10:55:26.499+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Webservice" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCenter Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="PHP" /><category scheme="http://www.blogger.com/atom/ns#" term="WebClient" /><category scheme="http://www.blogger.com/atom/ns#" term="workflowName" /><category scheme="http://www.blogger.com/atom/ns#" term="name" /><category scheme="http://www.blogger.com/atom/ns#" term="bug" /><title>PHP - how to establish a vCO webservice client</title><content type="html">Discussing about the vCO webservice clients with &lt;a href="http://twitter.com/#%21/v_jasonmiles"&gt;Jason Miles&lt;/a&gt; at the PSO training I decide to show up how simple it is to build a webservice portal. With this you can easily establish web integration if the customer already has a web portal, for example.&lt;br /&gt;
&lt;br /&gt;
The PHP script has two components (.inc and .php):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;parameters.inc&lt;/li&gt;
&lt;li&gt;findWorkflows.php&lt;/li&gt;
&lt;li&gt;findWorkflowsWithName.php &lt;/li&gt;
&lt;/ul&gt;The first file holds the vCO servername/ip address, the username and the password, the second is the actual script. With "findWorkflowsWithName.php" I want to show how easy the parameter handover from a HTML form is.&lt;br /&gt;
&lt;br /&gt;
At first I create the "parameters.inc" to change the credentials in a central way.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-z3pqTvBsTyI/TdTq634TdQI/AAAAAAAAAHE/_NkJ8nbPGd0/s1600/Bildschirmfoto+2011-05-19+um+12.02.26.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://1.bp.blogspot.com/-z3pqTvBsTyI/TdTq634TdQI/AAAAAAAAAHE/_NkJ8nbPGd0/s320/Bildschirmfoto+2011-05-19+um+12.02.26.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After including the right credentials for the vCO connection I create the findWorkflows.php:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-cLENOuMJzdQ/TdTrMbblK3I/AAAAAAAAAHI/VdjMlH2kPvo/s1600/Bildschirmfoto+2011-05-19+um+11.51.03.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://4.bp.blogspot.com/-cLENOuMJzdQ/TdTrMbblK3I/AAAAAAAAAHI/VdjMlH2kPvo/s320/Bildschirmfoto+2011-05-19+um+11.51.03.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After saving the work the test in the browser shows up all workflows of my vCenter Orchestrator Server.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Wz2adaeW8Uc/TdTrnbjfhkI/AAAAAAAAAHM/0vGUevZYqgE/s1600/Bildschirmfoto+2011-05-19+um+12.05.55.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://2.bp.blogspot.com/-Wz2adaeW8Uc/TdTrnbjfhkI/AAAAAAAAAHM/0vGUevZYqgE/s320/Bildschirmfoto+2011-05-19+um+12.05.55.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So the first example is done. The connect works and the first method: "&lt;i&gt;&lt;b&gt;getAllWorkflows&lt;/b&gt;&lt;/i&gt;" from the vCenter Orchestrator WSDL is running. But in most cases customers want to give data from an external website to the vCenter Orchestrator. I show this with the "&lt;i&gt;&lt;b&gt;getWorflowsWithName&lt;/b&gt;&lt;/i&gt;" method in another script (findWorkflowsWithName.php).&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-maumk-m11ms/TdTsWnMrBCI/AAAAAAAAAHQ/TSebCwYB624/s1600/Bildschirmfoto+2011-05-19+um+11.51.22.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://2.bp.blogspot.com/-maumk-m11ms/TdTsWnMrBCI/AAAAAAAAAHQ/TSebCwYB624/s320/Bildschirmfoto+2011-05-19+um+11.51.22.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With this the user can search for a workflow by name.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ydG_bqHQEv8/TdTsz_MyITI/AAAAAAAAAHU/PlNt76aeqOA/s1600/Bildschirmfoto+2011-05-19+um+12.11.01.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="211" src="http://3.bp.blogspot.com/-ydG_bqHQEv8/TdTsz_MyITI/AAAAAAAAAHU/PlNt76aeqOA/s320/Bildschirmfoto+2011-05-19+um+12.11.01.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, get your feet on the street and start building you own web portal :-)&lt;br /&gt;
&lt;br /&gt;
WARNING - when developing this I found out that the input parameter for "&lt;i&gt;&lt;b&gt;getWorkflowsWithName&lt;/b&gt;&lt;/i&gt;" isn´t only "&lt;i&gt;&lt;b&gt;name&lt;/b&gt;&lt;/i&gt;", it is "&lt;i&gt;&lt;b&gt;workflowName&lt;/b&gt;&lt;/i&gt;"! - WARNING&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-EpAcFLVNFKw/TdTtP5IxA3I/AAAAAAAAAHY/voSpXCjUEOo/s1600/Bildschirmfoto+2011-05-19+um+11.50.15.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="110" src="http://2.bp.blogspot.com/-EpAcFLVNFKw/TdTtP5IxA3I/AAAAAAAAAHY/voSpXCjUEOo/s320/Bildschirmfoto+2011-05-19+um+11.50.15.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, sometimes there are some little traps but we try to fix that!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-2856653236296820503?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/vyn59Evw9cM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/2856653236296820503/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/05/php2vco-how-to-establish-webservice.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/2856653236296820503?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/2856653236296820503?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/vyn59Evw9cM/php2vco-how-to-establish-webservice.html" title="PHP - how to establish a vCO webservice client" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-z3pqTvBsTyI/TdTq634TdQI/AAAAAAAAAHE/_NkJ8nbPGd0/s72-c/Bildschirmfoto+2011-05-19+um+12.02.26.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/05/php2vco-how-to-establish-webservice.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEcEQnYzcCp7ImA9WhZWEEk.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-3293339604460952938</id><published>2011-05-09T20:19:00.001+02:00</published><updated>2011-05-10T17:40:03.888+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-10T17:40:03.888+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vCloud Director" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="vCloud" /><category scheme="http://www.blogger.com/atom/ns#" term="VMworld" /><category scheme="http://www.blogger.com/atom/ns#" term="automation" /><category scheme="http://www.blogger.com/atom/ns#" term="orchestration" /><title>VMworld 2011 - Unveil the vCO secrets and VOTE!</title><content type="html">Our fellow Christophe here at VMware has posted the VMworld sessions for the vCenter Orchestrator automation and orchestration sessions:&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&lt;a href="http://www.vcoteam.info/newsflash/vmworld-2011-help-to-reveal-vmware-best-kept-secret.html"&gt;http://www.vcoteam.info/newsflash/vmworld-2011-help-to-reveal-vmware-best-kept-secret.html&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
If you want to know more about the exciting capabilities of the vCenter Orchestrator and the automation from infrastructure to the cloud, please vote.&lt;br /&gt;
&lt;br /&gt;
Thanks! Hope to see you at the VMworld 2011!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-3293339604460952938?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/L_rCyioDv_Q" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/3293339604460952938/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/05/vmworld-2010-unveil-vco-secrets-and.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3293339604460952938?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/3293339604460952938?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/L_rCyioDv_Q/vmworld-2010-unveil-vco-secrets-and.html" title="VMworld 2011 - Unveil the vCO secrets and VOTE!" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/05/vmworld-2010-unveil-vco-secrets-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A08GQ344cSp7ImA9WhZXE0g.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-8587565396826392666</id><published>2011-05-02T20:10:00.000+02:00</published><updated>2011-05-02T20:10:22.039+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-02T20:10:22.039+02:00</app:edited><title>vCO - convert decimal net mask to decimal octet</title><content type="html">I had to calculate the dotted subnet mask from normal formatted network string like:&lt;br /&gt;
&lt;br /&gt;
192.168.12.0/23 --&amp;gt; 255.255.254.0&lt;br /&gt;
&lt;br /&gt;
In vCO pow(x,y) is not available, so I had to build an action which transform the decimal part (here 23) into a dotted format by using a function to calculate pow(2,x). &lt;br /&gt;
Because the decimal part was got by .split("/") the input parameter is also string. You an easily rewrite this action for number input usage.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-T0aNBkEValg/Tb7uKbComwI/AAAAAAAAAGs/MtD5Ink0uDM/s1600/MaskDec2Oct.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-T0aNBkEValg/Tb7uKbComwI/AAAAAAAAAGs/MtD5Ink0uDM/s320/MaskDec2Oct.png" width="312" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Feel free to leave a comment - Regards, Andreas&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-8587565396826392666?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/hkcyzmXpM2I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/8587565396826392666/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/05/vco-convert-decimal-net-mask-to-decimal.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/8587565396826392666?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/8587565396826392666?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/hkcyzmXpM2I/vco-convert-decimal-net-mask-to-decimal.html" title="vCO - convert decimal net mask to decimal octet" /><author><name>Andreas Diemer</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://2.bp.blogspot.com/-4g8n7q1rik0/TXOp3s0ifwI/AAAAAAAAAGM/2STdek5tvEg/s220/AppleLogoBlue.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-T0aNBkEValg/Tb7uKbComwI/AAAAAAAAAGs/MtD5Ink0uDM/s72-c/MaskDec2Oct.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/05/vco-convert-decimal-net-mask-to-decimal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQDQXs8eip7ImA9WhZSFUU.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-5132657798910378137</id><published>2011-03-31T16:39:00.000+02:00</published><updated>2011-03-31T16:39:30.572+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-31T16:39:30.572+02:00</app:edited><title>vCO - use and examples of RegExp (regular expression)  Update</title><content type="html">I just learned a little bit more about RexExP in vCO. The problem and solution track could found at http://communities.vmware.com/thread/308300 (there is no bug in RexExp, only a poor description of the method in vCO). A basic usage was already published in &lt;a href="http://mighty-virtualization.blogspot.com/2011/02/vco-use-and-examples-of-regexp-regular.html"&gt;this previous post&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The string.match() is used to find substrings matching a pattern, the RegExp. But when you call this expecting a multiple return, you'll only get the first match.&lt;br /&gt;
&lt;br /&gt;
test = "Cats don't eat catfish. Not my cat";&lt;br /&gt;
System.log (test.match("cat"));&lt;br /&gt;
&lt;br /&gt;
will return only one element in array: "cat" - the first match found in catfish.&lt;br /&gt;
&lt;br /&gt;
By expanding the RegExp with modifiers you will receive all results (maybe you know them from JavaScript).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
test = "Cats don't eat catfish. Not my cat";&lt;br /&gt;
System.log (test.match(new RegEx("cat", "g")));&lt;br /&gt;
&lt;br /&gt;
returns "cat,"cat" for both cat in string.&lt;br /&gt;
Using "i" will return "Cat".&lt;br /&gt;
And the combination gi "Cat", "cat", "cat"&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;i for case independend search&lt;/li&gt;
&lt;li&gt;g for global search&lt;/li&gt;
&lt;li&gt;gi as combination of both&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
This is the expected behavior mentioned in all tutorials.&lt;br /&gt;
&lt;br /&gt;
Regards, Andreas&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-5132657798910378137?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/emOWeA__m10" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/5132657798910378137/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/03/vco-use-and-examples-of-regexp-regular.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/5132657798910378137?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/5132657798910378137?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/emOWeA__m10/vco-use-and-examples-of-regexp-regular.html" title="vCO - use and examples of RegExp (regular expression)  Update" /><author><name>Andreas Diemer</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="27" height="32" src="http://2.bp.blogspot.com/-4g8n7q1rik0/TXOp3s0ifwI/AAAAAAAAAGM/2STdek5tvEg/s220/AppleLogoBlue.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/03/vco-use-and-examples-of-regexp-regular.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUABQHc6cCp7ImA9WhZSFEs.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-9203371218996607020</id><published>2011-03-30T08:45:00.001+02:00</published><updated>2011-03-30T08:49:11.918+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-30T08:49:11.918+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="API" /><category scheme="http://www.blogger.com/atom/ns#" term="automation" /><category scheme="http://www.blogger.com/atom/ns#" term="Cisco UCS" /><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><category scheme="http://www.blogger.com/atom/ns#" term="vSphere 4.1" /><title>vCO - from infrastructure to the cloud (Cisco USC Plug-in)</title><content type="html">As mentioned in many other blog articles in the past, the development of the vCenter Orchestrator Plug-ins goes straight ahead. A few weeks after the vCloud Plug-in the Cisco UCS Plug-in was released yesterday! This Plug-in shows how many ways there are to design automation and orchestration solutions. In my opinion there are two main strategies to implement a vCO in customer environments:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;as leading system for automation design and implementation&lt;/li&gt;
&lt;li&gt;as subordinate system with high integration possibilities&lt;/li&gt;
&lt;/ul&gt;With this in mind there are two other important things to know: the infrastructure and the cloud automation. In every VMware cloud there is also the need to establish an basic vSphere infrastructure (infrastructire as a service) which abstracts the physical resources. So if you have a physical infrastructure you can know design the complete automation from hardware delivery up to cloud integration (application as a service).&lt;br /&gt;
&lt;br /&gt;
Don´t get me wrong, you can integrate your ESX/ESXi host-systems in an automated way also without the Cisco USC Plug-in but if you have Cisco hardware the deployment is much more comfortable because of using the UCS API. Here are some examples from the release notes:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Application of a service profile to a UCS blade&lt;/li&gt;
&lt;li&gt;Cloning a service profile template to a service profile&lt;/li&gt;
&lt;li&gt; Service profile customization of frequently modified components&lt;/li&gt;
&lt;li&gt;Import and export of service profiles from and to UCS Manager instances &lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
As you can see the service definition is also available for the cloud infrastructure and allows you to definine service levels and tiers in an automated way.&lt;br /&gt;
&lt;br /&gt;
Based on the HTTP POST method the integration of Cisco UCS Manager looks like:&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-GLC1VkDM4eE/TZLOjjtmddI/AAAAAAAAAG8/5kcdaqiiW80/s1600/Bildschirmfoto+2011-03-30+um+08.32.29.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="80" src="http://1.bp.blogspot.com/-GLC1VkDM4eE/TZLOjjtmddI/AAAAAAAAAG8/5kcdaqiiW80/s320/Bildschirmfoto+2011-03-30+um+08.32.29.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With this method the Cisco UCS Manager XML API maps the objects with their attributes and functions in the vCenter Orchestrator. &lt;br /&gt;
&lt;br /&gt;
In the Plug-in packages are also several example workflows and actions to automate an existing environment in a fast and comfortable way. &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Nz3jjvmAAPU/TZLQWsMXb4I/AAAAAAAAAHA/LCWmHJ-j1uQ/s1600/Bildschirmfoto+2011-03-30+um+08.39.29.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="203" src="http://4.bp.blogspot.com/-Nz3jjvmAAPU/TZLQWsMXb4I/AAAAAAAAAHA/LCWmHJ-j1uQ/s320/Bildschirmfoto+2011-03-30+um+08.39.29.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I hope that we now can address a wider audience to automate and orchestrate their cloud infrastructure. &lt;br /&gt;
&lt;br /&gt;
Download Cisco UCS Plug-in: &lt;a href="http://downloads.vmware.com/d/details/vco_ucs_plugin_1_0/ZHcqYnR0KmpiZCpwcA=="&gt;&lt;span class="shortdesc"&gt;VMware vCenter Orchestrator Plug-in for Cisco UCS 1.0&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span class="shortdesc"&gt;Release Notes:&lt;/span&gt; &lt;a href="https://www.vmware.com/support/orchestrator/doc/ucs_plugin_10_release_notes.html"&gt;VMware vCenter Orchestrator Plug-In for Cisco UCS Manager 1.0 Release Notes&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-9203371218996607020?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/DRcZW1bcrec" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/9203371218996607020/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/03/vco-from-infrastructure-to-cloud-cisco.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/9203371218996607020?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/9203371218996607020?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/DRcZW1bcrec/vco-from-infrastructure-to-cloud-cisco.html" title="vCO - from infrastructure to the cloud (Cisco USC Plug-in)" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-GLC1VkDM4eE/TZLOjjtmddI/AAAAAAAAAG8/5kcdaqiiW80/s72-c/Bildschirmfoto+2011-03-30+um+08.32.29.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/03/vco-from-infrastructure-to-cloud-cisco.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0ANQ3g6eSp7ImA9WhZSE0w.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-1973276321271982623</id><published>2011-03-28T14:25:00.005+02:00</published><updated>2011-03-28T14:36:32.611+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-28T14:36:32.611+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MTU" /><category scheme="http://www.blogger.com/atom/ns#" term="ESXi" /><category scheme="http://www.blogger.com/atom/ns#" term="dvSwitch" /><category scheme="http://www.blogger.com/atom/ns#" term="dvPort" /><category scheme="http://www.blogger.com/atom/ns#" term="Jumbo Frames" /><category scheme="http://www.blogger.com/atom/ns#" term="vSphere 4.1" /><title>vCO - set Jumbo Frames (MTU) for VMkernel</title><content type="html">&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;Last week I spoke to some fellows here at VMware and think about a solution to automate the MTU size for a dvPort/PortGroup&amp;nbsp;with vCO automation. In the past there was no automated way than the excellent solution by &lt;a href="http://blog.scottlowe.org/2009/05/21/vmware-vsphere-vds-vmkernel-ports-and-jumbo-frames/"&gt;Scott Lowe&lt;/a&gt;. Based on these findings i try to build this in vCO, knowing that the vSphere Client does not support this directly.&lt;/div&gt;&lt;br /&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;At first i had to identify the Port which serves the vmkernel and a few input parameters:&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-_LfnRJnNhUg/TY-O4Qll5wI/AAAAAAAAAGk/QLu9nMRfb3M/s1600/Bildschirmfoto+2011-03-27+um+20.59.44.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="96" src="http://3.bp.blogspot.com/-_LfnRJnNhUg/TY-O4Qll5wI/AAAAAAAAAGk/QLu9nMRfb3M/s320/Bildschirmfoto+2011-03-27+um+20.59.44.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At first I need the host (in my case as string because this is used for an external excitation via SOAP), the name of the dvSwitch, the new IP address of the vmkernel interface and the new subnet mask. So i set the host (VcPlugin.getAllHostSystems) and use the getAllDvSwitches workflow from one of my last &lt;a href="http://mighty-virtualization.blogspot.com/2011/01/vco-get-all-distributed-virtual.html"&gt;publications&lt;/a&gt;.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-XmihRxPN3v0/TY-QMvEspPI/AAAAAAAAAGs/rkyzaTB77Fs/s1600/Bildschirmfoto+2011-03-27+um+21.30.08.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-XmihRxPN3v0/TY-QMvEspPI/AAAAAAAAAGs/rkyzaTB77Fs/s200/Bildschirmfoto+2011-03-27+um+21.30.08.png" width="125" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-nLqQ9ykaPkk/TY-P50t9AKI/AAAAAAAAAGo/V42bR7bsaW4/s1600/Bildschirmfoto+2011-03-27+um+21.00.00.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After that I set the dvSwitch based on the input parameter (dvSwitch) and searching for the right port. The main procedure to identify the right port is: if(Ports[h].connectee.type == "hostVmkVnic") cause this compares to the vmkernel NIC.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: left;"&gt;&lt;a href="http://1.bp.blogspot.com/-jFLtENNTM24/TY-R8z-XPAI/AAAAAAAAAGw/9M6gE12ICsY/s1600/Bildschirmfoto+2011-03-27+um+21.37.30.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://1.bp.blogspot.com/-jFLtENNTM24/TY-R8z-XPAI/AAAAAAAAAGw/9M6gE12ICsY/s320/Bildschirmfoto+2011-03-27+um+21.37.30.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At this point&amp;nbsp;I know everything to change the MTU of the vmkernel Port, but... the API shows an cruel description: &lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-frHaTFk6iGM/TZB7yZeF2JI/AAAAAAAAAG0/F6ggFm15fz4/s1600/Bildschirmfoto+2011-03-28+um+07.28.20.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="158" r6="true" src="http://1.bp.blogspot.com/-frHaTFk6iGM/TZB7yZeF2JI/AAAAAAAAAG0/F6ggFm15fz4/s320/Bildschirmfoto+2011-03-28+um+07.28.20.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So as mentioned when reading the article there is no direct API based way to set the MTU of a dvPort. In my case&amp;nbsp;I solve the problem with using direct ssh commands. The drawback with this is the username/password dependence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_f_RA-SQ0a0/TZB8-7JEguI/AAAAAAAAAG4/9aYfdtLO9JA/s1600/Bildschirmfoto+2011-03-28+um+14.20.12.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="149" r6="true" src="http://2.bp.blogspot.com/-_f_RA-SQ0a0/TZB8-7JEguI/AAAAAAAAAG4/9aYfdtLO9JA/s320/Bildschirmfoto+2011-03-28+um+14.20.12.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So after identifying the right host, the vmkernel port, the new ip address and subnet mask the ssh commands can run. As you can see&amp;nbsp;I used exact the same commands as the console guys use.&lt;br /&gt;
&lt;br /&gt;
So, hope this helps.&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-1973276321271982623?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/x0-7rOg6lgM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/1973276321271982623/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/03/vco-set-jumbo-frames-mtu-for-vmkernel.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1973276321271982623?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/1973276321271982623?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/x0-7rOg6lgM/vco-set-jumbo-frames-mtu-for-vmkernel.html" title="vCO - set Jumbo Frames (MTU) for VMkernel" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-_LfnRJnNhUg/TY-O4Qll5wI/AAAAAAAAAGk/QLu9nMRfb3M/s72-c/Bildschirmfoto+2011-03-27+um+20.59.44.png" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/03/vco-set-jumbo-frames-mtu-for-vmkernel.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUEAQXczeSp7ImA9Wx9aFkU.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-8242641208895280846</id><published>2011-03-08T13:37:00.051+01:00</published><updated>2011-03-09T17:20:40.981+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-09T17:20:40.981+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Webservice" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="automation" /><category scheme="http://www.blogger.com/atom/ns#" term="orchestration" /><category scheme="http://www.blogger.com/atom/ns#" term="error" /><category scheme="http://www.blogger.com/atom/ns#" term="vSphere 4.1" /><category scheme="http://www.blogger.com/atom/ns#" term="client" /><title>vCO - internal methods and authorizations</title><content type="html">Today I had a strange problem at one of our larger customers. In fact it could be reduced to one sentence: "When starting a workflow from the GUI everything works, starting this workflow with the same user from a webservice client, all internal methods fail."&lt;br /&gt;
&lt;br /&gt;
In this case internal methods mean things like:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;var VMs = VcPlugin.getAllVirtualMachines();&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
or other actions with embedded methods. As a good Consultant I try to reduce the possibilities which can cause an error like this. At first I test the script of the customer (Perl) in my environment, with success because everything was fine. Then I review the user and his rights in the customers vCO and try my own Win32 test application (will be published soon). Every time I started Clients directly on the vCO all things going straight forward. Every time I test it from the customers PC nothing works or better the array "VMs" was empty.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-cJuTmbfewUs/TXc9qxuStOI/AAAAAAAAAGg/-nZ6aAJiuzM/s1600/Untitled.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="83" src="https://lh5.googleusercontent.com/-cJuTmbfewUs/TXc9qxuStOI/AAAAAAAAAGg/-nZ6aAJiuzM/s320/Untitled.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The bad thing is that I can´t get any error inside the workflows. The vCenter Orchestrator always runs over the workflows and doesn´t display any error message. After several attempts I try to read out the log files in the vCenter Orchestrator. Inside the vCenter Orchestrator configuration there is a log viewer which i use for searching. After a few lines there are several ERROR entries, which look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;2011-03-08 07:35:39.760+0100 ERROR [VimSession] getRootFolder() --&amp;gt; java.lang.Exception: getServiceContent() [vcouser@https://vCenterServerIP/sdk/Main#498028b0] --&amp;gt; Invalid login&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I didn´t know that there was a difference between the networks (AD policy) because the user was created in the campus network. Testing it with my Win32 client directly on the vCenter Orchestrator with the same user was successful.&lt;br /&gt;
&lt;br /&gt;
After we changed the rights for the user (AD group) everything works fine and all arrays were filled.&lt;br /&gt;
&lt;br /&gt;
So if you see that internal actions or methods doesn´t work from your webclient, there could be an authorization problem :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-8242641208895280846?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/lcyc2P1zWAk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/8242641208895280846/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/03/vco-internal-methods-and-authorizations.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/8242641208895280846?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/8242641208895280846?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/lcyc2P1zWAk/vco-internal-methods-and-authorizations.html" title="vCO - internal methods and authorizations" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/-cJuTmbfewUs/TXc9qxuStOI/AAAAAAAAAGg/-nZ6aAJiuzM/s72-c/Untitled.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/03/vco-internal-methods-and-authorizations.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEARHk9eCp7ImA9Wx9aFE4.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-6645204954310344253</id><published>2011-03-06T19:04:00.000+01:00</published><updated>2011-03-06T19:04:05.760+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-06T19:04:05.760+01:00</app:edited><title>NEWS - time to change</title><content type="html">Now it is official! Andreas and I joined the VMware PSO team this week. We decide to use mighty-virtualization further as it is known in the past: as virtualization and and automation blog. Between that we'll write at www.vcoteam.info, one of the best blogs for the vCenter Orchestrator automation tool.&lt;br /&gt;
&lt;br /&gt;
Especially the newest vCO plugin for vCloud Director shows up that vCenter Orchestrator allows you to use infrastructure and cloud automation in future. In my opinion vCO is the best automation and orchestration tool for virtual environments on the market and we signed our flags to show you why ;-)&lt;br /&gt;
&lt;br /&gt;
So please stay tuned, there are great things to come!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-6645204954310344253?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/upT936-a7uY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/6645204954310344253/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/03/news-time-to-change.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/6645204954310344253?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/6645204954310344253?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/upT936-a7uY/news-time-to-change.html" title="NEWS - time to change" /><author><name>Christian Johannsen</name><uri>http://www.blogger.com/profile/05436107822493548471</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/_ctSUxQyMOqI/TQ-iLAiPUUI/AAAAAAAAAFc/ZXpfc9OS1xU/S220/DSC00134_smaller.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/03/news-time-to-change.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEcARXs4fip7ImA9Wx9VF0k.&quot;"><id>tag:blogger.com,1999:blog-4479559294098558595.post-4546172161777021128</id><published>2011-02-03T14:50:00.001+01:00</published><updated>2011-02-03T16:14:04.536+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-03T16:14:04.536+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="VMware" /><category scheme="http://www.blogger.com/atom/ns#" term="vCO" /><category scheme="http://www.blogger.com/atom/ns#" term="regular expression" /><category scheme="http://www.blogger.com/atom/ns#" term="Orchestrator" /><category scheme="http://www.blogger.com/atom/ns#" term="Diemer" /><category scheme="http://www.blogger.com/atom/ns#" term="Andreas" /><category scheme="http://www.blogger.com/atom/ns#" term="RegExp" /><title>vCO - use and examples of RegExp (regular expression)</title><content type="html">Regular Expressions are a powerful tool to work with strings and - like awk - a little bit cryptic (for me). So I start to write down some use case and examples I need in vCO for searching or as an input filter, e.g. in vCO WebView.&lt;br /&gt;
&lt;br /&gt;
Links I've used:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.regular-expressions.info/tutorial.html"&gt;http://www.regular-expressions.info/tutorial.html&lt;/a&gt;&amp;nbsp;(english)&lt;/li&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;a href="http://de.selfhtml.org/javascript/objekte/regexp.htm"&gt;http://de.selfhtml.org/javascript/objekte/regexp.htm&lt;/a&gt;&amp;nbsp;(german)&lt;/li&gt;
&lt;/ul&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;strong&gt;Attention: vCO does not use RegExp in format /..../, "/" must be omitted!&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="font-size: large;"&gt;Example 1: IP-address format&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;to restrict a mandatory input only to x.x.x.x up to xxx.xxx.xxx.xxx where x is numeric (0-9) use this RegExp (does not catch range errors, only format will be checked):&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_FcufnyjqRG4/TUpztXrZVfI/AAAAAAAAAGE/1iFNlZaKsr8/s1600/RegExpExample01.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="212" s5="true" src="http://4.bp.blogspot.com/_FcufnyjqRG4/TUpztXrZVfI/AAAAAAAAAGE/1iFNlZaKsr8/s320/RegExpExample01.PNG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;How is this build up? IP address is build by 4 groups of pattern, first three with same logic.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strong&gt;First three groups&lt;/strong&gt; - 1&amp;nbsp;up to 255 always followed by a dot&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;A counted repetition is build by &lt;strong&gt;{}&lt;/strong&gt; e.g. &lt;strong&gt;{3}&lt;/strong&gt; = exact 3 times, &lt;strong&gt;{1,3}&lt;/strong&gt; = min. 1 max. 3 times.&lt;br /&gt;
So x up to xxx is written as&lt;strong&gt; [0-9]&lt;/strong&gt; &amp;lt;-- represents one character as a digit from 0 to 9, followed by &lt;strong&gt;{1,3}&lt;/strong&gt; &amp;lt;-- repeat this 1 up to 3 times --&amp;gt; &lt;strong&gt;[0-9]{1,3}. &lt;/strong&gt;The dot is a control char and mast be escaped by&lt;strong&gt; \&lt;/strong&gt;. So a complete group is describes as &lt;strong&gt;[0-9]{1,3}\&lt;/strong&gt;.&lt;br /&gt;
This group occurs exactly 3 times, so we group this expression by () and repeat it {}&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;([0-9]{1,3}\.){3}&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strong&gt;Last group&lt;/strong&gt; - ﻿1 up to 255&lt;/div&gt;same as above &lt;strong&gt;[0-9]{1,3}&lt;/strong&gt;.&lt;strong&gt; &lt;/strong&gt;Now combine all groups and you have a RegExp for IP-address format.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;([0-9]{1,3}\.){3}[0-9]{1,3}&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Example 2: String.search(RegExp)&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;To search a special character combination String.index ist most used. But if you searching e.g. for VMs containing _TMPL and you want to find also _tmpl and all other combinations, you have to use "ucase" and then .index.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Or you can catch this in one RegExp (VMs is Array/VirtualMachine):&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;for (i in VMs)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;{&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; if (VMs[i].name.search("&lt;strong&gt;_[tT][mM][pP][lL]&lt;/strong&gt;") &amp;gt;= 0)&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; {&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //do something&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&amp;nbsp; }&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;}&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If the pattern should only be valid at the end of string, add $ to group&amp;nbsp;--&amp;gt;&lt;strong&gt; (_[tT][mM][pP][lL])$&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;Example 3:&lt;br /&gt;
match pattern for naming conventions e.g. datastore names&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Another often use case is filtering datastores by name.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Assuming a company's naming convention is &amp;lt;CLUSTERNAME&amp;gt;-&amp;lt;TIER&amp;gt;&amp;lt;LUN&amp;gt; where clustername has no defined length, tier is F, S, L and LUN 001 to 255. Additional Test LUNs having a suffix and should not match the search. Examples for datastore names:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Cluster17-L-123&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;DevCluster02-S-043&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;DevCluster01-L-155_MyTest&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you want find a valid datastore name &amp;nbsp;in tier class L or M, omitting test datastores you have to define a set of .index clauses or one RegExp:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;&lt;span style="font-size: large;"&gt;"(-[LM]-[0-9]{3})$"&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;This will find all combinations of -L-xxx and -M-xxx only if they are at the end of string.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;If you have use case to be solved or other questions, feel free to leave as comment.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Regards, Andreas&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4479559294098558595-4546172161777021128?l=mighty-virtualization.blogspot.com' alt='' /&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/MightyVirtualization/~4/ZdXu5KXN6zo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://mighty-virtualization.blogspot.com/feeds/4546172161777021128/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://mighty-virtualization.blogspot.com/2011/02/vco-use-and-examples-of-regexp-regular.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/4546172161777021128?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/4479559294098558595/posts/default/4546172161777021128?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/MightyVirtualization/~3/ZdXu5KXN6zo/vco-use-and-examples-of-regexp-regular.html" title="vCO - use and examples of RegExp (regular expression)" /><author><name>Andreas Diemer</name><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="31" src="http://4.bp.blogspot.com/_FcufnyjqRG4/TUQGuq2rKvI/AAAAAAAAAFU/xO6krahHkIg/s220/picto_dance.png" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_FcufnyjqRG4/TUpztXrZVfI/AAAAAAAAAGE/1iFNlZaKsr8/s72-c/RegExpExample01.PNG" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://mighty-virtualization.blogspot.com/2011/02/vco-use-and-examples-of-regexp-regular.html</feedburner:origLink></entry></feed>

