- rename and install to bin
[oweals/gnunet.git] / src / testbed / gnunet_testbed_ll_master.c
1 /*
2       This file is part of GNUnet
3       (C) 2012 Christian Grothoff (and other contributing authors)
4
5       GNUnet is free software; you can redistribute it and/or modify
6       it under the terms of the GNU General Public License as published
7       by the Free Software Foundation; either version 3, or (at your
8       option) any later version.
9
10       GNUnet is distributed in the hope that it will be useful, but
11       WITHOUT ANY WARRANTY; without even the implied warranty of
12       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13       General Public License for more details.
14
15       You should have received a copy of the GNU General Public License
16       along with GNUnet; see the file COPYING.  If not, write to the
17       Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18       Boston, MA 02111-1307, USA.
19  */
20
21 /**
22  * @file testbed/ll_master.c
23  * @brief The load level master. Creates child processes through LoadLeveler
24  * @author Sree Harsha Totakura <sreeharsha@totakura.in>
25  */
26
27 #include "platform.h"
28 #include "gnunet_util_lib.h"
29 #include <llapi.h>
30
31 /**
32  * LL job information
33  */
34 static struct LL_job job_info;
35
36 /**
37  * Exit status
38  */
39 static int status;
40
41 /**
42  * Main function that will be run.
43  *
44  * @param cls closure
45  * @param args remaining command-line arguments
46  * @param cfgfile name of the configuration file used (for saving, can be NULL!)
47  * @param cfg configuration
48  */
49 static void
50 run (void *cls, char *const *args, const char *cfgfile,
51      const struct GNUNET_CONFIGURATION_Handle *cfg)
52 {
53   int ret;
54
55   if (NULL == args[0])
56   {
57     fprintf (stderr, _("Job command file not given. Exiting\n"));
58     return;
59   }
60   ret = llsubmit (args[0], NULL,        //char *monitor_program,
61                   NULL,         //char *monitor_arg,
62                   &job_info, LL_JOB_VERSION);
63   if (0 != ret)
64     return;
65   status = GNUNET_OK;
66   printf ("Job name: %s\n Submitted to host: %s\n", job_info.job_name,
67           job_info.submit_host);
68 }
69
70
71 /**
72  * Main function
73  *
74  * @param argc the number of command line arguments
75  * @param argv command line arg array
76  * @return return code
77  */
78 int
79 main (int argc, char **argv)
80 {
81   struct GNUNET_GETOPT_CommandLineOption options[] = {
82     GNUNET_GETOPT_OPTION_END
83   };
84   int ret;
85
86   status = GNUNET_SYSERR;
87   ret =
88       GNUNET_PROGRAM_run (argc, argv, "ll-master",
89                           "LoadLeveler master process for starting child processes",
90                           options, &run, NULL);
91   if (GNUNET_OK != ret)
92     return 1;
93   return (GNUNET_OK == status) ? 0 : 1;
94 }