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/