docs: def order_guest(self, guest_object, test=False):
          """Uses Product_Order::placeOrder to create a virtual guest.
  
          Useful when creating a virtual guest with options not supported by Virtual_Guest::createObject
          specifically ipv6 support.
  
          :param dictionary guest_object: See SoftLayer.CLI.virt.create._parse_create_args
  
          Example::
  
              new_vsi = {
                  'domain': u'test01.labs.sftlyr.ws',
                  'hostname': u'minion05',
                  'datacenter': u'hkg02',
                  'flavor': 'BL1_1X2X100'
                  'dedicated': False,
                  'private': False,
                  'os_code' : u'UBUNTU_LATEST',
                  'hourly': True,
                  'ssh_keys': [1234],
                  'disks': ('100','25'),
                  'local_disk': True,
                  'tags': 'test, pleaseCancel',
                  'public_security_groups': [12, 15],
                  'ipv6': True
              }
  
              vsi = mgr.order_guest(new_vsi)
              # vsi will have the newly created vsi receipt.
              # vsi['orderDetails']['virtualGuests'] will be an array of created Guests
              print vsi
          """
          tags = guest_object.pop('tags', None)
          template = self.verify_create_instance(**guest_object)
  
          if guest_object.get('ipv6'):
              ipv6_price = self.ordering_manager.get_price_id_list('PUBLIC_CLOUD_SERVER', ['1_IPV6_ADDRESS'])
              template['prices'].append({'id': ipv6_price[0]})
  
          # Notice this is `userdata` from the cli, but we send it in as `userData`
          if guest_object.get('userdata'):
              # SL_Virtual_Guest::generateOrderTemplate() doesn't respect userData, so we need to add it ourself
              template['virtualGuests'][0]['userData'] = [{"value": guest_object.get('userdata')}]
          if guest_object.get('host_id'):
              template['hostId'] = guest_object.get('host_id')
          if guest_object.get('placement_id'):
              template['virtualGuests'][0]['placementGroupId'] = guest_object.get('placement_id')
  
          if test:
              result = self.client.call('Product_Order', 'verifyOrder', template)
          else:
              result = self.client.call('Product_Order', 'placeOrder', template)
              if tags is not None:
                  virtual_guests = utils.lookup(result, 'orderDetails', 'virtualGuests')
                  for guest in virtual_guests:
                      self.set_tags(tags, guest_id=guest['id'])
          return result