NAME

App::MBUtiny::Collector::Server - MBUtiny collector server

VERSION

Version 1.01

SYNOPSIS

    use CGI;
    use App::MBUtiny::Collector::Server "/mbutiny";

    my $q = new CGI;
    my $server = new App::MBUtiny::Collector::Server(
        project => "MBUtiny",
        ident   => "mbutiny",
        log     => "on",
        logfd   => fileno(STDERR),
    );
    $server->status or die($server->error);
    print $server->call($q->request_method, $q->request_uri, $q)
      or die($server->error);

DESCRIPTION

MBUtiny collector server

This class provides WWW::MLite REST server methods for MBUtiny collector

See collector.cgi.sample file for example

METHODS

WWW::MLite methods

GET /mbutiny

    curl -v --raw http://localhost/mbutiny

    > GET /mbutiny HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.62.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Date: Wed, 19 Jun 2019 10:57:31 GMT
    < Server: Apache/2.2.25 (Win32) mod_ssl/2.2.25 OpenSSL/0.9.8y mod_perl/2.0.8 Perl/v5.16.3
    < Connection: close
    < Content-Length: 214
    < Content-Type: application/json; charset=utf-8
    <
    {
       "dsn" : "dbi:SQLite:dbname=/var/lib/mbutiny/mbutiny.db",
       "status" : 1,
       "name" : "check",
       "error" : "",
       "method" : "GET",
       "path" : "/mbutiny",
       "description" : "Check collectors"
    }

    curl -v --raw http://localhost/mbutiny/foo

    > GET /mbutiny/foo HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.58.0
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Date: Sat, 22 Jun 2019 10:29:26 GMT
    < Server: Apache/2.4.29 (Ubuntu)
    < Connection: close
    < Content-Length: 556
    < Content-Type: application/json; charset=utf-8
    <
    {
       "name" : "foo",
       "error" : "",
       "file" : null,
       "status" : 1,
       "time" : 0.0073,
       "info" : {
          "comment" : "Local storages...",
          "sha1" : "4200f422b425967ca2cb278cf311edeb74ecdde1",
          "addr" : "127.0.0.1",
          "file" : "foo-2019-06-22.tar.gz",
          "type" : 1,
          "status" : 1,
          "time" : 1561194766,
          "md5" : "008413f90584f4af5d5a49c7c0ec64c2",
          "id" : 13,
          "size" : 501,
          "name" : "foo",
          "error" : ""
       }
    }

GET /mbutiny/list

    curl -v --raw http://localhost/mbutiny/list?name=foo

    > GET /mbutiny/list HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.50.1
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Date: Fri, 31 May 2019 05:41:34 GMT
    < Server: Apache/2.4.18 (Ubuntu)
    < Connection: close
    < Content-Length: 16
    < Content-Type: text/plain
    <
    {
       "time" : 0.0012,
       "list" : [...],
       "status" : 1,
       "error" : ""
    }

GET /mbutiny/report

    curl -v --raw http://localhost/mbutiny/report?start=1561799700

    > GET /mbutiny/report HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.50.1
    > Accept: */*
    >
    < HTTP/1.1 200 OK
    < Date: Fri, 31 May 2019 05:41:34 GMT
    < Server: Apache/2.4.18 (Ubuntu)
    < Connection: close
    < Content-Length: 16
    < Content-Type: text/plain
    <
    {
       "time" : 0.0012,
       "report" : [...],
       "status" : 1,
       "error" : ""
    }

POST /mbutiny

    curl -v -d '{ "type": 1, "name": "foo", "file": "foo", "size": 501, "md5": "3a5fb8a1e0564eed5a6f5c4389ec5fa0", "sha1": "22d12324fa2256e275761b55d5c063b8d9fc3b95", "status": 1, "error": "", "comment": "Test external fixup!"}' --raw -H "Content-Type: application/json" http://localhost/mbutiny

    > POST /mbutiny HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.50.1
    > Accept: */*
    > Content-Type: application/json
    > Content-Length: 27
    >
    < HTTP/1.1 200 OK
    < Date: Thu, 20 Jun 2019 15:03:34 GMT
    < Server: Apache/2.4.18 (Ubuntu)
    < Connection: close
    < Content-Length: 27
    < Content-Type: text/plain; charset=utf-8
    <

DELETE /mbutiny/NAME

    curl -v --raw -X DELETE http://localhost/mbutiny/NAME?file=name&type=1

    > DELETE /mbutiny/NAME?file=name HTTP/1.1
    > Host: localhost
    > User-Agent: curl/7.58.0
    > Accept: */*
    >
    < HTTP/1.1 204 No Content
    < Date: Fri, 21 Jun 2019 21:40:36 GMT
    < Server: Apache/2.4.29 (Ubuntu)
    < Connection: close
    < Content-Type: text/plain
    <

INTERNAL METHODS

again

The CTK method for classes extension

See "again" in CTK

dbi

Returns App::MBUtiny::Collector::DBI object

middleware

The WWW::MLite method for input data preparing

response

The WWW::MLite method for output data preparing

serializer

Returns current serializer object

See CTK::Serializer

HISTORY

See Changes file

TO DO

See TODO file

SEE ALSO

App::MBUtiny, WWW::MLite, App::MBUtiny::Collector::DBI

AUTHOR

Serż Minus (Sergey Lepenkov) http://www.serzik.com <abalama@cpan.org>

COPYRIGHT

Copyright (C) 1998-2019 D&D Corporation. All Rights Reserved

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See LICENSE file and https://dev.perl.org/licenses/