code: def recipe_status(self, kitchen, recipe, local_dir=None):
          
          rc = DKReturnCode()
          if kitchen is None or isinstance(kitchen, basestring) is False:
              rc.set(rc.DK_FAIL, 'issue with kitchen parameter')
              return rc
          if recipe is None or isinstance(recipe, basestring) is False:
              rc.set(rc.DK_FAIL, 'issue with recipe parameter')
              return rc
          url = '%s/v2/recipe/tree/%s/%s' % (self.get_url_for_direct_rest_call(),
                                             kitchen, recipe)
          try:
              response = requests.get(url, headers=self._get_common_headers())
              rdict = self._get_json(response)
              pass
          except (RequestException, ValueError, TypeError), c:
              s = "get_recipe: exception: %s" % str(c)
              rc.set(rc.DK_FAIL, s)
              return rc
          if DKCloudAPI._valid_response(response):
              # Now get the local sha.
              if local_dir is None:
                  check_path = os.getcwd()
              else:
                  if os.path.isdir(local_dir) is False:
                      print 'Local path %s does not exist' % local_dir
                      return None
                  else:
                      check_path = local_dir
              local_sha = get_directory_sha(check_path)
              remote_sha = rdict['recipes'][recipe]
              rv = compare_sha(remote_sha, local_sha)
              rc.set(rc.DK_SUCCESS, None, rv)
          else:
              arc = DKAPIReturnCode(rdict, response)
              rc.set(rc.DK_FAIL, arc.get_message())
          return rc
docs: gets the status of a recipe
          :param self: DKCloudAPI
          :param kitchen: string
          :param recipe: string
          :param local_dir: string --
          :rtype: dict