Blank pages in Salesforce Lighting Experience

While running through some SalesForce training (mostly on TrailHead) I suddenly found lots of pages were coming up blank.

The menus seemed to work, and switching to Classic worked, but some of the pages I needed were Lightning-specific.

Inspecting the pages turned up

DOMException: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document

Searching around on that and thinking about access/permissions issues, I found that whitelisting cookies for the SalesForce sites resolved the issue.
If you’re using Chrome, open settings and click on “Cookies and other site date” under “Privacy and security.”

Then under “Sites that can always use cookies” add
flagging them for “All cookies, on this site only”

I think a Chrome update came out that changed the default for third party site cookies which caused the problem. This resolved it for me.

Posted in Security | Leave a comment

Python meets Salesforce

I needed to do some Salesforce automation (running an existing report and then manipulating the data before send off to a different API) and, already having a CentOS/Python2-based automation VM up in Google cloud, used Python2 as a starting point.

Token Postman

First step, have the SF team create an SF account for the service “user.” They also told me they created a “connected app” but I don’t have details on that.

Suffice to say, I was give a SF password for the email address of my user account plus a Consumer Key and Consumer Secret. These are needed to generate a short-time access token used for the actual request.

Working with the SF developer I got the token request working in Postman (note this is very redacted, everything other than port URL, grant_type, token_type and issued_at are altered)

Then I had to get that working in Python which turned out to be a pain in the ass, thus this post so if I ever need to do it again I have some help.

Token Python Developer

First, I made the four components needed into environment variables so they’re not in the .py or github . Then loaded some needed modules.

import json
import os
import requests
from requests.auth import HTTPBasicAuth

Before grabbing those environment variables.

SFCLIENT_ID = os.getenv('SFclient_id')
SFCLIENT_SECRET = os.getenv('SFclient_secret')
SFUSERNAME = os.getenv('SFusername')
SFPASSWORD = os.getenv('SFpassword')

Then create the json-ish payload for the request

SFPayload = {
"grant_type" : "password",
"client_id" : settings.SFCLIENT_ID,
"client_secret" : settings.SFCLIENT_SECRET,
"username" : settings.SFUSERNAME,
"password" : settings.SFPASSWORD

Set the URL and make the call

SFTokenURL = ""
response =, SFPayload)

Run the report and no token jokes.

Grab the returned access token

SFToken = response.json()['access_token']

And the instance URL, which is where the report will be run from, which I use to create my report request string.

SFReportURL = response.json()['instance_url'] + "/services/data/v46.0/analytics/reports/<reportID>?includeDetails=true"

The includeDetails=true is needed if you want all the rows and not just the summary. My initial run was stymied as the report was saved last year, and the dates are set when its manually run. I saved a copy of it with a date of “last 7 days” and voila, now its always current. The Report ID (the <reportID> above) just look in the URL when you are looking at the end of the URL when you open the report in SalesForce.

Make a header with the token.

headers = {'Authorization': 'Bearer ' + SFToken}

Send the header with the URL

response = requests.get(SFReportURL, headers=headers, verify=False)

The returned JSON is the report you ran.

SFReport = response.json()

The data is contained in the rows section of the JSON.

rows = SFReport['factMap']['0!T']['rows']

Sanitized pic of the report. Many of the “values” contained the same unique user ID while the “label” contained the data I needed:

Token Unicode

Bonus, one of the fields contains unicode data.

Grabbing it out of the report row (using for rowloop in rows):

UserFirst = (rowloop['dataCells'][2]['label'])

Preparing to send it on to the next API:

payload = {
"issued_to_first_name": UserFirst.encode('utf-8'),

Again, Python2 so YMMV.

Posted in API, Python, Scripting | Leave a comment

Learn from home

<This was written in the time of the virus, so some resources are likely to be short-lived>

I’ve seen lots of links to free training, I’l trying to keep a running list. I’m focusing on formal stuff, especially stuff that normally costs.

Free PluralSight for April 2020 (programming and other tech)

And Codecademy is free for students right now

Udacity has a free month available

Know anyone that went to Purdue? Free online classes for alumni and benefits for friends.

Free Coursera Courses

Other Online training:

Learn anywhere with online training from Nutanix University

edX is always free

SalesForce Trailhead is always free

VMware Basic Learning Zone is free

And of course VMware Hands On Labs

Did you know GitHub had free training?

And there’s a free Python Course

AWS Training

GCP Training

Microsoft Training incl Powershell and Azure


Fender has 3 Free Months of lessons if you sign up before 4/20/20 (think that was deliberate?)

‘course JustinGuitar is always free

Scholastic has a 20-day free Learn at Home program

Free online College classes

Alison has free classes, or pay to upgrade to no-ads

Posted in Computing, Virtualization, VMware | 2 Comments

Upgrading to 6.7: A problem occurred

Ran into an issue while updating one of my 6.5 vCenter servers, where it inexplicably reported:

A problem occurred while getting data from the source vCenter Server.

A quick peek at the installer log showed :

2019-11-23T21:32:47.402Z - info: Stream :: close
2019-11-23T21:32:47.402Z - info: Password not expired
2019-11-23T21:32:47.402Z - error: sourcePrecheck: error in getting source Info: ServerFaultCode: Failed to authenticate with the guest operating system using the supplied credentials.
2019-11-23T21:32:55.877Z - info: Log file was saved at: C:\installer-20191123-163017412.log

Which was interesting as I had to think about what guest OS the installer might need to log into. The I recalled some other issues I’ve had logging into vCenter – the root password likes to expire after a year.

Part of the fun – you can log into the console using root with no issues. it won’t report there is a problem unless you ask.

The chage -l root command will tell you the time since the last password change. And passwd of course will let you update your password.

While passwd complains about simple password, it will take a out anything. Here I reused the one that just expired.

Posted in CLI, Virtualization, VMware | Leave a comment

VCAP Exam links

As referred to in my VMUG talk “Taking and Passing VMware Advanced Certifications”

Let me know if you find any other good links or if any of these quit working.

Join the conversation in the VCP group on LinkedIn

Covering both Design and Deploy Exams
The Saffa Geek

Just Deploy Exams
My 6.5 Deploy experience

My blog links and simulator pages

Ricardo Conzatti ‘s Simulator

Graham Barker’s Simulator

vjenner’s Study Guide

@RamyMahmoud’s VCAP-Deploy study guide

Just Design exams
Grierson’s pack

Vcallaway Unofficial VCAP6-DCV Design Study Guide

#vbrownbag Youtube playlist

vthing list of links


gavoncloud’s VCAP7 CMA Design experience VCAP6.5-DCV Design Exam Experience

Daniel Paluszek’s 6.5 DCV Design with good links


VMware Enterprise Administration Exam Blueprint v3.5

Posted in Certification, Virtualization, VMware | Tagged , , , , , , , , , | Leave a comment

vRealize Network Insight with E/W or N/S

tl/dr: RFC1918 (private) addresses are categorized as E/W by VRNI by default, non-RFC1918 (public) addresses are categorized as N/S by default. You can flag private as N/S or public as E/W to ensure the reports reflect your environment.

Looking over the vRNI docs I ran into an interesting description.  Note these statements

There seems to be confusion and contradictions there. I would rewrite this as:

Defined by the IETF as private IP addresses, RFC1918 sets aside the networks, and for private or non-Internet use.

East-West IPs
VRNI classifies any IP address range addressed by the RFC1918 standard as East-West, which is traffic that is “internal” to your data center.  If you have addresses or networks outside of the RFC1918 range you would like classified as East/West, you can add those IPs to the East/West range.  This can be used for stretched clusters, hybrid clouds or any scenario where part of your data center is accessed by a public IP address.

North-South IPs
VRNI classifies any IP addresses not covered by the RFC1918 standard as North-South, which is traffic to or from a source “outside” of your data center.  If you have addresses or networks in the private address space you would like classified as North/South you can add those networks to the North/South range.  This is useful for environments were you have remote users or remote data centers accessed by private IP ranges but you want the traffic classified as North/South in your VRNI reports.


Posted in Network, NSX, Virtualization, VMware | Tagged , , | Leave a comment

Linksys wireless router Unexpected Error 2197

While trying to setup a new Linksys WRT3200 ACM router over the weekend I ran into a “Unexpected Error 2197” message while changing the router’s IP address.

I was looking to replace an existing router that was internally instead of the the Linksys router defaults to.

This popped up after I disabled DHCP and then changed the IP for the router and clicked Apply or OK.

After beating my head against a wall, I re-enabled DHCP, which let me edit it’s fields.

Changing the DHCP field to, then changing the IP address of the appliance worked just fine.

Apparently there is a check in place to ensure the internal IP address of the router is on the same subnet as the DHCP range – even if DHCP is disabled.  Go Figure.



Posted in Network | Tagged , , | 1 Comment

VCAP DCV 6.5 Deploy a.k.a VMware Certified Advanced Professional — Data Center Virtualization Deploy 2018 a.k.a 3V0-21.18

<Edi 2t> PASS! After almost 10 weeks of waiting I finally got my score back.</Edit 2>

<Edit> Apparently I was the first to publicly take the exam! Hope the tips help out future candidates! Drop me a line if you have questions. I’ll be updating the Study Exam linked below for 6.5 in the coming weeks. </Edit>

A few days ago VMware certification announced the updated (6.5) VCAP-DCV Deploy exam, officially named VMware Certified Advanced Professional — Data Center Virtualization Deploy 2018 with an exam code of 3V0-21.18.

Note the exam title includes “2018” for the year you achieved the cert but not the version you’ve tested on.  We’ll have to see how that plays out in the future.  In 2019 will there be “2019” certs on multiple versions?

Certification page at

Exam page

PDF of Exam Prep Guide fro VMware

This is a hands-on live-lab environment that has to be taken at a Pearson site.  $450, 205 minutes (plus 30min if your home address with your certification account is in a non-English country).

17 Questions (in theory, but some are multiple part.  I’d say there is the equivalent of 21 questions)

300-out-of-500 needed to pass

Interestingly the Exam Prep Guide has 25 sections but contains the comment:

(Not all sections will be tested on the exam)

Which is a first as far as I know for VMware exams.

The exam is aimed at those who manage and maintain Enterprise-class vSphere 6.5 with all the bells and whistles (vSAN I’m looking at you).  Just like the Hand On Labs environment, you are presented with a Windows desktop to run the exam from and a “manual” with the questions on separate pages.   If you want a first-hand look at a similar set up try my VCAP-DCV exam guide.

The goal is to read the questions and achieve the desired state of each question in the environment before time runs out.  In 4-6 weeks (per the exam guide) you will receive your score in an email.

In the environment you have access to lots of PDF documentation, but not the PowerCLI guide or hardening guide and the time of this post.  Also, no Adobe or other standalone PDF reader (just Chrome) so no searching all the PDFs at once.

No online docs, no

The environment has 7 hosts, 3 vCenters and 2 PSC controllers, don’t be surprised if you don’t access even half of the objects (incl VMs) that you see in the environment. All vCenters are linked so make sure you are working on the right object at all times.

You have access to all of the consoles – but function keys don’t work so you can’t log into the hosts via DCUI.

Still limited to 1280×800 max resolution, but you should only need the one desktop.

Most key strokes work incl backspace, ctrl-c/v/x but no Function keys.

Issues (at the time of this post):
Table of contents doesn’t work
Grammar errors
Some items had conflicting or wrong requirements
Little organization, questions are not structured the same and info is scattered around.
Doesn’t always give the info you need to find objects so either look around or use search.
Often doesn’t include all the info to complete tasks, so I guess pick the defaults or your best judgement.


Take your time, you have lots of it.  I would skip any you need to read up on and save those for last.  There is plenty of time to learn what you need from the PDFs, but get done all you can w/o reading first.

Use the maximize button, make sure you are at the highest resolution on the desktop.

Scale down Chrome so you can see all of the options.

I maximize the console and hide/pull out the manual when needed.

Drag and drop from the manual works great, but watch for goofy spaces occasionally and try not to copy a bunch of text (happened to me twice) which can’t be stopped and you won’t be able to access the console until the text is copied.

Read carefully.  There are often gray boxes with requirements/info but key requirements are also scattered throughout the question.

Make sure you are on the right component.  If something isn’t available make sure you are looking at the right vCenter.  vcsa01a, vcsa02a, vcsa03a all look pretty similar at a glance and are not always in alphabetical order in the GUI.

If you get a strange/unexpected error or something is missing make sure you are looking at the right object.  If you are, log out and back in or close browser and try again before a deep-dive troubleshoot.

You might read ahead and do questions out of order.  I found at least one pair of items that worked better out of order.

Take notes as you go especially if you skip an item.

Make sure you are familiar with the 6.5 PDFs and what is where.

Study the official exam guide for what is on the test but be prepared to be tested on only a small portion of the exam guide.

Study all of the VCAP Deploy 6.0 study guides and be familiar with what’s new in 6.5

Posted in Certification, Computing, Virtualization, VMware | Tagged , , , , , | 38 Comments

VMWorld 2018: Tuesday

The keynote was nice as a client was on stage talking about the success of an implementation I helped with.  Cool stuff.

Then Sanjay talked to Malala Yousafzai which was pretty amazing.  Makes me wish I brought my daughters to VMworld.

VMware has been doing different things for a while now to get the community involved and make a difference in the world outside of IT, but this was by far the most impactful I think.

Spent time after tracking down the new VMware VCAP DCV 6.5 Deploy exam and managed to get scheduled for tomorrow morning.  Met up with some good folks and had more good talks in the Solutions Exchange.

The look on the Illumio guy’s face when I summarized his product as “guest firewall management” was pretty good.


Advanced NSX Data Center: Demystifying the VTEP, MAC, and ARP Tables [NET1106BU]

John Krueger, Principal Instructor, VMware NSX, VMware
Tim Burkard, Senior Technical Trainer, VMware

Pulled straight from “Troubleshooting NSX” this was 60 min of control plane how-does-this-work and some packet walking. BUMs will never be the same.


Architecting PKS for Production: Lessons Learned from PKS Deployments [CNA2755BU]

Romain Decker, Senior Solutions Architect, VMware
Suman Sharma, Sr. Staff Solutions Architect, VMware

PKS overview plus PKS and NSX-T deployment architectures.

Make sure you set up the IP pools correctly as that can limit scalability.


Now off to find the vExpert party!

Posted in API, Certification, Network, NSX, Virtualization, VMware | Tagged , , | Leave a comment

VMWorld 2018: Monday

Today kicked off with the main keynote featuring Pat Gelsinger.  There were several new announcements including:

Amazon RDS database service will now run on your local VMware servers
VMware ESXi now fully supports ARM processors
VSAN now supports S3 storage

I don’t have a lot of info or any experience with this yet, but the day is young.

Met some interesting vendors incl Faction (DR w/ low cost storage standing up VMC on AWS), Morpheus (vRealize Automation competitor with claimed better plugins/compatability), Caveonix with a cool new security/standards products, and AT&T security.

Hit two sessions today:


Hybrid cloud architecture design and best practices for VMware Cloud on AWS

Aarthi Raju, Partner Solutions Architect, Amazon Web Services
wen yu, Partner Solutions Architect, AWS

A run through of migrating workloads like Oracle to AWS.

discussed tools like RMAN and Veeam backing up to S3 then restoring into an SDDC

briefly discussed the annoucement today that AWS direct connect won’t require VPN connectivity to stretch L2.




A Practitioner’s Guide to Migrating Workloads to VMware Cloud on AWS

Discussed the tools to play a migration incl Cost Insight and Network Insight

Demo’d HCX (Live!)

More note later, time to find the Rubrik party!!

Edit: Found the Rubrik party.  Run-DMC was great, The Roots are incredible live!


Posted in CLI, Cloud, Computing, Disaster Recovery, Security, Storage, Virtualization, VMware | Tagged , , , | Leave a comment