Skip to content

SSO samples are failing with 6.0 vCenter server. com.vmware.vapi.vcen… #22

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 5, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 23 additions & 5 deletions samples/vsphere/sso/embedded_psc_sso_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
* NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.
"""


__author__ = 'VMware, Inc.'
__copyright__ = 'Copyright 2017 VMware, Inc. All rights reserved.'
__vcenter_version__ = '6.0+'
Expand All @@ -22,11 +21,11 @@
import requests

from com.vmware.cis_client import Session
from com.vmware.vcenter_client import Datacenter
from vmware.vapi.lib.connect import get_requests_connector
from vmware.vapi.security.session import create_session_security_context
from vmware.vapi.security.sso import create_saml_bearer_security_context
from vmware.vapi.stdlib.client.factories import StubConfigurationFactory
from com.vmware.cis.tagging_client import (Category, CategoryModel)

from samples.vsphere.common.ssl_helper import get_unverified_context
from samples.vsphere.common.vapiconnect import create_unverified_session
Expand All @@ -47,6 +46,8 @@ def __init__(self):
self.session = None
self.session_id = None
self.skip_verification = False
self.category_svc = None
self.category_id = None

def setup(self):
self.server, self.username, self.password, _, self.skip_verification = \
Expand Down Expand Up @@ -100,14 +101,31 @@ def run(self):
session_sec_ctx = create_session_security_context(self.session_id)
connector.set_security_context(session_sec_ctx)

print('\nStep 3: List available datacenters using the vAPI services')
# Create and Delete TagCategory to Verify connection is successful
print('\nStep 3: Creating and Deleting Tag Category...\n')
self.category_svc = Category(stub_config)

self.category_id = self.create_tag_category('TestTagCat', 'TestTagDesc',
CategoryModel.Cardinality.MULTIPLE)
assert self.category_id is not None
print('Tag category created; Id: {0}\n'.format(self.category_id))

datacenter_svc = Datacenter(stub_config)
pprint(datacenter_svc.list())
# Delete TagCategory
self.category_svc.delete(self.category_id)

self.session.delete()
print('VAPI session disconnected successfully...')

def create_tag_category(self, name, description, cardinality):
"""create a category. User who invokes this needs create category privilege."""
create_spec = self.category_svc.CreateSpec()
create_spec.name = name
create_spec.description = description
create_spec.cardinality = cardinality
associableTypes = set()
create_spec.associable_types = associableTypes
return self.category_svc.create(create_spec)


def main():
embedded_psc_sso_workflow = EmbeddedPscSsoWorkflow()
Expand Down
30 changes: 26 additions & 4 deletions samples/vsphere/sso/external_psc_sso_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@
from six.moves.urllib import request, parse

from com.vmware.cis_client import Session
from com.vmware.vcenter_client import Datacenter

from vmware.vapi.lib.connect import get_requests_connector
from vmware.vapi.security.session import create_session_security_context
from vmware.vapi.security.sso import create_saml_bearer_security_context
from vmware.vapi.stdlib.client.factories import StubConfigurationFactory
from com.vmware.cis.tagging_client import (Category, CategoryModel)

from samples.vsphere.common import sso
from samples.vsphere.common.lookup_service_helper import LookupServiceHelper
Expand All @@ -56,6 +56,8 @@ def __init__(self):
self.argparser = None
self.mgmtinstancename = None
self.skip_verification = False
self.category_svc = None
self.category_id = None

def options(self):
self.argparser = argparse.ArgumentParser(description=self.__doc__)
Expand Down Expand Up @@ -170,10 +172,30 @@ def run(self):
session_sec_ctx = create_session_security_context(self.session_id)
connector.set_security_context(session_sec_ctx)

print('\nStep 6: List available datacenters using the vAPI service')
# Create and Delete TagCategory to Verify connection is successful
print('\nStep 6: Creating and Deleting Tag Category...\n')
self.category_svc = Category(stub_config)

datacenter_svc = Datacenter(stub_config)
pprint(datacenter_svc.list())
self.category_id = self.create_tag_category('TestTagCat', 'TestTagDesc',
CategoryModel.Cardinality.MULTIPLE)
assert self.category_id is not None
print('Tag category created; Id: {0}\n'.format(self.category_id))

# Delete TagCategory
self.category_svc.delete(self.category_id)

self.session.delete()
print('VAPI session disconnected successfully...')

def create_tag_category(self, name, description, cardinality):
"""create a category. User who invokes this needs create category privilege."""
create_spec = self.category_svc.CreateSpec()
create_spec.name = name
create_spec.description = description
create_spec.cardinality = cardinality
associableTypes = set()
create_spec.associable_types = associableTypes
return self.category_svc.create(create_spec)

self.session.delete()
print('VAPI session disconnected successfully...')
Expand Down