nodes: 0, module; 1, function_definition; 2, function_name:actionnames; 3, parameters; 4, block; 5, identifier:self; 6, expression_statement; 7, expression_statement; 8, for_statement; 9, return_statement; 10, comment:"""
          Returns a alphabetical sorted list of tuples with all known
          service- and action-names.
          """; 11, assignment; 12, identifier:service_name; 13, call; 14, block; 15, identifier:actions; 16, identifier:actions; 17, list; 18, identifier:sorted; 19, argument_list; 20, expression_statement; 21, for_statement; 22, call; 23, assignment; 24, identifier:action_name; 25, call; 26, block; 27, attribute; 28, argument_list; 29, identifier:action_names; 30, call; 31, identifier:sorted; 32, argument_list; 33, expression_statement; 34, attribute; 35, identifier:keys; 36, attribute; 37, argument_list; 38, identifier:action_names; 39, call; 40, identifier:self; 41, identifier:services; 42, attribute; 43, identifier:keys; 44, attribute; 45, argument_list; 46, subscript; 47, identifier:actions; 48, identifier:actions; 49, identifier:append; 50, tuple; 51, attribute; 52, identifier:service_name; 53, identifier:service_name; 54, identifier:action_name; 55, identifier:self; 56, identifier:services
code: def actionnames(self):
          """
          Returns a alphabetical sorted list of tuples with all known
          service- and action-names.
          """
          actions = []
          for service_name in sorted(self.services.keys()):
              action_names = self.services[service_name].actions.keys()
              for action_name in sorted(action_names):
                  actions.append((service_name, action_name))
          return actions