def main():
    module = AnsibleModule(
        argument_spec=dict(host=dict(requred=True),
                           login=dict(required=True),
                           password=dict(required=True),
                           folder_name=dict(required=True),
                           parent_folder_name=dict(required=True),
                           datacenter_name=dict(required=True)))

    host = module.params.get('host')
    login = module.params.get('login')
    password = module.params.get('password')
    folder_name = module.params.get('folder_name')
    parent_folder_name = module.params.get('parent_folder_name')
    datacenter_name = module.params.get('datacenter_name')

    default_context = ssl._create_default_https_context
    ssl._create_default_https_context = ssl._create_unverified_context

    server = pysphere.VIServer()

    try:
        server.connect(host, login, password)
    except Exception, e:
        module.fail_json(msg='Failed to connect to %s: %s' % (host, e))
Ejemplo n.º 2
0
def vcenter_connect(server_fqdn, server_username, server_password):
    vserver = pysphere.VIServer()
    try:
        vserver.connect(server_fqdn, server_username, server_password)
    except Exception as error:
        print(('Could not connect to vCenter: %s') % (error))
    return vserver
Ejemplo n.º 3
0
 def __init__(self, Host, User, Password, **Options):
     super(VmWareDriver, self).__init__(Host, User, Password, **Options)
     self.ServerLog = Options['TmpLog'] if 'TmpLog' in Options else None
     import pysphere as VmWare
     self.Server = VmWare.VIServer()
     self.VmRec = {}
     #print "Debug - Finish to Init VmWareDriver ..."
     #print VmWare.MORTypes
     self.Enum1 = VmWare.MORTypes
     self.FDict = {}
     self.Folder = Options['Folder'] if 'Folder' in Options else 'vm'
Ejemplo n.º 4
0
def vsphere():
    if not hasattr(vsphere, 'vmwserver'):
        vsphere.vmwserver = pysphere.VIServer()
        try:
            vsphere.vmwserver.connect("vcenter.core.wotifgroup.com",
                                      get_passwords()['vmwusername'],
                                      get_passwords()['vmwpassword'])
        except pysphere.VIApiException:
            print(
                'An error has occurred while connecting to vSphere! Aborting.')
            exit(1)
    return vsphere.vmwserver
Ejemplo n.º 5
0
def datastores(vm_hosts):
	'''Create a dict referencing datastore ids with their name'''
	datastores = {}
	for host in vm_hosts:
		server = pysphere.VIServer()
		server.connect(host, host_user, host_pass)

		all_datastores = server.get_datastores()
		for mor, name in all_datastores.iteritems():
			datastores[mor] = name
		server.disconnect()

	return datastores
Ejemplo n.º 6
0
def change_system_state(power_address, power_user, power_pass, vm_name,
                        power_change):
    try:
        server = pysphere.VIServer()
        server.connect(power_address, power_user, power_pass)
        vm = server.get_vm_by_name(vm_name)
        if power_change == 'on':
            vm.power_on()
        else:
            vm.power_off()
    except Exception as e:
        raise e
    finally:
        if server:
            server.disconnect()
Ejemplo n.º 7
0
def clusters_hosts(vm_hosts):
	'''Create a dict referencing esx hosts with their cluster.'''
	cluster_host = {}
	for host in vm_hosts:
		server = pysphere.VIServer()
		server.connect(host, host_user, host_pass)
		
		clusters = server.get_clusters()
		for c_mor, cluster in clusters.iteritems():
			hosts = server.get_hosts(from_mor=c_mor)
			for h_mor, host in hosts.iteritems():
				cluster_host[host] = cluster
		server.disconnect()

	return cluster_host #{host:cluster}
Ejemplo n.º 8
0
    f = open('/opt/ops-scripts/etc/vmware-netapp-backup-config.yaml')
    config = yaml.load(f.read())
    f.close()

    # Connect to NetApp filers:
    filers = {}
    for filer in auth['filers']:
        v_print("Connecting to filer %s" % filer['hostname'], 3)
        filers[filer['hostname']] = Ontap.Filer(filer['hostname'], 
                                                filer['user'],
                                                filer['passwd'])

    # Connect to all vSphere instances:
    servers = {}
    for vcenter in auth['vcenter']:
        vc = pysphere.VIServer()
        v_print("Connecting to vCenter host %s" % vcenter['hostname'], 3)
        try:
            vc.connect(vcenter['hostname'], vcenter['user'], vcenter['passwd'])
        except socket.error:
            v_print("Could not connect to vCenter host %s" %
                    vcenter['hostname'], 1)
            continue
        servers[vcenter['hostname']] = vc

    # Generate dict of VMs by datastore:
    vms_by_ds = {}
    for vchost in servers.keys():

        v_print("Cataloging vCenter host %s" % vchost, 3)
        server = servers[vchost]
Ejemplo n.º 9
0
        return
    else:
        return vm.clone(name,
                        sync_run=False,
                        resourcepool=rp_mor,
                        datastore=ds_mor,
                        host=host_mor,
                        power_on=False)  # returns a VITask object


def main():
    """
    Simple command-line program for listing the virtual machines on a system.
    """

    args = get_args()

    print vmClone(args.name, args.source, args.resourcePool,
                  "elkvmw03.thoughtworks.com", args.datastore, 1)

    return 0


# Start program
vCenterServer = pysphere.VIServer()
# Place in connection strings directly
vCenterServer.connect('', '', '')

if __name__ == "__main__":
    main()
Ejemplo n.º 10
0
##stmt:Get hostname
sThisHost = str(args.host).upper()
sThisUser = str(args.user)
sThisPasswd = str(args.passwd)
sThisEsxiHost = str(args.esxihost)

##if:User and passwd passed?
if sThisUser == "" or sThisPasswd == "":
    print "Invalid username or password"
    sys.exit(1)

##if:Do we have a host?
if sThisHost != "":
    ##stmt:Yes, connect to vCenter
    server = pysphere.VIServer()
    server.connect(sThisEsxiHost, sThisUser, sThisPasswd)

    ##stmt:Get server object
    vm = server.get_vm_by_name(sThisHost)

    ##if:Found VM?
    if vm is None:
        ##stmt:No, tell user and exit script
        print "Cannot find " + sThisHost
        sys.exit(1)

    ##if:Is the server already powered on?
    if vm.get_status() != "POWERED ON":
        ##stmt:No, power on server and exit script
        vm.power_on()
Ejemplo n.º 11
0
    try:
        _create_unverified_https_context = ssl._create_unverified_context
    except AttributeError:
        # Legacy Python that doesn't verify HTTPS certificates by default
        pass
    else:
        # Handle target environment that doesn't support HTTPS verification
        ssl._create_default_https_context = _create_unverified_https_context
    # End SSL hack

    test_esxi = False
    test_vcenter = True
    test_setup = False

    if test_esxi:
        esxi = pysphere.VIServer()
        esxi.connect(esxi_config['host'], esxi_config['username'],
                     esxi_config['password'])
        # Just test that this works
        generate_vcenter_install_config(esxi, vcenter_config['host'], 923,
                                        '1.2.3.4', '27', '1.2.3.1', 'testar',
                                        'datastore1', 'event.dreamhack.se')

    if test_vcenter:
        vcenter = pysphere.VIServer()
        vcenter.connect(vcenter_config['host'], vcenter_config['username'],
                        vcenter_config['password'])
        datacenter = get_or_create_datacenter(vcenter, 'event')
        cluster = get_or_create_cluster(vcenter, datacenter, 'POP')

    if test_setup:
Ejemplo n.º 12
0
def connect(vm_host):
	'''Connect to the esx server and return the session.'''
	server = pysphere.VIServer()
	server.connect(vm_host, host_user, host_pass)
	
	return server