code: def upload(self, engine, timeout=5, wait_for_finish=False, **kw):
          
          return Task.execute(self, 'upload', params={'filter': engine},
              timeout=timeout, wait_for_finish=wait_for_finish, **kw)
docs: Upload policy to specific device. Using wait for finish
          returns a poller thread for monitoring progress::
  
              policy = FirewallPolicy('_NSX_Master_Default')
              poller = policy.upload('myfirewall', wait_for_finish=True)
              while not poller.done():
                  poller.wait(3)
                  print(poller.task.progress)
              print("Task finished: %s" % poller.message())
  
          :param str engine: name of device to upload policy to
          :raises: TaskRunFailed
          :return: TaskOperationPoller