1
0
mirror of https://github.com/vmware/vsphere-automation-sdk-python.git synced 2024-11-22 01:39:58 -05:00

Merge pull request #22 from pgbidkar/master

SSO samples are failing with 6.0 vCenter server. com.vmware.vapi.vcen…
This commit is contained in:
Tianhao He 2017-05-05 08:10:55 -07:00 committed by GitHub
commit 8fd515441d
2 changed files with 49 additions and 9 deletions

View File

@ -13,7 +13,6 @@
* NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE. * NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.
""" """
__author__ = 'VMware, Inc.' __author__ = 'VMware, Inc.'
__copyright__ = 'Copyright 2017 VMware, Inc. All rights reserved.' __copyright__ = 'Copyright 2017 VMware, Inc. All rights reserved.'
__vcenter_version__ = '6.0+' __vcenter_version__ = '6.0+'
@ -22,11 +21,11 @@ from pprint import pprint
import requests import requests
from com.vmware.cis_client import Session 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.lib.connect import get_requests_connector
from vmware.vapi.security.session import create_session_security_context from vmware.vapi.security.session import create_session_security_context
from vmware.vapi.security.sso import create_saml_bearer_security_context from vmware.vapi.security.sso import create_saml_bearer_security_context
from vmware.vapi.stdlib.client.factories import StubConfigurationFactory 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.ssl_helper import get_unverified_context
from samples.vsphere.common.vapiconnect import create_unverified_session from samples.vsphere.common.vapiconnect import create_unverified_session
@ -47,6 +46,8 @@ class EmbeddedPscSsoWorkflow(object):
self.session = None self.session = None
self.session_id = None self.session_id = None
self.skip_verification = False self.skip_verification = False
self.category_svc = None
self.category_id = None
def setup(self): def setup(self):
self.server, self.username, self.password, _, self.skip_verification = \ self.server, self.username, self.password, _, self.skip_verification = \
@ -100,14 +101,31 @@ class EmbeddedPscSsoWorkflow(object):
session_sec_ctx = create_session_security_context(self.session_id) session_sec_ctx = create_session_security_context(self.session_id)
connector.set_security_context(session_sec_ctx) 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)
datacenter_svc = Datacenter(stub_config) self.category_id = self.create_tag_category('TestTagCat', 'TestTagDesc',
pprint(datacenter_svc.list()) 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() self.session.delete()
print('VAPI session disconnected successfully...') 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(): def main():
embedded_psc_sso_workflow = EmbeddedPscSsoWorkflow() embedded_psc_sso_workflow = EmbeddedPscSsoWorkflow()

View File

@ -25,12 +25,12 @@ from pprint import pprint
from six.moves.urllib import request, parse from six.moves.urllib import request, parse
from com.vmware.cis_client import Session 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.lib.connect import get_requests_connector
from vmware.vapi.security.session import create_session_security_context from vmware.vapi.security.session import create_session_security_context
from vmware.vapi.security.sso import create_saml_bearer_security_context from vmware.vapi.security.sso import create_saml_bearer_security_context
from vmware.vapi.stdlib.client.factories import StubConfigurationFactory 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 import sso
from samples.vsphere.common.lookup_service_helper import LookupServiceHelper from samples.vsphere.common.lookup_service_helper import LookupServiceHelper
@ -56,6 +56,8 @@ class ExternalPscSsoWorkflow(object):
self.argparser = None self.argparser = None
self.mgmtinstancename = None self.mgmtinstancename = None
self.skip_verification = False self.skip_verification = False
self.category_svc = None
self.category_id = None
def options(self): def options(self):
self.argparser = argparse.ArgumentParser(description=self.__doc__) self.argparser = argparse.ArgumentParser(description=self.__doc__)
@ -170,10 +172,30 @@ class ExternalPscSsoWorkflow(object):
session_sec_ctx = create_session_security_context(self.session_id) session_sec_ctx = create_session_security_context(self.session_id)
connector.set_security_context(session_sec_ctx) 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) self.category_id = self.create_tag_category('TestTagCat', 'TestTagDesc',
pprint(datacenter_svc.list()) 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() self.session.delete()
print('VAPI session disconnected successfully...') print('VAPI session disconnected successfully...')