apache plugin: Remove legacy code.
authorFlorian Forster <octo@huhu.verplant.org>
Mon, 27 Sep 2010 09:45:01 +0000 (11:45 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Mon, 27 Sep 2010 09:45:01 +0000 (11:45 +0200)
Configurations without an "<Instance />" block are not supported
anymore. The documentation and default config have been adapted.

src/apache.c
src/collectd.conf.in
src/collectd.conf.pod

index 80c66bf..506ba84 100644 (file)
@@ -1,6 +1,6 @@
 /**
  * collectd - src/apache.c
- * Copyright (C) 2006-2009  Florian octo Forster
+ * Copyright (C) 2006-2010  Florian octo Forster
  * Copyright (C) 2007       Florent EppO Monbillard
  * Copyright (C) 2009       Amit Gupta
  *
@@ -335,57 +335,22 @@ static int config (oconfig_item_t *ci)
 {
        int status = 0;
        int i;
-       oconfig_item_t *lci = NULL; /* legacy config */
 
        for (i = 0; i < ci->children_num; i++)
        {
                oconfig_item_t *child = ci->children + i;
 
-               if (strcasecmp ("Instance", child->key) == 0 && child->children_num > 0)
+               if (strcasecmp ("Instance", child->key) == 0)
                        config_add (child);
                else
-               {
-                       /* legacy mode - convert to <Instance ...> config */
-                       if (lci == NULL)
-                       {
-                               lci = malloc (sizeof(*lci));
-                               if (lci == NULL)
-                               {
-                                       ERROR ("apache plugin: malloc failed.");
-                                       return (-1);
-                               }
-                               memset (lci, '\0', sizeof (*lci));
-                       }
-
-                       lci->children_num++;
-                       lci->children =
-                               realloc (lci->children,
-                                        lci->children_num * sizeof (*child));
-                       if (lci->children == NULL)
-                       {
-                               ERROR ("apache plugin: realloc failed.");
-                               return (-1);
-                       }
-                       memcpy (&lci->children[lci->children_num-1], child, sizeof (*child));
-               }
+                       WARNING ("apache plugin: The configuration option "
+                                       "\"%s\" is not allowed here. Did you "
+                                       "forget to add an <Instance /> block "
+                                       "around the configuration?",
+                                       child->key);
        } /* for (ci->children) */
 
-       if (lci)
-       {
-               /* create a <Instance ""> entry */
-               lci->key = "Instance";
-               lci->values_num = 1;
-               lci->values = (oconfig_value_t *) malloc (lci->values_num * sizeof (oconfig_value_t));
-               lci->values[0].type = OCONFIG_TYPE_STRING;
-               lci->values[0].value.string = "";
-
-               status = config_add (lci);
-               sfree (lci->values);
-               sfree (lci->children);
-               sfree (lci);
-       }
-
-       return status;
+       return (status);
 } /* int config */
 
 /* initialize curl for each host */
index cc125dd..12cec75 100644 (file)
 ##############################################################################
 
 #<Plugin apache>
-#      URL "http://localhost/status?auto"
-#      User "www-user"
-#      Password "secret"
-#      CACert "/etc/ssl/ca.crt"
+#  <Instance "local">
+#    URL "http://localhost/status?auto"
+#    User "www-user"
+#    Password "secret"
+#    CACert "/etc/ssl/ca.crt"
+#  </Instance>
 #</Plugin>
 
 #<Plugin apcups>
index af07cdf..4b7a2e3 100644 (file)
@@ -199,7 +199,25 @@ Since its C<mod_status> module is very similar to Apache's, B<lighttpd> is
 also supported. It introduces a new field, called C<BusyServers>, to count the
 number of currently connected clients. This field is also supported.
 
-The following options are accepted by the C<apache>-plugin:
+The configuration of the I<Apache> plugin consists of one or more
+C<E<lt>InstanceE<nbsp>/E<gt>> blocks. Each block requires one string argument
+as the instance name. For example:
+
+ <Plugin "apache">
+   <Instance "www1">
+     URL "http://www1.example.com/mod_status?auto"
+   </Instance>
+   <Instance "www2">
+     URL "http://www2.example.com/mod_status?auto"
+   </Instance>
+ </Plugin>
+
+The instance name will be used as the I<plugin instance>. To emulate the old
+(versionE<nbsp>4) behavior, you can use an empty string (""). In order for the
+plugin to work correctly, each instance name must be unique. This is not
+enforced by the plugin and it is your responsibility to ensure it.
+
+The following options are accepted within each I<Instance> block:
 
 =over 4
 
@@ -207,7 +225,7 @@ The following options are accepted by the C<apache>-plugin:
 
 Sets the URL of the C<mod_status> output. This needs to be the output generated
 by C<ExtendedStatus on> and it needs to be the machine readable output
-generated by appending the C<?auto> argument.
+generated by appending the C<?auto> argument. This option is I<mandatory>.
 
 =item B<User> I<Username>