code: def sync(self, command, arguments, tags=None, id=None):
          
          response = self.raw(command, arguments, tags=tags, id=id)
  
          result = response.get()
          if result.state != 'SUCCESS':
              raise ResultError(msg='%s' % result.data, code=result.code)
  
  
          return result
docs: Same as self.raw except it do a response.get() waiting for the command execution to finish and reads the result
          :param command: Command name to execute supported by the node (ex: core.system, info.cpu, etc...)
                          check documentation for list of built in commands
          :param arguments: A dict of required command arguments depends on the command name.
          :param tags: job tags
          :param id: job id. Generated if not supplied
          :return: Result object