Ejemplo n.º 1
0
def vmwareplugin_datastores(request):
    from pysphere import VIServer
    data = {
        'error': False,
    }
    if request.POST.get('oid'):
        vmware = models.VMWarePlugin.objects.get(id=request.POST.get('oid'))
    else:
        vmware = None
    try:
        if request.POST.get('password'):
            password = request.POST.get('password')
        elif not request.POST.get('password') and vmware:
            password = vmware.get_password()
        else:
            password = ''
        server = VIServer()
        server.connect(
            request.POST.get('hostname'),
            request.POST.get('username'),
            password,
            sock_timeout=7,
        )
        data['value'] = server.get_datastores().values()
        server.disconnect()
    except Exception, e:
        data['error'] = True
        data['errmsg'] = unicode(e).encode('utf8')
Ejemplo n.º 2
0
def main():

    module = AnsibleModule(argument_spec=dict(
        vcenter_hostname=dict(required=True, aliases=['vcenter']),
        username=dict(required=True, aliases=['user']),
        password=dict(required=True),
        guest=dict(required=True),
        validate_certs=dict(required=False, type='bool', default=True),
        disk=dict(required=True, aliases=['unit']),
        size=dict(required=True)),
                           supports_check_mode=True)

    host = module.params.get('vcenter_hostname')
    login = module.params.get('username')
    password = module.params.get('password')
    guest = module.params.get('guest')
    validate_certs = module.params['validate_certs']
    disk_unit = int(module.params.get('disk'))
    disk_size = int(module.params.get('size'))

    if disk_unit < 1 or disk_unit > 6:
        module.fail_json(msg='Dubious disk unit')

    if disk_size < 8 or disk_unit > 2000:
        module.fail_json(msg='Dubious disk size')

    server = VIServer()
    if not validate_certs:
        default_context = ssl._create_default_https_context
        ssl._create_default_https_context = ssl._create_unverified_context
    try:
        server.connect(host, login, password)
    except Exception, e:
        module.fail_json(msg='Failed to connect to %s: %s' % (host, e))
Ejemplo n.º 3
0
def main():

    module = AnsibleModule(argument_spec=dict(
        vcenter_hostname=dict(required=True),
        username=dict(required=True),
        password=dict(required=True),
        guest=dict(required=True),
        validate_certs=dict(required=False, type='bool', default=True),
    ),
                           supports_check_mode=True)

    host = module.params.get('vcenter_hostname')
    login = module.params.get('username')
    password = module.params.get('password')
    guest = module.params.get('guest')
    validate_certs = module.params['validate_certs']

    server = VIServer()
    if not validate_certs:
        default_context = ssl._create_default_https_context
        ssl._create_default_https_context = ssl._create_unverified_context
    try:
        server.connect(host, login, password)
    except Exception, e:
        module.fail_json(msg='Failed to connect to %s: %s' % (host, e))
Ejemplo n.º 4
0
def main(argv=None):

    if argv is None:
    argv = sys.argv

    server = VIServer()
    server.connect(sys.argv[1], sys.argv[2], sys.argv[3])

    print "{"
    print "\t\"data\":[\n"
    first = 1

    for ds_mor, name in server.get_datastores().items():
        props = VIProperty(server, ds_mor)
    if not first:
        sys.stdout.write(",")
    first = 0

    pfree = float(props.summary.freeSpace) / float(props.summary.capacity) * 100

    print "\n\t{"
        print "\t\t\"{#DSNAME}\":\"%s\"," % name
        print "\t\t\"{#DSACCESS}\":\"%d\"," % props.summary.accessible
        print "\t\t\"{#DSCAP}\":\"%s\"," % props.summary.capacity
        print "\t\t\"{#DSFREE}\":\"%s\"," % props.summary.freeSpace
        print "\t\t\"{#DSPFREE}\":\"%s\"" % pfree
        sys.stdout.write("\t}") 

    print "\n\t]"
    print "}"

    server.disconnect()
Ejemplo n.º 5
0
def host_connect(host):
    """ Connect to a host. """
    server = VIServer()
    server.connect(host, CREDS.get('Host', 'user'),
                   CREDS.get('Host', 'pass'))

    return server
Ejemplo n.º 6
0
def _connect_server(bot):
    try:
        server = VIServer()
        server.connect(bot.config.pysphere.server, bot.config.pysphere.login, bot.config.pysphere.password)        
    except Exception, e:
        bot.say("No connection to the server")
        return False
Ejemplo n.º 7
0
class ESXI():
	def __init__(self, host, name, passwd):
		self.host = host 		# the host's ip
		self.name = name 		# the host's name
		self.passwd = passwd 	# the host's password
		self.esxiInst = None	# the esxi's handler 
		self.VMBuf = []  		# the all vms in the vcenter
		self.datastores = {}	# the host's datastores
		self.hosts = {}			# the host's host 
		self.esxiInst = VIServer() # get init the handles of the host
		self.esxiType = ""		# the type(esxi or vcneter) of the  host connected
		self.VGList = [] 		# the vms you get from the vm's buffer
		self.vm = None			# the handler of the vm you got

	# connect to ESXI
	def esxiConnect(self):
		if self.esxiInst == None:
			logging.fatal("ESXI connect failed...")
			return False
		try:
			if not self.esxiInst.is_connected():
				self.esxiInst.connect(self.host, self.name, self.passwd)
				self.esxiType = self.esxiInst.get_api_type() 
			else:
				logging.fatal("esxi already connected")
				return False
		except VIApiException, e:
			logging.fatal(str(e))
			return False
		except error, e:
			logging.fatal(str(e) + " " + "Host Unreachable...")
			return False
Ejemplo n.º 8
0
def main():
    u"""Main method

    Create session.
    Excute subcommand.
    """
    # Import
    import socket
    import getpass
    import sys
    from pysphere import VIApiException, VIServer
    import argument

    # Get argument
    args = argument.args()
    s = VIServer()

    # Set information
    host = args.host if args.host else raw_input('Host> ')
    user = args.user if args.user else raw_input('User> ')
    passwd = args.passwd if args.passwd else getpass.getpass('Password> ')
    try:
        print 'Connecting...'
        s.connect(host, user, passwd)

        # Execute function
        args.func(args, s)
    except socket.error:
        print >> sys.stderr, "Cannot connected."
    except VIApiException:
        print >> sys.stderr, "Incorrect user name or password."
    except Exception, e:
        print >> sys.stderr, e.message
Ejemplo n.º 9
0
def main(argv=None):

    if argv is None:
    argv=sys.argv

    server = VIServer()
    try:
        server.connect(sys.argv[1], sys.argv[2], sys.argv[3])

    hosts = server.get_hosts()
        for h_mor, h_name in hosts.items():
            props = VIProperty(server, h_mor)
        try:
            f = open("/tmp/esxi_hosts_" + sys.argv[1] + ".txt", "w")
            try:
            f.write("memorySize=" + str(props.hardware.memorySize) + "\n")
            f.write("overallCpuUsage=" + str(props.summary.quickStats.overallCpuUsage) + "\n")
                    f.write("overallMemoryUsage=" + str(props.summary.quickStats.overallMemoryUsage) + "\n")
            f.write("uptime=" + str(props.summary.quickStats.uptime) + "\n")
                # $CPUTotalMhz = $_.Summary.hardware.CPUMhz * $_.Summary.Hardware.NumCpuCores
                # $row."CpuUsage%" = [math]::round( ($row.CpuUsageMhz / $CPUTotalMhz), 2) * 100
                f.write("cpuMhz=" + str(props.summary.hardware.cpuMhz) + "\n")
                f.write("numCpuCores=" + str(props.summary.hardware.numCpuCores) + "\n")
            finally:
                f.close()
        except IOError:
            print "0"
            sys.exit(0)	
Ejemplo n.º 10
0
def connect_VI(vcenter_hostname, user, password):
    # Create the connection to vCenter Server
    server = VIServer()
    try:
        server.connect(vcenter_hostname, user, password)
    except VIApiException, err:
        module.fail_json(msg="Cannot connect to %s: %s" % (vcenter_hostname, err))
Ejemplo n.º 11
0
    def vm_status(self, vm_name):
        m = Info_log(time.strftime('%Y-%m-%d', time.localtime(time.time())))
        log = m.log()
        server_obj = VIServer()
        try:
            server_obj.connect(self.host_ip, self.user, self.password)
            # servertype, version = server_obj.get_server_type(),server_obj.get_api_version()

        except Exception as e:
            server_obj.disconnect()
            log.info(e)

        # 通过名称获取vm的实例
        try:
            vm = server_obj.get_vm_by_name(vm_name)
            if vm.is_powered_off() == False:
                server_obj.disconnect()
                return 1

            if vm.is_powered_off() == True:
                server_obj.disconnect()
                return 2

        except Exception as e:
            server_obj.disconnect()
            return 3
Ejemplo n.º 12
0
    def del_datas(self, vm_name, guster_user, guster_pwd, del_dir):
        server_obj = VIServer()
        try:
            server_obj.connect(self.host_ip, self.user, self.password)
        except Exception as e:
            print(e)
        # 通过名称获取vm的实例
        try:
            vm = server_obj.get_vm_by_name(vm_name)
        except Exception as e:
            # print(e)
            return 0
        print(vm.get_tools_status())
        if vm.get_tools_status() == 'RUNNING':  #判断tools状态
            print(f'{vm_name} tools is  RUNING--------------------')
            try:
                vm.login_in_guest(guster_user, guster_pwd)
                vm.delete_directory(del_dir, recursive=True)  # 清空数据盘
            except Exception as e:
                # print(e)
                pass

            finally:
                print(f'{vm_name} 数据盘清空完毕!!!!!')
        else:
            print(f'{vm_name} tools is not RUNING--------------------')
Ejemplo n.º 13
0
def vmwareplugin_datastores(request):
    from pysphere import VIServer
    data = {
        'error': False,
    }
    if request.POST.get('oid'):
        vmware = models.VMWarePlugin.objects.get(id=request.POST.get('oid'))
    else:
        vmware = None
    try:
        if request.POST.get('password'):
            password = request.POST.get('password')
        elif not request.POST.get('password') and vmware:
            password = vmware.get_password()
        else:
            password = ''
        server = VIServer()
        server.connect(
            request.POST.get('hostname'),
            request.POST.get('username'),
            password,
            sock_timeout=7,
        )
        data['value'] = server.get_datastores().values()
        server.disconnect()
    except Exception, e:
        data['error'] = True
        data['errmsg'] = unicode(e).encode('utf8')
Ejemplo n.º 14
0
def get_connection(host_ip, username, password):
    server = VIServer()
    if host_ip is not None and username is not None and password is not None:
        server.connect(host_ip, username, password)
    else:
        return None
    return server
Ejemplo n.º 15
0
    def vm_status(self, vm_name):

        server_obj = VIServer()
        try:
            server_obj.connect(self.host_ip, self.user, self.password)
            # servertype, version = server_obj.get_server_type(),server_obj.get_api_version()

        except Exception as e:
            server_obj.disconnect()
            print e

        # 通过名称获取vm的实例
        try:
            vm = server_obj.get_vm_by_name(vm_name)
            if vm.is_powered_off() == False:
                server_obj.disconnect()
                return 1

            if vm.is_powered_off() == True:
                server_obj.disconnect()
                return 2

        except Exception as e:
            server_obj.disconnect()
            return 3
Ejemplo n.º 16
0
def viConnect(vCenter,username,password,vmname):
	server = VIServer()
	server.connect(vCenter,username,password)
	#print "vCenter: {} User: {} Pass: {}".format(vCenter,username,password)
	#return server
	#print viConnect("192.168.219.129","root","vmware")
	return getVm(server,vmname)
Ejemplo n.º 17
0
    def vmaction(self, vm_name, vm_hz):

        server_obj = VIServer()
        try:
            server_obj.connect(self.host_ip, self.user, self.password)
        except Exception as e:
            print e

        # 通过名称获取vm的实例
        try:
            vm = server_obj.get_vm_by_name(vm_name)
        except Exception as e:
            return 0
        if vm.is_powered_off() == False:
            try:
                vm.reset()
                # print (type(int(vm_hz)))
                for i in range(1, int(vm_hz)):
                    print u'虚拟机%s 正在重置中。。。。,请等待注册\n' % (vm_name)
                    time.sleep(1)
                print u'重置完成'
                server_obj.disconnect()

                return 1
            except Exception as e:
                print e

        if vm.is_powered_off() == True:
            try:
                vm.power_on()
                print u'虚拟机%s 正在开机中。。。。' % (vm_name)
                server_obj.disconnect()

            except Exception as e:
                return 2
Ejemplo n.º 18
0
def main(argv):
    try:
        opts, args = getopt.getopt(
            argv, "i:u:p:n:h",
            ["iphost=", "vuser="******"vpass="******"vmname=", "help"])
    except getopt.GetoptError:
        print 'test.py -i <vhost> -u <name> -p <vpass> -n <vmname>'
        sys.exit(4)
    for opt, arg in opts:
        if opt == '-h':
            print 'test.py -i <vhost> -u <vname> -p <vpass> -n <vmname>'
            sys.exit()
        elif opt in ("-i", "--vhost"):
            iphost = arg
        elif opt in ("-u", "--vname"):
            vuser = arg
        elif opt in ("-p", "--vpass"):
            vpass = arg
        elif opt in ("-n", "--vmname"):
            vmname = arg
    ssl._create_default_https_context = ssl._create_unverified_context
    server = VIServer()
    server.connect(iphost, vuser, vpass)
    vm1 = server.get_vm_by_name(vmname)
    print vm1.get_properties().get('ip_address')
Ejemplo n.º 19
0
def host_connect(host):
    """ Connect to a host. """
    server = VIServer()
    server.connect(host, CREDS.get('Host', 'user'),
                   CREDS.get('Host', 'pass'))

    return server
Ejemplo n.º 20
0
def connectToHost(host,host_user,host_pw):
    #create server object
    s=VIServer()
    #connect to the host
    try:
        s.connect(host,host_user,host_pw)
        return s
Ejemplo n.º 21
0
def main():
    vm = None

    module = AnsibleModule(
        argument_spec=dict(
            vcenter_hostname=dict(required=True, type='str'),
            vcenter_username=dict(required=True, type='str'),
            vcenter_password=dict(required=True, type='str'),
            datacenter_name=dict(required=True, type='str'),
            folder_structure=dict(required=True, type='list'),
            guest_list=dict(required=True, type='list'),
        ),
        supports_check_mode=False,
    )

    if not HAS_PYSPHERE:
        module.fail_json(msg='pysphere module required')

    vcenter_hostname = module.params['vcenter_hostname']
    vcenter_username = module.params['vcenter_username']
    vcenter_password = module.params['vcenter_password']
    guest_list = module.params['guest_list']
    folder_structure = module.params['folder_structure']
    base_datacenter = module.params['datacenter_name']

    # CONNECT TO THE SERVER
    viserver = VIServer()
    try:
        viserver.connect(vcenter_hostname, vcenter_username, vcenter_password)
    except VIApiException, err:
        module.fail_json(msg="Cannot connect to %s: %s" %
                         (vcenter_hostname, err))
Ejemplo n.º 22
0
def esx_connect(host, user, password):
    esx = VIServer()
    try:
        esx.connect(host, user, password)
    except VIApiException, e:
        print("There was an error while connecting to esx: %s" % e)
        return 1
Ejemplo n.º 23
0
def connect_VI(vcenter_hostname, user, password):
    # Create the connection to vCenter Server
    server = VIServer()
    try:
        server.connect(vcenter_hostname, user, password)
    except VIApiException, err:
        module.fail_json(msg="Cannot connect to %s: %s" % (vcenter_hostname, err))
def main():
    vm = None

    module = AnsibleModule(
        argument_spec=dict(
            vcenter_hostname=dict(required=True, type='str'),
            vcenter_username=dict(required=True, type='str'),
            vcenter_password=dict(required=True, type='str'),
            datacenter_name=dict(required=True, type='str'),
            folder_structure=dict(required=True, type='list'),
            guest_list=dict(required=True, type='list'),
        ),
        supports_check_mode=False,
    )

    if not HAS_PYSPHERE:
        module.fail_json(msg='pysphere module required')

    vcenter_hostname = module.params['vcenter_hostname']
    vcenter_username = module.params['vcenter_username']
    vcenter_password = module.params['vcenter_password']
    guest_list = module.params['guest_list']
    folder_structure = module.params['folder_structure']
    base_datacenter = module.params['datacenter_name']

    # CONNECT TO THE SERVER
    viserver = VIServer()
    try:
        viserver.connect(vcenter_hostname, vcenter_username, vcenter_password)
    except VIApiException, err:
        module.fail_json(msg="Cannot connect to %s: %s" %
                         (vcenter_hostname, err))
Ejemplo n.º 25
0
def connect_vcenter(vcenter_address, vcenter_username, vcenter_password):
    ssl._create_default_https_context = ssl._create_unverified_context
    vcenter_server = VIServer()
    vcenter_server.connect(host=vcenter_address,
                           user=vcenter_username,
                           password=vcenter_password)
    print "connect to vcenter."
    return vcenter_server
Ejemplo n.º 26
0
def vcenter_connect():
    """ Connect to the vcenter. """
    server = VIServer()
    server.connect(CREDS.get('Vcenter', 'server'),
                   CREDS.get('Vcenter', 'user'),
                   CREDS.get('Vcenter', 'pass'))

    return server
Ejemplo n.º 27
0
def vcenter_connect():
    """ Connect to the vcenter. """
    server = VIServer()
    server.connect(CREDS.get('Vcenter', 'server'),
                   CREDS.get('Vcenter', 'user'),
                   CREDS.get('Vcenter', 'pass'))

    return server
Ejemplo n.º 28
0
def _connect_server(bot):
    try:
        server = VIServer()
        server.connect(bot.config.pysphere.server, bot.config.pysphere.login,
                       bot.config.pysphere.password)
    except Exception, e:
        bot.say("No connection to the server")
        return False
def connect_host(host, user, pswd):
    server = VIServer()
    try:
        server.connect(host, user, pswd)
        LOG.info("Connected to %s %s", server.get_server_type(), host)
        return server
    except:
        print "unable to connect to host: " + host + " error message: "
Ejemplo n.º 30
0
 def __init__(self, vcip, vcuser, vcpassword, dc, clu):
     self.vcip = vcip
     self.translation = {'POWERED OFF':'down', 'POWERED ON':'up'}
     s = VIServer()
     s.connect(vcip, vcuser, vcpassword)
     self.s = s
     self.clu = clu
     self.dc = dc
Ejemplo n.º 31
0
def main():
    module = AnsibleModule(
        argument_spec=dict(
            vcenter_vx=dict(required=True, type='str'),
            user=dict(required=True, type='str'),
            password=dict(required=True, type='str'),
            ansible_resource_pool=dict(required=False,
                                       default=None,
                                       type='str'),
            cluster=dict(required=False, default=None, type='str'),
            datacenter=dict(required=True, type='str'),
            datastore=dict(required=True, type='str'),
            esxi_hostname=dict(required=True, type='str'),
            power_on=dict(required=False, default='no', type='bool'),
            vm_name=dict(required=True, type='str'),
            vm_memory_mb=dict(required=False, default=1024),
            vm_num_cpus=dict(required=False, default=1),
            vm_scsi=dict(required=False, default="paravirtual", type='str'),
            vm_disk=dict(required=False, default=None, type='dict'),
            vm_nic=dict(required=False, default=None, type='dict'),
            vm_notes=dict(required=False, default=None, type='str'),
            vm_cdrom=dict(required=False, default=None, type='dict'),
            vm_extra_config=dict(required=False, default=None, type='dict'),
            guestosid=dict(required=True, type='str'),
        ),
        supports_check_mode=False,
        required_together=[['ansible_resource_pool', 'cluster']],
    )

    if not HAS_PYSPHERE:
        module.fail_json(msg="pysphere is not installed")

    vcenter_vx = module.params['vcenter_vx']
    user = module.params['user']
    password = module.params['password']
    ansible_resource_pool = module.params['ansible_resource_pool']
    cluster_name = module.params['cluster']
    datacenter = module.params['datacenter']
    datastore = module.params['datastore']
    esxi_hostname = module.params['esxi_hostname']
    power_on = module.params['power_on']
    vm_name = module.params['vm_name']
    vm_memory_mb = int(module.params['vm_memory_mb'])
    vm_num_cpus = int(module.params['vm_num_cpus'])
    vm_scsi = module.params['vm_scsi']
    vm_disk = module.params['vm_disk']
    vm_nic = module.params['vm_nic']
    vm_notes = module.params['vm_notes']
    vm_cdrom = module.params['vm_cdrom']
    vm_extra_config = module.params['vm_extra_config']
    guestosid = module.params['guestosid']

    # CONNECT TO THE SERVER
    s = VIServer()
    try:
        s.connect(vcenter_vx, user, password)
    except VIApiException, err:
        module.fail_json(msg="Cannot connect to %s: %s" % (vcenter_vx, err))
Ejemplo n.º 32
0
class VSphereConnection(ConnectionUserAndKey):
    def __init__(self, user_id, key, secure=True,
                 host=None, port=None, url=None, timeout=None, **kwargs):
        if host and url:
            raise ValueError('host and url arguments are mutually exclusive')

        if host:
            host_or_url = host
        elif url:
            host_or_url = url
        else:
            raise ValueError('Either "host" or "url" argument must be '
                             'provided')

        self.host_or_url = host_or_url
        self.client = None
        super(VSphereConnection, self).__init__(user_id=user_id,
                                                key=key, secure=secure,
                                                host=host, port=port,
                                                url=url, timeout=timeout,
                                                **kwargs)

    def connect(self):
        self.client = VIServer()

        trace_file = os.environ.get('LIBCLOUD_DEBUG', None)

        try:
            self.client.connect(host=self.host_or_url, user=self.user_id,
                                password=self.key,
                                sock_timeout=DEFAULT_CONNECTION_TIMEOUT,
                                trace_file=trace_file)
        except Exception as e:
            message = e.message
            if hasattr(e, 'strerror'):
                message = getattr(e, 'strerror', e.message)

            fault = getattr(e, 'fault', None)

            if fault == 'InvalidLoginFault':
                raise InvalidCredsError(message)
            raise LibcloudError(value=message, driver=self.driver)

        atexit.register(self.disconnect)

    def disconnect(self):
        if not self.client:
            return

        try:
            self.client.disconnect()
        except Exception:
            # Ignore all the disconnect errors
            pass

    def run_client_method(self, method_name, **method_kwargs):
        method = getattr(self.client, method_name, None)
        return method(**method_kwargs)
Ejemplo n.º 33
0
class VSphereConnection(ConnectionUserAndKey):
    def __init__(self, user_id, key, secure=True,
                 host=None, port=None, url=None, timeout=None, **kwargs):
        if host and url:
            raise ValueError('host and url arguments are mutually exclusive')

        if host:
            host_or_url = host
        elif url:
            host_or_url = url
        else:
            raise ValueError('Either "host" or "url" argument must be '
                             'provided')

        self.host_or_url = host_or_url
        self.client = None
        super(VSphereConnection, self).__init__(user_id=user_id,
                                                key=key, secure=secure,
                                                host=host, port=port,
                                                url=url, timeout=timeout,
                                                **kwargs)

    def connect(self):
        self.client = VIServer()

        trace_file = os.environ.get('LIBCLOUD_DEBUG', None)

        try:
            self.client.connect(host=self.host_or_url, user=self.user_id,
                                password=self.key,
                                sock_timeout=DEFAULT_CONNECTION_TIMEOUT,
                                trace_file=trace_file)
        except Exception:
            e = sys.exc_info()[1]
            message = e.message
            if hasattr(e, 'strerror'):
                message = e.strerror
            fault = getattr(e, 'fault', None)

            if fault == 'InvalidLoginFault':
                raise InvalidCredsError(message)
            raise LibcloudError(value=message, driver=self.driver)

        atexit.register(self.disconnect)

    def disconnect(self):
        if not self.client:
            return

        try:
            self.client.disconnect()
        except Exception:
            # Ignore all the disconnect errors
            pass

    def run_client_method(self, method_name, **method_kwargs):
        method = getattr(self.client, method_name, None)
        return method(**method_kwargs)
Ejemplo n.º 34
0
    def conexion_viserver(self):
        self.logger.debug(self)
        esxi = VIServer()
        esxi.connect(self.creds['ip'], self.creds['user'],
                     self.creds['pw'], trace_file=self.config.logpysphere)

        self.logger.debug("Conectado a %s %s", esxi.get_server_type(),
                          esxi.get_api_version())
        return esxi
Ejemplo n.º 35
0
def create_vmware_connection(vmware_settings):
    try:
        server = VIServer()
        server.connect(vmware_settings['host'], vmware_settings['user'],
                       vmware_settings['password'])
    except:
        print traceback.format_exc()
        raise
    return server
Ejemplo n.º 36
0
 def test_vmware_version_vcenter(self):
     """ Is the Vmware version at 5.1?"""
     server = VIServer()
     server.connect(CREDS.get('Vcenter', 'server'),
                    CREDS.get('Vcenter', 'user'),
                    CREDS.get('Vcenter', 'pass'))
     api = server.get_api_version()
     self.assertEqual('5.1', api)
     server.disconnect()
Ejemplo n.º 37
0
def vs_connect(host, user, password, unverify=True):
    if unverify:
        try:
            ssl._create_default_https_context = ssl._create_unverified_context
        except:
            pass
    con = VIServer()
    con.connect(host, user, password, '/var/log/pysphere.log')
    return con
Ejemplo n.º 38
0
def main():
    opts = options()

    # CONNECTION PARAMTERS
    server = opts.esx_host
    user = opts.user
    password = opts.passwd

    # REQUIRED PARAMETERS
    vmname = opts.name

    # CONNECT TO THE SERVER
    s = VIServer()
    s.connect(server, user, password)

    try:
        vm = s.get_vm_by_name(opts.name)
        vm.shutdown_guest()
        
        count = 1
        wait_for = 60
        try: 
            while count < wait_for and vm.is_powered_off() == False:
                count += 1
                time.sleep(1)
                print "Elapsed %s seconds ..." % str(count)

        except Exception as e:
            if count >= wait_for:
                print "Failed to shutdown the VM (%s) even after %s seconds." % (vmname, str(wait_for))
                print "Please login to the EXSi server and fix the issue. Exception: %s" % str(e)
                sys.exit(1)

        check_count(count, wait_for)
    except Exception as e:
        print "Failed to locate and shutdown the new VM using:", opts.name
        print "VM could not be deleted."
        print "Exception:", str(e)

    # Invoke Destroy_Task
    request = VI.Destroy_TaskRequestMsg()
    _this = request.new__this(vm._mor)
    _this.set_attribute_type(vm._mor.get_attribute_type())
    request.set_element__this(_this)
    ret = s._proxy.Destroy_Task(request)._returnval

    # Wait for the task to finish
    task = VITask(ret, s)

    status = task.wait_for_state([task.STATE_SUCCESS, task.STATE_ERROR])
    if status == task.STATE_SUCCESS:
        print "VM successfully deleted from disk"
    elif status == task.STATE_ERROR:
        print "Error removing vm:", task.get_error_message()

    # disconnect from the server
    s.disconnect()
Ejemplo n.º 39
0
def vcenter_connect(host, username, password):
    print 'Connecting to vcenter "%s"...' % (host)
    sys.stdout.flush()
    server = VIServer()
    server.connect(host.strip(), username.strip(), password.strip())
    sys.stdout.flush()
    print 'Vcenter connected'
    sys.stdout.flush()
    return server
Ejemplo n.º 40
0
def connectToHost(host, host_user, host_pw):
    #create server object
    s = VIServer()
    #connect to the host
    try:
        s.connect(host, host_user, host_pw)
        return s
    except VIApiException, err:
        print "Cannot connect to host: '%s', error message: %s" % (host, err)
Ejemplo n.º 41
0
 def esxi_version(self):
     server_obj = VIServer()
     try:
         server_obj.connect(self.host_ip, self.user,  self.password)
         servertype, version = server_obj.get_server_type(),server_obj.get_api_version()
         server_obj.disconnect()
         return servertype, version
     except Exception as  e:
         print e
def connectToHost(host,host_user,host_pw):
    #create server object
    s=VIServer()
    #connect to the host
    try:
        s.connect(host,host_user,host_pw)
        return s
    except VIApiException, err:
        print "Cannot connect to host: '%s', error message: %s" %(host,err)    
Ejemplo n.º 43
0
 def test_vmware_version_vcenter(self):
     """ Is the Vmware version at 5.1?"""
     server = VIServer()
     server.connect(CREDS.get('Vcenter', 'server'),
                    CREDS.get('Vcenter', 'user'),
                    CREDS.get('Vcenter', 'pass'))
     api = server.get_api_version()
     self.assertEqual('5.1', api)
     server.disconnect()
Ejemplo n.º 44
0
def connectToHost(host,host_user,host_pw):
    #create server object
    s=VIServer()
    #connect to the host
    try:
        s.connect(host,host_user,host_pw)
        return s
    except VIApiException:
        print ("Cannot connect to host: ")+host+(" error message: ")+err
Ejemplo n.º 45
0
Archivo: pysph.py Proyecto: BwRy/sandy
def revert(datastore):
  #vmsphear username and password
  server = VIServer()
  server.connect("101.91.1.21", "root", "Vsphear_root_password")

  vm1 = server.get_vm_by_path(datastore)
  print "Cuurrent Status",vm1.get_status()
  print "Reverting VM:", datastore 
  vm1.revert_to_snapshot()
  print "Vm reverted"
Ejemplo n.º 46
0
def GetHostConfig(host, user, password):
    from pysphere import VIServer
    server = VIServer()

    try:
        server.connect(host, user, password)
    except Exception, e:
        print "Error while connecting to %s:" % host
        print "%s" % e
        return None, False
Ejemplo n.º 47
0
def connectToHost(host, hostUsername, hostPassword):
    # create server object
    server = VIServer()

    try:
        server.connect(host, hostUsername, hostPassword)
        return server

    except VIApiException:
        raise
Ejemplo n.º 48
0
def get_center():
  
  serve = VIServer()
  
  try:
    serve.connect(get_arg('server[vcenter_ip]'), get_arg('server[vcenter_username]'), get_arg('server[vcenter_password]'), sock_timeout=60)
  except:
    return None
  
  return serve
Ejemplo n.º 49
0
def create_vmware_connection(vmware_settings):
    try:
        server = VIServer()
        server.connect(vmware_settings['host'],
                       vmware_settings['user'],
                       vmware_settings['password'])
    except:
        print traceback.format_exc()
        raise
    return server
Ejemplo n.º 50
0
def connect_vcenter(vcenter):
    #default_context = ssl._create_default_https_context
    server = VIServer()
    try:
        #ssl._create_default_https_context = ssl._create_unverified_context
        server.connect(vcenter.host_name, vcenter.user_name, vcenter.user_password)
        return server
    except AttributeError, e:
        print "ERROR: " + str(e)
        pass
Ejemplo n.º 51
0
def revert(datastore):
    #vmsphear username and password
    server = VIServer()
    server.connect("101.91.1.21", "root", "Vsphear_root_password")

    vm1 = server.get_vm_by_path(datastore)
    print "Cuurrent Status", vm1.get_status()
    print "Reverting VM:", datastore
    vm1.revert_to_snapshot()
    print "Vm reverted"
Ejemplo n.º 52
0
def vm_stop(server, username, password, vmID):
        s_server=str(server)
        s_username=str(username)
        s_password=str(password)
        s_vm=str(vmID)
        server = VIServer()
        server.connect(s_server, s_username, s_password)
        vm1 = server.get_vm_by_name(s_vm)
        vm1.suspend()
        return
Ejemplo n.º 53
0
 def StartConnect(self):
     vc_info = self.GetVcenterInfo()
     if vc_info != 1:
         Server = VIServer()
         try:
             Server.connect(**vc_info)
             self.server = Server
         except Exception, e:
             self.VCErrorReport(e.message)
         return Server if Server.is_connected() else 1
Ejemplo n.º 54
0
def setupConnection(host, user, password):
        server = VIServer()

        try:
                server.connect(host, user, password)
                print "[+] Host: " + host + " Version: " + server.get_server_type() + " " + server.get_api_version() + "\n"
                closeConnection(server)
                return True
        except Exception, err:
                print "[-] Cannot connect to host: "+host+" error message: " +err.message
                return None
Ejemplo n.º 55
0
def setupConnection(host, user, password):
        server = VIServer()

        try:
                server.connect(host, user, password)
                print "Host: " + host
                print "Version: " + server.get_server_type() + " " + server.get_api_version() + "\n"
                return server
        except Exception, err:
                print "Cannot connect to host: "+host+" error message: " +err.message
                sys.exit(2)
Ejemplo n.º 56
0
def main():
    opts = options()

    # CONNECTION PARAMTERS
    server = opts.esx_host
    user = opts.user
    password = opts.passwd

    # REQUIRED PARAMETERS
    vmname = opts.name
    template = opts.template
    cd_iso_location = opts.iso

    datastorename = opts.datastore  # if None, will use the first datastore available

    # CONNECT TO THE SERVER
    s = VIServer()
    s.connect(server, user, password)

    # Clone the VM.
    try:
        template_vm = s.get_vm_by_name(template)
    except Exception as e:
        print "Failed to locate the template."
        print "Exception:", str(e)
        sys.exit(1)

    vm = template_vm.clone(vmname, power_on=False)
    cdrom = None

    for dev in vm.properties.config.hardware.device:
        if dev._type == "VirtualCdrom":
            cdrom = dev._obj
            break

    change_cdrom_type(cdrom, "ISO", "[%s] %s" % (datastorename, cd_iso_location))
    apply_changes(vm, s, cdrom)

    # Here you should power your VM (refer to the pysphere documentation)
    # So it boots from the specified ISO location
    try:
        new_vm = s.get_vm_by_name(opts.name)
        connect_vm_cdroms(new_vm, s)
        try:
            new_vm.power_on()
        except Exception as e:
            print "Failed to power-on the new VM using:", opts.name
            print "Exception:", str(e)
    except Exception as e:
        print "Failed to locate the new VM using:", opts.name
        print "Exception:", str(e)
    # disconnect from the server
    s.disconnect()
    def check(self):
        super(zstack_vcenter_image_file_checker, self).check()

        server = VIServer()
        server.connect(vcenter_ip, domain_name, password)
        all_vms = server._get_managed_objects(MORTypes.VirtualMachine)

        for mor, name in all_vms.iteritems():
            if name == sync_image_name:
                return self.judge(True)
        else:        
            return self.judge(False)
def main():
    """Sets up the module parameters, validates them and perform the change"""
    module = AnsibleModule(
        argument_spec=dict(
            vcenter_hostname=dict(required=True),
            username=dict(required=True),
            password=dict(required=True),
            guest=dict(required=True),
            resource_pool=dict(required=True),
            cluster=dict(required=True),
            sync=dict(required=False, type='bool', default=True)
        ),
        supports_check_mode=True
    )

    server = VIServer()
    server.connect(
        module.params['vcenter_hostname'],
        module.params['username'],
        module.params['password'])
    virtualmachine = server.get_vm_by_name(module.params['guest'])

    old_name = virtualmachine.get_resource_pool_name()
    new_name = module.params['resource_pool']

    # find the clusters ManagedObjectReference
    cluster = None
    clusters = server.get_clusters()
    for mor, name in clusters.iteritems():
        if name == module.params['cluster']:
            cluster = mor
            break

    if cluster is None:
        module.fail_json(msg='Cluster %s not found on server %s' %
            (module.params['cluster'], module.params['vcenter_hostname']))

    # find the new resource pools Managed Object Reference and migrate the VM
    rps = server.get_resource_pools(from_mor=cluster)
    for mor, path in rps.iteritems():
        if re.match('.*%s$' % new_name, path):
            if not re.match('.*%s$' % old_name, path):
                if not module.check_mode:
                    virtualmachine.migrate(
                        resource_pool=mor,
                        host=virtualmachine.get_property('hostname'),
                        sync_run=module.params['sync'])
                module.exit_json(changed=True, changes=module.params)
            module.exit_json(changed=False, changes=module.params)
    module.fail_json(msg='Resource pool %s not found' %
        module.params['resource_pool'])