Validating Connection Result of Connect-VIServer

Validating connection result of Connect-VIServer is trick since VMware doesn’t use the standard way of throwing errors.

There are different error messages for different scenarios. We can leverage “Try Catch Finally” of PowerShell to testing connection result and output customized errors.

The essential format of testing vCenter connection is below. PowerShell cannot catch error message if you don’t add “-ErrorAction Stop” when connect vCenter.

try{
    connect-viserver vcenter-xxxx -ErrorAction Stop
}
catch [VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin]{
    Write-Host "Permission issue"
}
catch [VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViServerConnectionException]{
    Write-Host "Cannot connect to vCenter Server"
}
catch
    {Write-Host "Other issue"}
finally{
    write-host "the end."
}

How to know error types of the validating connection result?

You probably have question how did I know which error types are for what? I used a very simple way that just give it a try. 🙂

# Simulating connection error
Connect-VIServer vCenter.zhengwu.org -User "xxx" -Password "yyy"

# Format output of $Error. $Error stores output of errors in PowerShell.
$error[0] | fl * -force

# You will see similar lines below
writeErrorStream      : True
PSMessageDetails      :
Exception             : VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin: 7/29/2019 9:27:30 AM   Connect-VIServer                Cannot complete login due to an
                        incorrect user name or password.         ---> VMware.Vim.VimException: Cannot complete login due to an incorrect user name or password. --->
                        System.ServiceModel.FaultException`1[VimApi_67.InvalidLogin]: Cannot complete login due to an incorrect user name or password.

VMware.VimAutomation.ViCore.Types.V1.ErrorHandling.InvalidLogin is the error type we want to find.

Conclusion

This is very simple way to validating connection result of Connect-VIServer. Looks like the result errors coming from different assemblies. For example, connection error is VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViServerConnectionException. It’s hard to find out all possible errors. I’m looking for a official document but no lucky. Please let me know if you know where I can reference.

Bitbucket Server Integration With Visual Studio Code on Windows

There is an official Bitbucket extension for Visual Studio Code if you use Bitbucket Cloud. Bitbucket has not yet released official extension for Bitbucket Server users. Following is how to configure Visual Studio Code to use Bitbucket Server.

Before the procedure you need to collect the following information:

  • Your user name on Bitbucket Server.
  • Your email on Bitbucket Server.
  • Decide the local path to store code. (It’s c:\temp\git\ in this guide)
  • Your account has permission to modify repositories on Bitbucket Server.
  • Assume project name is “ExampleProject” on Bitbucket Server.
  • Assume repository name in the project is “ExampleRepository“.
  • Get the URL of the target repository. (It’s https://userid@bb.zhengwu.org/scm/exampleproject/examplerepository.git in this guide)
  • Make sure you have the latest Visual Studio Code installed.

Time needed: 30 minutes.

  1. Download and install Git.

    Download windows installer in Github.
    Installation is simple. Only thing is to make sure to choose “Visual Studio Code” when it asks editor integration.

  2. Configure user name and email in Git.

    Name and email should match your account information on Bitbucket server.
    Run the commands in Windows command prompt.
    $ git config --global user.name "Name"
    $ git config --global user.email "sample@zhengwu.org"

  3. Clone repository to local.

    Open a command prompt. Go to a folder you want to clone the remote “ExampleRepositiry” to. Run command:
    git clone https://userid@bb.zhengwu.org/scm/exampleproject/examplerepository.git
    You will see a sub-folder with the name “ExampleRepository” is created in local.
    A hidden folder “.git” is created in the sub-folder. It’s used to tracking changes.

  4. Open workspace in Visual Studio Code

    Bitbucket Server configuration is completed in local.
    Now open Visual Studio Code -> File -> Add folder to workspace -> Open “ExampleRepository” folder.
    Visual Studio Code is integrated with Git in-the-box. It detects the repository automatically.
    It shows “Unrack” if you create a new file in the folder.

Conclusion

This is an expressway to integrate Bitbucket Server with Visual Studio Code. I’m still new on Git. Following are some useful information.

https://www.atlassian.com/git/tutorials/install-git?section=windows

https://www.atlassian.com/git?utm_campaign=learn-git&utm_medium=in-app-help&utm_source=stash