Skip to content

Instantly share code, notes, and snippets.

View smitmartijn's full-sized avatar

Martijn Smit smitmartijn

View GitHub Profile
# Edit this
$NSXT_Manager = "your-nsxt-manager-hostname-or-ip"
$NSXT_Username = "admin"
$NSXT_Password = 'mypassword'
# Stop editing
function Invoke-NSXTRestMethod
{
param (
[Parameter (Mandatory=$true)]
import init_api_client
import swagger_client
from swagger_client.rest import ApiException
# Initialize SDK and parse the args for connection details
args = init_api_client.parse_arguments()
api_client = init_api_client.get_api_client(args)
# Create search API client object
search_api = swagger_client.SearchApi()
import swagger_client
from swagger_client.rest import ApiException
api_client = swagger_client.ApiClient(host="https://{}/api/ni".format("my-vrni-platform-fdqn-or-ip"))
user_creds = swagger_client.UserCredential(username="admin@local", password="VMware1!", domain=dict(domain_type="LOCAL"))
auth_api = swagger_client.AuthenticationApi(api_client=api_client)
auth_token = auth_api.create(user_creds)
print(auth_token)
// IMPORTANT: This needs to be your vRA host. In my case it happened to the third server configured.
// there is probably a better way to handle this.
var vraHost = Server.findAllForType("vCACCAFE:VCACHost")[3];
// save the catalogRequestId from the payload given by vRA
var requestId = payload.get("catalogRequestId");
// create a REST client on the selected vRA host, which we can use to do API calls against
var client = vraHost.createCatalogClient();
// get the resources (read: VMs) that are a part of the catalogRequestId
@smitmartijn
smitmartijn / nsx-get-edge-routes.ps1
Created June 14, 2018 10:49
Get all routes on all NSX Edges via PowerNSX
# This snippet gets all the IP routes
#
# Import-Module PowerNSX and run
# Connect-NsxServer before running this.
$edges = Get-NsxEdge
foreach($edge in $edges)
{
Write-Host "Getting routes for Edge $($edge.name) ($($edge.id))"
function New-NsxMulticastRange
{
<#
.SYNOPSIS
Adds a new multicast IP address range for use in the VXLAN network
.DESCRIPTION
Specifying a multicast address range helps in spreading traffic across your
network to avoid overloading a single multicast address.A virtualized
network‐ready host is assigned an IP address from this range.
param (
[parameter(Mandatory=$true,ValueFromPipeLine=$true,ValueFromPipeLineByPropertyName=$true)]
[ValidateNotNullOrEmpty()]
[string]$username,
[parameter(Mandatory=$true,ValueFromPipeLine=$true,ValueFromPipeLineByPropertyName=$true)]
[ValidateNotNullOrEmpty()]
[string]$password,
[parameter(Mandatory=$true,ValueFromPipeLine=$true,ValueFromPipeLineByPropertyName=$true)]
[ValidateNotNullOrEmpty()]
[string]$apic,
# This is where we save the cookies!
$global:CookieJar = New-Object System.Net.CookieContainer
$global:LoggedIn = $False
$global:LoggingIn = $False
function ACI-API-Call([string]$method, [string]$encoding, [string]$url, $headers, [string]$postData)
{
$return_value = New-Object PsObject -Property @{httpCode = ""; httpResponse = ""}
## Create the request
"/2.0/vdn/config/segments": {
"get": {
"description": "Lists all Segment ID Pools",
"tags": [
"2.0"
],
"operationId": "Get_vdnSegmentPoolList_",
"produces": [
"application/json"
],
#!/usr/bin/perl
# Check Gluster volume status and number of present bricks
#
# Requires edits to /etc/sudoers:
# Defaults:epops !requiretty
# epops ALL=NOPASSWD: /usr/sbin/gluster volume info*
use strict;
use Getopt::Long qw(GetOptions);