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,6 +4,7 @@ use warnings;
4 use JSON; 4 use JSON;
5 use Text::Template; 5 use Text::Template;
6 use LWP::UserAgent; 6 use LWP::UserAgent;
  7 +use LWP::Simple;
7 8
8 $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0; 9 $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0;
9 10
@@ -24,27 +25,12 @@ sub git_url { @@ -24,27 +25,12 @@ sub git_url {
24 return "$domain/$spec_path"; 25 return "$domain/$spec_path";
25 } 26 }
26 27
27 -sub copr_info {  
28 - my ( $user, $repo, $branch ) = @_;  
29 - 28 +sub get_specs {
30 my $ua = LWP::UserAgent->new; 29 my $ua = LWP::UserAgent->new;
31 $ua->timeout(300); 30 $ua->timeout(300);
32 $ua->env_proxy; 31 $ua->env_proxy;
33 $ua->ssl_opts(SSL_verify_mode => 0x00); 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 foreach my $package (keys %{$info}) { 34 foreach my $package (keys %{$info}) {
49 my $git_url = git_url('http://softwarepublico.gov.br', 35 my $git_url = git_url('http://softwarepublico.gov.br',
50 'gitlab/softwarepublico/softwarepublico/raw/<branch>/src/pkg-rpm/<package>/<package>.spec', 36 'gitlab/softwarepublico/softwarepublico/raw/<branch>/src/pkg-rpm/<package>/<package>.spec',
@@ -60,9 +46,28 @@ sub copr_info { @@ -60,9 +46,28 @@ sub copr_info {
60 $version = "$version-$release"; 46 $version = "$version-$release";
61 $info->{$package}->{'git_version_'.$branch} = $version; 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 sub compare_versions { 71 sub compare_versions {
67 copr_info('softwarepublico', 'v4', 'stable-4.1'); 72 copr_info('softwarepublico', 'v4', 'stable-4.1');
68 copr_info('softwarepublico', 'v5', 'master'); 73 copr_info('softwarepublico', 'v5', 'master');
@@ -4,8 +4,8 @@ use Test::More; @@ -4,8 +4,8 @@ use Test::More;
4 4
5 BEGIN { use_ok('CoprStatus'); } 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 my $info = $CoprStatus::info; 10 my $info = $CoprStatus::info;
11 11