Commit 05eeb3ecc9cbc8c6956eef53ed10511abe31ad07

Authored by Athos
1 parent 76869fe5
Exists in master

refactor copr_info

Showing 2 changed files with 24 additions and 19 deletions   Show diff stats
lib/CoprStatus.pm
... ... @@ -4,6 +4,7 @@ use warnings;
4 4 use JSON;
5 5 use Text::Template;
6 6 use LWP::UserAgent;
  7 +use LWP::Simple;
7 8  
8 9 $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
9 10  
... ... @@ -24,27 +25,12 @@ sub git_url {
24 25 return "$domain/$spec_path";
25 26 }
26 27  
27   -sub copr_info {
28   - my ( $user, $repo, $branch ) = @_;
29   -
  28 +sub get_specs {
30 29 my $ua = LWP::UserAgent->new;
31 30 $ua->timeout(300);
32 31 $ua->env_proxy;
33 32 $ua->ssl_opts(SSL_verify_mode => 0x00);
34   -
35   - my $result = $ua->get(copr_monitor_url($user, $repo));
36   -
37   - my $json = JSON->new->allow_nonref;
38   -
39   - my $dec_result = $json->decode($result->decoded_content);
40   -
41   - foreach(@{$dec_result->{'packages'}}) {
42   - my $package = $_->{'pkg_name'};
43   - my $status = $_->{'results'}{'epel-7-x86_64'}{'status'};
44   - my $version = $_->{'results'}{'epel-7-x86_64'}{'pkg_version'};
45   - $info->{$package}->{$repo."_version"} = $version if $status eq "succeeded";
46   - }
47   -
  33 + my ( $branch ) = @_;
48 34 foreach my $package (keys %{$info}) {
49 35 my $git_url = git_url('http://softwarepublico.gov.br',
50 36 'gitlab/softwarepublico/softwarepublico/raw/<branch>/src/pkg-rpm/<package>/<package>.spec',
... ... @@ -60,9 +46,28 @@ sub copr_info {
60 46 $version = "$version-$release";
61 47 $info->{$package}->{'git_version_'.$branch} = $version;
62 48 }
  49 +}
  50 +
  51 +sub get_copr_versions {
  52 + my ( $user, $repo ) = @_;
  53 + my $result = get(copr_monitor_url($user, $repo));
  54 + my $json = JSON->new->allow_nonref;
  55 + my $dec_result = $json->decode($result);
  56 + foreach(@{$dec_result->{'packages'}}) {
  57 + my $package = $_->{'pkg_name'};
  58 + my $status = $_->{'results'}{'epel-7-x86_64'}{'status'};
  59 + my $version = $_->{'results'}{'epel-7-x86_64'}{'pkg_version'};
  60 + $info->{$package}->{$repo."_version"} = $version if $status eq "succeeded";
  61 + }
63 62  
64 63 }
65 64  
  65 +sub copr_info {
  66 + my ( $user, $repo, $branch ) = @_;
  67 + get_copr_versions($user, $repo);
  68 + get_specs($branch);
  69 +}
  70 +
66 71 sub compare_versions {
67 72 copr_info('softwarepublico', 'v4', 'stable-4.1');
68 73 copr_info('softwarepublico', 'v5', 'master');
... ...
t/app.t
... ... @@ -4,8 +4,8 @@ use Test::More;
4 4  
5 5 BEGIN { use_ok('CoprStatus'); }
6 6  
7   -CoprStatus::copr_info('softwarepubico', 'v4', 'stable-4.1');
8   -CoprStatus::copr_info('softwarepubico', 'v5', 'master');
  7 +CoprStatus::copr_info('softwarepublico', 'v4', 'stable-4.1');
  8 +CoprStatus::copr_info('softwarepublico', 'v5', 'master');
9 9  
10 10 my $info = $CoprStatus::info;
11 11  
... ...