nodes: 0, module; 1, function_definition; 2, function_name:satellites_list; 3, parameters; 4, block; 5, identifier:self; 6, default_parameter; 7, expression_statement; 8, with_statement; 9, identifier:daemon_type; 10, string; 11, comment:"""Get the arbiter satellite names sorted by type
  
          Returns a list of the satellites as in:
          {
              reactionner: [
                  "reactionner-master"
              ],
              broker: [
                  "broker-master"
              ],
              arbiter: [
                  "arbiter-master"
              ],
              scheduler: [
                  "scheduler-master-3",
                  "scheduler-master",
                  "scheduler-master-2"
              ],
              receiver: [
                  "receiver-nsca",
                  "receiver-master"
              ],
              poller: [
                  "poller-master"
              ]
          }
  
          If a specific daemon type is requested, the list is reduced to this unique daemon type:
          {
              scheduler: [
                  "scheduler-master-3",
                  "scheduler-master",
                  "scheduler-master-2"
              ]
          }
  
          :param daemon_type: daemon type to filter
          :type daemon_type: str
          :return: dict with key *daemon_type* and value list of daemon name
          :rtype: dict
          """; 12, with_clause; 13, block; 14, with_item; 15, expression_statement; 16, for_statement; 17, return_statement; 18, attribute; 19, assignment; 20, identifier:s_type; 21, list; 22, block; 23, identifier:res; 24, attribute; 25, identifier:conf_lock; 26, identifier:res; 27, dictionary; 28, string; 29, string; 30, string; 31, string; 32, string; 33, string; 34, if_statement; 35, expression_statement; 36, expression_statement; 37, for_statement; 38, identifier:self; 39, identifier:app; 40, string_content:arbiter; 41, string_content:scheduler; 42, string_content:poller; 43, string_content:reactionner; 44, string_content:receiver; 45, string_content:broker; 46, boolean_operator; 47, block; 48, assignment; 49, assignment; 50, identifier:daemon_link; 51, call; 52, block; 53, identifier:daemon_type; 54, comparison_operator:daemon_type != s_type; 55, continue_statement; 56, identifier:satellite_list; 57, list; 58, subscript; 59, identifier:satellite_list; 60, identifier:getattr; 61, argument_list; 62, expression_statement; 63, identifier:daemon_type; 64, identifier:s_type; 65, identifier:res; 66, identifier:s_type; 67, attribute; 68, binary_operator:s_type + 's'; 69, list; 70, call; 71, attribute; 72, identifier:conf; 73, identifier:s_type; 74, string; 75, attribute; 76, argument_list; 77, identifier:self; 78, identifier:app; 79, string_content:s; 80, identifier:satellite_list; 81, identifier:append; 82, attribute; 83, identifier:daemon_link; 84, identifier:name
code: def satellites_list(self, daemon_type=''):
          """Get the arbiter satellite names sorted by type
  
          Returns a list of the satellites as in:
          {
              reactionner: [
                  "reactionner-master"
              ],
              broker: [
                  "broker-master"
              ],
              arbiter: [
                  "arbiter-master"
              ],
              scheduler: [
                  "scheduler-master-3",
                  "scheduler-master",
                  "scheduler-master-2"
              ],
              receiver: [
                  "receiver-nsca",
                  "receiver-master"
              ],
              poller: [
                  "poller-master"
              ]
          }
  
          If a specific daemon type is requested, the list is reduced to this unique daemon type:
          {
              scheduler: [
                  "scheduler-master-3",
                  "scheduler-master",
                  "scheduler-master-2"
              ]
          }
  
          :param daemon_type: daemon type to filter
          :type daemon_type: str
          :return: dict with key *daemon_type* and value list of daemon name
          :rtype: dict
          """
          with self.app.conf_lock:
              res = {}
  
              for s_type in ['arbiter', 'scheduler', 'poller', 'reactionner', 'receiver', 'broker']:
                  if daemon_type and daemon_type != s_type:
                      continue
                  satellite_list = []
                  res[s_type] = satellite_list
                  for daemon_link in getattr(self.app.conf, s_type + 's', []):
                      satellite_list.append(daemon_link.name)
              return res