<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Magnus Ullberg's Blog</title>
    <link>http://communities.vmware.com/blogs/ullbergm</link>
    <description>A log of my vmware experiences, mostly going to be development stuff.</description>
    <pubDate>Wed, 14 Jan 2009 23:17:13 GMT</pubDate>
    <generator>Clearspace 1.10.12 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2009-01-14T23:17:13Z</dc:date>
    <item>
      <title>Updated log viewer</title>
      <link>http://communities.vmware.com/blogs/ullbergm/2009/01/14/updated-log-viewer</link>
      <description>I had a couple of feature requests such as filtering and the ability to sort the columns on the fly.&lt;br /&gt;
&lt;br /&gt;
Here is what it has evolved to now:&lt;br /&gt;
&lt;p /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/38-2453-4983/viewmanager.JPG" alt="viewmanager.JPG" width="620" class="jive-image-thumbnail jive-image" onclick="myJiveImage.start(this, 'http://communities.vmware.com/servlet/JiveServlet/downloadImage/38-2453-4983/viewmanager.JPG');return false;"/&gt;</description>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">.net</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">c#</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">deployment</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">desktop</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">infrastructure</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">management</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vdi</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">view</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vmware</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vi3</category>
      <pubDate>Wed, 14 Jan 2009 23:18:25 GMT</pubDate>
      <author>ullbergm</author>
      <guid>http://communities.vmware.com/blogs/ullbergm/2009/01/14/updated-log-viewer</guid>
      <dc:date>2009-01-14T23:18:25Z</dc:date>
      <clearspace:dateToText>5 months, 3 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <wfw:comment>http://communities.vmware.com/blogs/ullbergm/comment/updated-log-viewer</wfw:comment>
      <wfw:commentRss>http://communities.vmware.com/blogs/ullbergm/feeds/comments?blogPostID=2453</wfw:commentRss>
    </item>
    <item>
      <title>Another project - VMware View Log Viewer</title>
      <link>http://communities.vmware.com/blogs/ullbergm/2009/01/12/another-project-vmware-view-log-viewer</link>
      <description>Here is another project that I came up with - VMware View Log Viewer.&lt;br /&gt;
&lt;br /&gt;
The basic need comes from the fact that the web interface is not always as quick as i would like and i also wanted to have it color code based on severity as well as do some rudimentary analysis. &lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/38-2441-4953/VMware+View+Log+Viewer.jpg" alt="VMware View Log Viewer.jpg" width="620" class="jive-image-thumbnail jive-image" onclick="myJiveImage.start(this, 'http://communities.vmware.com/servlet/JiveServlet/downloadImage/38-2441-4953/VMware+View+Log+Viewer.jpg');return false;"/&gt;  &lt;br /&gt;
&lt;br /&gt;
The analysis is configured by adding entries to a XML file.&lt;br /&gt;
&lt;br /&gt;
In this example you can see that I am looking for "BROKER_LOGON:USER:" followed by the username that logged on. I then insert the username in the analysis message. &lt;br /&gt;
&lt;p /&gt;
&amp;lt;LogAnalysis&amp;gt;&lt;br /&gt;
&amp;lt;Type&amp;gt;INFO&amp;lt;/Type&amp;gt;&lt;br /&gt;
&amp;lt;Module&amp;gt;Audit&amp;lt;/Module&amp;gt;&lt;br /&gt;
&amp;lt;MessageRegEx&amp;gt;BROKER_LOGON:USER:(;*);&amp;lt;/MessageRegEx&amp;gt;&lt;br /&gt;
&amp;lt;Analysis&amp;gt;{0} logged on to the broker&amp;lt;/Analysis&amp;gt;&lt;br /&gt;
&amp;lt;/LogAnalysis&amp;gt;&lt;br /&gt;
&lt;p /&gt;
This one shows how I highlight a message in the output by changing the style. I'm looking for POOL_EMPTY messages and display them with a red background (ListViewItemStyleError is white text on red background).&lt;br /&gt;
&lt;p /&gt;
&amp;lt;LogAnalysis&amp;gt;&lt;br /&gt;
&amp;lt;Type&amp;gt;INFO&amp;lt;/Type&amp;gt;&lt;br /&gt;
&amp;lt;Module&amp;gt;Audit&amp;lt;/Module&amp;gt;&lt;br /&gt;
&amp;lt;MessageRegEx&amp;gt;POOL_EMPTY:Pool:cn=(,);;USER:(;+)&amp;lt;/MessageRegEx&amp;gt;&lt;br /&gt;
&amp;lt;Analysis&amp;gt;Not enough workstations in the {0} pool - {1} can't log in&amp;lt;/Analysis&amp;gt;&lt;br /&gt;
&amp;lt;StyleName&amp;gt;ListViewItemStyleError&amp;lt;/StyleName&amp;gt;&lt;br /&gt;
&amp;lt;/LogAnalysis&amp;gt;&lt;br /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;p /&gt;
Edit: Ignore the errors in the xml/regular expressions, the blog messes with the text &lt;img class="jive-emoticon" border="0" src="http://communities.vmware.com/images/emoticons/angry.gif" alt="X-(" /&gt;</description>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">.net</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">c#</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">infrastructure</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">desktop</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">management</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">development</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vdi</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">view</category>
      <pubDate>Mon, 12 Jan 2009 22:52:22 GMT</pubDate>
      <author>ullbergm</author>
      <guid>http://communities.vmware.com/blogs/ullbergm/2009/01/12/another-project-vmware-view-log-viewer</guid>
      <dc:date>2009-01-12T22:52:22Z</dc:date>
      <clearspace:dateToText>5 months, 3 weeks ago</clearspace:dateToText>
      <wfw:comment>http://communities.vmware.com/blogs/ullbergm/comment/another-project-vmware-view-log-viewer</wfw:comment>
      <wfw:commentRss>http://communities.vmware.com/blogs/ullbergm/feeds/comments?blogPostID=2441</wfw:commentRss>
    </item>
    <item>
      <title>New development project - SVMotion</title>
      <link>http://communities.vmware.com/blogs/ullbergm/2008/11/28/new-development-project-svmotion</link>
      <description>My first VI development project never did get to a point where it is stable and with the release of the PowerShell integration and the plug-in architecture i don't think it's worth resuming.&lt;br /&gt;
&lt;br /&gt;
On to newer and better projects... &lt;img src="http://communities.vmware.com/images/emoticons/cool.gif" alt="http://communities.vmware.com/images/emoticons/cool.gif" class="jive-image"  /&gt; &lt;br /&gt;
&lt;br /&gt;
So, why write another storage vmotion plugin when there is already one by Schley Andrew Kutz that works great? &lt;br /&gt;
&lt;br /&gt;
Well, the original one has a couple of things that bug me and i also wanted a useful project to be my first plug-in. Here are a few things i did not care for in the svmotion plugin: &lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;It displays luns that you can't move the machine to.&lt;/li&gt;
&lt;li&gt;Progress bar when loading does not reflect the progress of collecting datastore information.&lt;/li&gt;
&lt;li&gt;Sorting is buggy and does not sort it the way that I want it to.&lt;/li&gt;
&lt;/ul&gt;
&lt;p /&gt;
As you can see they are not major issues, more personal preferences related to how i use SVMotion. Which by the way, 90% of my SVMotions are a single guest with all it's disks on a single LUN to another LUN, nothing fancy like moving disks to different LUNs, etc. I should also mention that the original SVMotion plugin is great and i have personally used it to move 200+ VMs, i'm not trying to take anything away from the original author, just offering an alternative.&lt;br /&gt;
&lt;p /&gt;
Ok, now that i have covered the background, here are some of the assumptions / design decisions that i made:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Start out with single machine moves, multi-machine moves can be added later and using a different form layout since it has different requirements.&lt;/li&gt;
&lt;li&gt;All the disks will be moved together, no option to move one vmdk to one LUN and another vmdk to another LUN.&lt;/li&gt;
&lt;li&gt;"fix" the things that bug me (see above)
&lt;ul&gt;
&lt;li&gt;Pull the LUNs that are attached to the host that the VM is currenly running on, this will take care of the host not being able to see the target you select.&lt;/li&gt;
&lt;li&gt;Progress bar --&amp;gt; Easy, just update it with the number of datastores that have been processed.&lt;/li&gt;
&lt;li&gt;Give each datastore a score and sort by that.
&lt;ul&gt;
&lt;li&gt;What this gives me the ability to do is to have the datastores sorted by free diskspace (after the VM is moved to that datastore) but also have any datastore with less than 20% free after the move listed at the bottom. This is to follow best practices and keep 20% free on each datastore.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Now, what did it end up looking like?&lt;br /&gt;
&lt;br /&gt;
The answer is "simple"... not much to it really. You right-click on a VM and select "Migrate Storage...", you see a progress bar that displays the datastore inventory progress and finally you are presented with a list of datastores that have enough diskspace to hold the VM you selected. &lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/download/38-16440/storagevmotion-loading.JPG" alt="http://communities.vmware.com/servlet/JiveServlet/download/38-16440/storagevmotion-loading.JPG" class="jive-image"  /&gt; &lt;img src="http://communities.vmware.com/servlet/JiveServlet/download/38-16439/storagevmotion-destination.JPG" alt="http://communities.vmware.com/servlet/JiveServlet/download/38-16439/storagevmotion-destination.JPG" class="jive-image"  /&gt; &lt;br /&gt;
&lt;p /&gt;
In contrast to my first project, this one i will actually publish... &lt;img src="http://communities.vmware.com/images/emoticons/silly.gif" alt="http://communities.vmware.com/images/emoticons/silly.gif" class="jive-image"  /&gt; &lt;br /&gt;
&lt;p /&gt;
Keep in mind that this is provided AS IS, with NO WARRANTY of any kind, use AT YOUR OWN RISK. If this destroys a VM, don't come complain to me... (tell me so that i can fix the program but don't ask me to get your VM back..)&lt;br /&gt;
&lt;p /&gt;
Sorry, no installer provided... it was developed in Visual C# 2008 Express Edition and you can't create installers with that version. To "install", simply extract to the plugin folder which may change depending on where you installed the application, on my computer the location is: &lt;b&gt;C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Plugins&lt;/b&gt;</description>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">svmotion</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">storagevmotion</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">.net</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">c#</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">infrastructure</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vi3</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vmware</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">development</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">management</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">plugin</category>
      <pubDate>Fri, 28 Nov 2008 22:19:56 GMT</pubDate>
      <author>ullbergm</author>
      <guid>http://communities.vmware.com/blogs/ullbergm/2008/11/28/new-development-project-svmotion</guid>
      <dc:date>2008-11-28T22:19:56Z</dc:date>
      <clearspace:dateToText>7 months, 1 week ago</clearspace:dateToText>
      <wfw:comment>http://communities.vmware.com/blogs/ullbergm/comment/new-development-project-svmotion</wfw:comment>
      <wfw:commentRss>http://communities.vmware.com/blogs/ullbergm/feeds/comments?blogPostID=2322</wfw:commentRss>
    </item>
    <item>
      <title>Deployment tool</title>
      <link>http://communities.vmware.com/blogs/ullbergm/2007/11/21/deployment-tool</link>
      <description>I should have known better than to post pictures of the tool I was working on before it was done...&lt;br /&gt;
&lt;br /&gt;
I have had several requests for copies of it and unfortunately it still has issues that I need to address before I would want to publish it somewhere.&lt;br /&gt;
&lt;p /&gt;
The good news is that I asked my boss and he did not see any issues with me publishing it online.</description>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">desktop</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">infrastructure</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vdi</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">sdk</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vi3</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vmware</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">development</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">c#</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">api</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">.net</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">deployment</category>
      <pubDate>Wed, 21 Nov 2007 16:02:00 GMT</pubDate>
      <author>ullbergm</author>
      <guid>http://communities.vmware.com/blogs/ullbergm/2007/11/21/deployment-tool</guid>
      <dc:date>2007-11-21T16:02:00Z</dc:date>
      <clearspace:dateToText>1 year, 7 months ago</clearspace:dateToText>
      <clearspace:replyCount>3</clearspace:replyCount>
      <wfw:comment>http://communities.vmware.com/blogs/ullbergm/comment/deployment-tool</wfw:comment>
      <wfw:commentRss>http://communities.vmware.com/blogs/ullbergm/feeds/comments?blogPostID=1250</wfw:commentRss>
    </item>
    <item>
      <title>Deployment tool update</title>
      <link>http://communities.vmware.com/blogs/ullbergm/2007/10/18/deployment-tool-update</link>
      <description>&lt;br /&gt;
I had to add a throttling feature to the application to keep from crushing the system (actually i dont know that it &lt;b&gt;would&lt;/b&gt; crush the system but just in case i added the feature). This is what the application looks like now:&lt;br /&gt;
&lt;p /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1132/deploy1.JPG" alt="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1132/deploy1.JPG" class="jive-image"  /&gt;&lt;br /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;br /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1133/deploy2.JPG" alt="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1133/deploy2.JPG" class="jive-image"  /&gt;&lt;br /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;br /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1134/deploy3.JPG" alt="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1134/deploy3.JPG" class="jive-image"  /&gt;&lt;br /&gt;
&lt;p /&gt;
&lt;p /&gt;
&lt;br /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1135/deploy4.JPG" alt="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1135/deploy4.JPG" class="jive-image"  /&gt;</description>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">.net</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">api</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">c#</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">desktop</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">development</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">infrastructure</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">sdk</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vdi</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vi3</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vmware</category>
      <pubDate>Thu, 18 Oct 2007 19:16:00 GMT</pubDate>
      <author>ullbergm</author>
      <guid>http://communities.vmware.com/blogs/ullbergm/2007/10/18/deployment-tool-update</guid>
      <dc:date>2007-10-18T19:16:00Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <wfw:comment>http://communities.vmware.com/blogs/ullbergm/comment/deployment-tool-update</wfw:comment>
      <wfw:commentRss>http://communities.vmware.com/blogs/ullbergm/feeds/comments?blogPostID=1153</wfw:commentRss>
    </item>
    <item>
      <title>Deployment tool</title>
      <link>http://communities.vmware.com/blogs/ullbergm/2007/10/17/deployment-tool</link>
      <description>Working on a new deployment tool for mass deploying workstations to support our VDI environment, here is a preview screenshot.&lt;br /&gt;
&lt;br /&gt;
&lt;img src="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1129/deploy.JPG" alt="http://communities.vmware.com/servlet/JiveServlet/downloadImage/1129/deploy.JPG" class="jive-image"  /&gt;&lt;br /&gt;
&lt;p /&gt;
Now i need to figure out a way to pull the total diskspace needed for the template (disk + swap), then the plan is to develop a smart datastore selection function. At first this would just be the datastore with the most amount of space available, easy enough. This function would be called each time that a clone job is started.&lt;br /&gt;
&lt;p /&gt;
Another thing on the list is to create a queueing system outside of VC since i dont want to kick off 10 deployments at once and drop VC to its knees.</description>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">desktop</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vdi</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vi3</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">vmware</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">infrastructure</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">development</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">sdk</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">api</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">c#</category>
      <category domain="http://communities.vmware.com/blogs/ullbergm/tags">.net</category>
      <pubDate>Wed, 17 Oct 2007 17:22:00 GMT</pubDate>
      <author>ullbergm</author>
      <guid>http://communities.vmware.com/blogs/ullbergm/2007/10/17/deployment-tool</guid>
      <dc:date>2007-10-17T17:22:00Z</dc:date>
      <clearspace:dateToText>1 year, 8 months ago</clearspace:dateToText>
      <wfw:comment>http://communities.vmware.com/blogs/ullbergm/comment/deployment-tool</wfw:comment>
      <wfw:commentRss>http://communities.vmware.com/blogs/ullbergm/feeds/comments?blogPostID=1140</wfw:commentRss>
    </item>
  </channel>
</rss>

