Adding custom resolution values to MantisBT

Recently, one of our MantisBT users asked us for a custom resolution value. The MantisBT admin guide . In the last paragraph of the suggests this is possible, but doesn’t tell you how. The closest we get is a description on implementing custom status values, plus some questionable google results that require some interpretation. I’ve done the interpretation for you, so you don’t have to. There are two existing variables in the MantisBT code that define the default status values, $g_resolution_enum_string and $s_resolution_enum_string. I’ve shortened the output to just the lines we care about:

[rnelson0@mantis ~]$ grep -R resolution_enum_string /srv/www/mantis/config_defaults_inc.php /srv/www/mantis/lang/*english*
/srv/www/mantis/config_defaults_inc.php:        $g_resolution_enum_string                       = '10:open,20:fixed,30:reopened,40:unable to duplicate,50:not fixable,60:duplicate,70:not a bug,80:suspended,90:wont fix';
/srv/www/mantis/lang/strings_english.txt:$s_resolution_enum_string = '10:open,20:fixed,30:reopened,40:unable to reproduce,50:not fixable,60:duplicate,70:no change required,80:suspended,90:won\'t fix';

You may notice a slight difference – the global var says “unable to duplicate” and the other var says “unable to reproduce”. Without any modifications, “unable to reproduce” is seen by users so we’ll take the value of $s_resolution_enum_string and use it for both.

Continue reading

Creating VMs and Templates folders with PowerCLI

As part of a migration from one vCenter to another, I wanted to recreate the same VMs and Templates look which meant recreating the folders. This is VERY slow in the vSphere Web Client and only slightly less tedious in the C# client, so I thought I’d use PowerCLI to do the trick. Here is the folder structure I wished to recreate:

Location
-Development
-Pending DeComm
-Production
  -Active Directory Domain Controllers
  -Linux Servers
  -RDP Servers
-Templates
  -Template VMs

PowerCLI has a cmdlet called New-Folder. Unfortunately, it only creates folders of the Hosts and Clusters type. To create a new VMs and Templates folder, we have to use the Get-View cmdlet. By viewing a datacenter or folder and filtering on the proper location, we can call methods to create a folder with the right context:

Continue reading

PowerCLI One-Liner – Mark all VM optical drives as Client

I’ve seen a number of articles offering PowerCLI one-liners to find all VMs with connected optical drives, or set to use a datastore, or a number of other possibilities, and mark the drives as disconnected. This is helpful, but may still cause a problem with vMotions if the optical drive is pointing to a non-shared datastore ISO. vMotion does not care if the optical drive is connected, but it does care that it’s pointing to a datastore that not all hosts can see. This one-liner will find all VMs with an ISOPath set for the optical drive and reset it to Client.

Get-VM | Get-CDDrive | Where {$_.ISOPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$false

This looks for all CDDrive objects where the ISOPath value is not null and calls Set-CDDrive with the flag -NoMedia. This should take care of all the VMs where someone has set it to use an ISO on the datastore. It will NOT fix the mapping for VMs connected to the Host Device or Client Device – however, those are more rare and do not usually stand between you and a vMotion. On those rare instances, you may still need to manually dismount the optical drive on the VM or use a PowerCLI one-liner targeting those settings.

Welcome to my Blog!

Welcome, one and all!

My name is Rob Nelson, and I am starting a new blog focusing on infrastructure, virtualization, automation, and security, and the intersection of these four realms. I have been working in IT for over 15 years, starting out building white box computers after high school and currently working at a managed security services provider as a sysadmin and network, security, and infrastructure engineer. The last five years have had a strong focus on building out a VMware-based virtualization platform, automating it, and providing services to our customers securely.

I’ll be passing on lessons learned, many from the school of hard knocks, in the hopes that they help you with your job and avoid some of the pain I encountered in the learning process. I hope you’ll find the posts entertaining as well! Let me know what you think in each article’s comments, or you can find me on twitter.

Enjoy!