# Install drivers needed for the Lenovo Thunderbolt 3 Graphics Dock (G0A10170UL); applies only to
# group "egpu-lenovo".
# Requires Ansible 2.5 or later.
# TODO(dogben): In the future we will probably have eGPUs other than the Lenovo and possibly hosts
# other than the NUC7i5BNK, at which point we should split this playbook appropriately.
- hosts: egpu-lenovo
  tasks:
  - name: Create Temp
    win_file:
      path: c:\Temp
      state: directory
  - name: Copy the Intel NUC7i5BNK TB3 driver ZIP to the host
    win_copy:
      src: "{{ win_package_src }}/Intel NUC7i5BNK Thunderbolt 3 TBT_WIN10_64_17.2.71.250.zip"
      dest: c:\Temp\intel_tb3.zip
  - name: Extract the Intel NUC7i5BNK TB3 driver ZIP
    win_unzip:
      src: c:\Temp\intel_tb3.zip
      dest: C:\Temp\Intel
  - name: Install Intel NUC7i5BNK TB3 driver
    win_package:
      path: c:\Temp\Intel\setup.msi
      # See docs for win_package here:
      # http://docs.ansible.com/ansible/latest/win_package_module.html
      # Unfortunately, the only way I have found to get this product_id is to install the software
      # and dig through the registry. And even then it might not work (see
      # nvidia-graphics-driver.yml). Hopefully future versions of win_package will make this better
      # (or just make the product_id optional).
      #product_id: '{DEE0B752-52D8-4615-9BEE-1EDA46628960}'
      state: present
  - name: Copy the Lenovo TB3 Graphics Dock Driver EXE to the host
    win_copy:
      src: "{{ win_package_src }}/lenovo_thunderbolt_3_graphics_dock_driver_v100044.exe"
      dest: c:\Temp\lenovo_tb3.exe
  - name: Create C:\Temp\Lenovo
    win_file:
      path: c:\Temp\Lenovo
      state: directory
  - name: Extract the Lenovo TB3 Graphics Dock Driver EXE
    # Extract arg based on info from "lenovo_tb3.exe /?" and trial-and-error.
    win_command: c:\Temp\lenovo_tb3.exe /extract:c:\Temp\Lenovo
  - name: Install Lenovo TB3 Graphics Dock Driver
    win_package:
      # I have no idea what "A3E7EAB" means.
      path: c:\Temp\Lenovo\A3E7EAB\Lenovo_Thunderbolt_3_Graphics_Dock_Driver_V100044.msi
      state: present
  - name: Cleanup
    win_file:
      path: c:\Temp\{{ item }}
      state: absent
    loop:
      - intel_tb3.zip
      - Intel
      - lenovo_tb3.exe
      - Lenovo
