nodes: 0, module; 1, function_definition; 2, function_name:upcoming_releases; 3, parameters; 4, block; 5, identifier:self; 6, identifier:product; 7, expression_statement; 8, expression_statement; 9, expression_statement; 10, expression_statement; 11, expression_statement; 12, expression_statement; 13, expression_statement; 14, expression_statement; 15, comment:"""
          Get upcoming releases for this product.
  
          Specifically we search for releases with a GA date greater-than or
          equal to today's date.
  
          :param product: str, eg. "ceph"
          :returns: deferred that when fired returns a list of Munch (dict-like)
                    objects representing all releases, sorted by shortname.
          """; 16, assignment; 17, assignment; 18, assignment; 19, assignment; 20, assignment; 21, assignment; 22, call; 23, identifier:url; 24, string; 25, identifier:url; 26, binary_operator:url + '?product__shortname=' + product; 27, identifier:url; 28, binary_operator:url + '&ga_date__gte=' + date.today().strftime('%Y-%m-%d'); 29, identifier:url; 30, binary_operator:url + '&ordering=shortname_sort'; 31, identifier:releases; 32, yield; 33, identifier:result; 34, call; 35, attribute; 36, argument_list; 37, string_content:api/v6/releases/; 38, binary_operator:url + '?product__shortname='; 39, identifier:product; 40, binary_operator:url + '&ga_date__gte='; 41, call; 42, identifier:url; 43, string; 44, call; 45, identifier:munchify; 46, argument_list; 47, identifier:defer; 48, identifier:returnValue; 49, identifier:result; 50, identifier:url; 51, string; 52, identifier:url; 53, string; 54, attribute; 55, argument_list; 56, string_content:&ordering=shortname_sort; 57, attribute; 58, argument_list; 59, identifier:releases; 60, string_content:?product__shortname=; 61, string_content:&ga_date__gte=; 62, call; 63, identifier:strftime; 64, string; 65, identifier:self; 66, identifier:_get; 67, identifier:url; 68, attribute; 69, argument_list; 70, string_content:%Y-%m-%d; 71, identifier:date; 72, identifier:today
code: def upcoming_releases(self, product):
          """
          Get upcoming releases for this product.
  
          Specifically we search for releases with a GA date greater-than or
          equal to today's date.
  
          :param product: str, eg. "ceph"
          :returns: deferred that when fired returns a list of Munch (dict-like)
                    objects representing all releases, sorted by shortname.
          """
          url = 'api/v6/releases/'
          url = url + '?product__shortname=' + product
          url = url + '&ga_date__gte=' + date.today().strftime('%Y-%m-%d')
          url = url + '&ordering=shortname_sort'
          releases = yield self._get(url)
          result = munchify(releases)
          defer.returnValue(result)