docstr: Create the VM.
  
  - The first command creates a VM similar to the one
    the user can get from the GCP marketplace.
    - There is apparently no way to "interact" with the
      GCP marketplace directly.
  - The VMI explicitly asks to install GPU drivers on the first boot,
    so the second command does it.
  
  :return:
docstr_tok: ["Create","the","VM",".","-","The","first","command","creates","a","VM","similar","to","the","one","the","user","can","get","from","the","GCP","marketplace",".","-","There","is","apparently","no","way","to","``","interact","''","with","the","GCP","marketplace","directly",".","-","The","VMI","explicitly","asks","to","install","GPU","drivers","on","the","first","boot",",","so","the","second","command","does","it",".",":","return",":"]
code: def create_vm(self) -> int:
      """Create the VM.
  
      - The first command creates a VM similar to the one
        the user can get from the GCP marketplace.
        - There is apparently no way to "interact" with the
          GCP marketplace directly.
      - The VMI explicitly asks to install GPU drivers on the first boot,
        so the second command does it.
  
      :return:
      """
      cmd = [
          "gcloud",
          "compute",
          "instances",
          "create",
          self.config.instance_name,
          "--machine-type",
          self.config.machine_type,
          "--maintenance-policy",
          self.config.maintenance_policy,
          "--image",
          f"projects/{self.config.project}/global/images/"
          f"{self.config.vm_image_name}",
          "--boot-disk-size",
          self.config.disk_size,
          "--boot-disk-type",
          self.config.disk_type,
          # "--accelerator",
          # f"type={self.config.accelerator_type},"
          # f"count={self.config.accelerator_count}",
      ]
      self.logger.print(" ".join(cmd))
      p = subprocess.run(cmd)
  
      return p.returncode
  
imports: import argparse
  import logging
  import subprocess
  import sys
  from dataclasses import dataclass, fields
  from typing import Any, List
label_desc: Use image node_id 3 for calling the GCE obj's underlying member method code with example usage: obj.create_vm() and returns: p