Guest User

Untitled

a guest
Jun 12th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings;
  4.  
  5. use Data::Dumper;
  6. use Furl;
  7. use JSON;
  8. use Parallel::Prefork;
  9.  
  10. my $data_api_url = $ARGV[0];
  11. my $username = $ARGV[1];
  12. my $password = $ARGV[2];
  13.  
  14. unless ( $data_api_url && $username && $password ) {
  15. print
  16. "[usage]: perl create_entries.pl [Data API url] [username] [password]";
  17. exit 1;
  18. }
  19.  
  20. my $access_token;
  21. {
  22. my $furl = Furl->new;
  23.  
  24. my $res_auth = $furl->post(
  25. "$data_api_url/v2/authentication",
  26. undef,
  27. [ username => $username,
  28. password => $password,
  29. clientId => 'perl',
  30. ],
  31. );
  32.  
  33. die 'authentication failed: ' . $res_auth->body
  34. unless $res_auth->is_success;
  35.  
  36. $access_token = decode_json( $res_auth->body )->{accessToken}
  37. or die 'no accessToken';
  38. }
  39.  
  40. my $pm = Parallel::Prefork->new(
  41. { max_workers => 10,
  42. trap_signals => {
  43. TERM => 'TERM',
  44. HUP => 'TERM',
  45. USR1 => undef,
  46. }
  47. }
  48. );
  49.  
  50. my $parent_pid = $$;
  51.  
  52. while ( $pm->signal_received ne 'TERM' ) {
  53. $pm->start(
  54. sub {
  55. my $res_create_entry = Furl->new->post(
  56. "$data_api_url/v3/sites/1/entries",
  57. [ 'X-MT-Authorization' =>
  58. qq{MTAuth accessToken="$access_token"},
  59. ],
  60. [ entry => '{}', ],
  61. );
  62.  
  63. unless ( $res_create_entry->is_success ) {
  64. print 'creating entry failed: '
  65. . $res_create_entry->body . "\n";
  66. kill 'TERM', $parent_pid;
  67. return;
  68. }
  69.  
  70. print Dumper( $res_create_entry->body ) . "\n";
  71. }
  72. );
  73. }
  74.  
  75. $pm->wait_all_children();
Add Comment
Please, Sign In to add comment