return "$orig ($job_name)";
}
-sub ADSL : Job : MinProcesses(1) : MaxProcesses(5) : Decode(d_json) {
- my ( $self, $job, $workload ) = @_;
- warn "# ADSL ",dump($workload);
- my $dbh = DBI->connect_cached('DBI:Pg:dbname=apkpm','','', {
+sub dbh {
+ DBI->connect_cached('DBI:Pg:dbname=apkpm','','', {
RaiseError => 1,
AutoCommit => 1,
});
+}
- my @c = keys %$workload;
+sub pg_insert {
+ my ( $self, $table, $h ) = @_;
- my $sql = 'INSERT INTO adsl (' . join(',',@c) . ') values (' . join(',', map { '?' } 0 .. $#c) . ')';
+
+ my @c = keys %$h;
+
+ my $sql = "INSERT INTO $table (" . join(',',@c) . ') values (' . join(',', map { '?' } 0 .. $#c) . ')';
warn $sql;
- my $sth = $dbh->prepare($sql);
- $sth->execute( map { $workload->{$_} } @c );
+ my $sth = $self->dbh->prepare($sql);
+ $sth->execute( map { $h->{$_} } @c );
+}
+
+sub ADSL : Job : MinProcesses(1) : MaxProcesses(5) : Decode(d_json) {
+ my ( $self, $job, $workload ) = @_;
+
+ my $h = $workload->{ADSL} || die "no ADSL in ",dump $workload;
+ foreach my $c ( qw(ip username) ) {
+ $h->{$c} = $workload->{$c} || die "no $c in ",dump $workload;
+ }
+
+ warn "# ADSL ", dump $h;
+
+ $self->pg_insert(adsl => $h)
+}
+
+sub ping : Job : MinProcesses(1) : MaxProcesses(5) : Decode(d_json) {
+ my ( $self, $job, $workload ) = @_;
+
+ $self->pg_insert(ping => $workload);
+}
+
+sub sql : Job : MinProcesses(1) : MaxProcesses(5) : Encode(e_json) {
+ my ( $self, $job, $workload ) = @_;
+
+ my $sth = $self->dbh->prepare($workload);
+ my $rows = $sth->execute;
+
+ warn "# $rows rows get_username_table $workload\n";
+
+ return {
+ columns => $sth->{NAME},
+ rows => $sth->fetchall_arrayref,
+ };
}
1;