int do_direct_query( const char *master_host, int master_port, time_t stoptime ) { static struct nvpair_header *query_headers[4] = { queue_headers, task_headers, worker_headers, master_resource_headers }; static const char * query_strings[4] = {"queue","task","worker", "master_resource"}; struct nvpair_header *query_header = query_headers[query_mode]; const char * query_string = query_strings[query_mode]; struct link *l; struct nvpair *nv; char master_addr[LINK_ADDRESS_MAX]; if(!domain_name_cache_lookup(master_host,master_addr)) { fprintf(stderr,"couldn't find address of %s\n",master_host); return 1; } l = link_connect(master_addr,master_port,stoptime); if(!l) { fprintf(stderr,"couldn't connect to %s port %d: %s\n",master_host,master_port,strerror(errno)); return 1; } link_putfstring(l,"%s_status\n",stoptime,query_string); if(format_mode==FORMAT_TABLE) { nvpair_print_table_header(stdout, query_header); } while((nv = link_nvpair_read(l,stoptime))) { if(format_mode == FORMAT_TABLE) { nvpair_print_table(nv, stdout, query_header); } else { nvpair_print_text(nv, stdout); } nvpair_delete(nv); } if(format_mode == FORMAT_TABLE) { nvpair_print_table_footer(stdout, query_header); } return EXIT_SUCCESS; }
struct nvpair *catalog_query_read(struct catalog_query *q, time_t stoptime) { return link_nvpair_read(q->link,stoptime); }