Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from pyVim import connect
- from pyVmomi import vim
- import ssl
- import requests
- import atexit
- class VMwareCluster(object):
- def __init__(self, module):
- self.module = module
- self.cluster_name = module['cluster_name']
- self.datacenter = None
- self.cluster = None
- # global content
- self.content = connect_to_api(module)
- self.datacenter_name = module['datacenter_name']
- # content = connect_to_api(module)
- def check_cluster_configuration(self):
- self.datacenter = find_datacenter_by_name(self.content, self.datacenter_name)
- if self.datacenter is None:
- print("Datacenter %s does not exist, "
- "please create first with Ansible Module vmware_datacenter or manually."
- % self.datacenter_name)
- self.cluster = find_cluster_by_name_datacenter(self.datacenter, self.cluster_name)
- print(self.cluster)
- def main():
- module = {
- "hostname":"<IP>",
- "username": "<USER>",
- "password": "<PASSWORD>",
- "validate_certs":True,
- "datacenter_name": "<DC_NAME>",
- "cluster_name": "<CLUSTER_NAME>",
- }
- bob = VMwareCluster(module)
- bob.check_cluster_configuration()
- print('ComputeResource.ConfigInfo')
- print(vim.ComputeResource.ConfigInfo())
- print('\n')
- print('####################')
- print('ConfigInfo')
- print(vim.cluster.ConfigInfo())
- print('\n')
- print('####################')
- print('DasConfigInfo')
- print(vim.cluster.DasConfigInfo())
- print('####################')
- print('\n')
- print('ConfigSpec')
- print(vim.cluster.ConfigSpec())
- print('####################')
- print('\n')
- print(vim.cluster.DasVmConfigSpec())
- def connect_to_api(module):
- hostname = module['hostname']
- username = module['username']
- password = module['password']
- validate_certs = module['validate_certs']
- context = ssl.SSLContext(ssl.PROTOCOL_SSLv23)
- context.verify_mode = ssl.CERT_NONE
- service_instance = connect.SmartConnect(host=hostname, user=username, pwd=password, sslContext=context)
- # service_instance = connect.SmartConnect(host=hostname, user=username, pwd=password)
- return service_instance.RetrieveContent()
- def find_datacenter_by_name(content, datacenter_name):
- datacenters = get_all_objs(content, [vim.Datacenter])
- for dc in datacenters:
- if dc.name == datacenter_name:
- return dc
- return None
- def find_cluster_by_name_datacenter(datacenter, cluster_name):
- host_folder = datacenter.hostFolder
- for folder in host_folder.childEntity:
- if folder.name == cluster_name:
- return folder
- return None
- def get_all_objs(content, vimtype, folder=None, recurse=True):
- if not folder:
- folder = content.rootFolder
- obj = {}
- container = content.viewManager.CreateContainerView(folder, vimtype, recurse)
- for managed_object_ref in container.view:
- obj.update({managed_object_ref: managed_object_ref.name})
- return obj
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement