<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _run_guest(userid, image_path, os_version, profile, cpu, memory, network_info, vswitch_name, disks_list):
 """ Deploy and provide a virtual machine. Input parameters: :userid: USERID of the guest, no more than 8 :image_path: image file path :os_version: os version of the image file :profile: profile of the userid :cpu: the number of vcpus :memory: memory :network_info: dict of network info. Members are: :ip_addr: ip address of vm :gateway: gateway of network :cidr: CIDR :vswitch_name: vswitch name :disks_list: list of disks to add. For example: disks_list = [{'size': '3g', 'is_boot_disk': True, 'disk_pool': 'ECDK: xcateckd'}] """

    print("Start deploying a virtual machine:")
    
    # Import image if not exists.
    import_image(image_path, os_version)
    
    # Start time.
    spawn_start = time.time()
    
    # Create guest.
    create_guest(userid, cpu, memory, disks_list, profile)
    
    # Deploy image to root disk.
    image_name = os.path.basename(image_path)
    deploy_guest(userid, image_name)
    
    # Create network device and configure network interface.
    create_network(userid, os_version, network_info)
    
    # Couple to vswitch.
    coupleTo_vswitch(userid, vswitch_name)
    
    # Grant user.
    grant_user(userid, vswitch_name)
    
    # Power on the vm.
    start_guest(userid)
    
    # End the time.
    spawn_time = time.time() - spawn_start
    print("Instance-%s spawned succeeded in %s seconds!" % 
          (userid, spawn_time))

    # Describe guest.
    describe_guest(userid)