From 05eeb3ecc9cbc8c6956eef53ed10511abe31ad07 Mon Sep 17 00:00:00 2001 From: Athos Ribeiro Date: Wed, 20 Jan 2016 00:23:03 -0200 Subject: [PATCH] refactor copr_info --- lib/CoprStatus.pm | 39 ++++++++++++++++++++++----------------- t/app.t | 4 ++-- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/lib/CoprStatus.pm b/lib/CoprStatus.pm index 4c32fd8..79263e4 100644 --- a/lib/CoprStatus.pm +++ b/lib/CoprStatus.pm @@ -4,6 +4,7 @@ use warnings; use JSON; use Text::Template; use LWP::UserAgent; +use LWP::Simple; $ENV{'PERL_LWP_SSL_VERIFY_HOSTNAME'} = 0; @@ -24,27 +25,12 @@ sub git_url { return "$domain/$spec_path"; } -sub copr_info { - my ( $user, $repo, $branch ) = @_; - +sub get_specs { my $ua = LWP::UserAgent->new; $ua->timeout(300); $ua->env_proxy; $ua->ssl_opts(SSL_verify_mode => 0x00); - - my $result = $ua->get(copr_monitor_url($user, $repo)); - - my $json = JSON->new->allow_nonref; - - my $dec_result = $json->decode($result->decoded_content); - - foreach(@{$dec_result->{'packages'}}) { - my $package = $_->{'pkg_name'}; - my $status = $_->{'results'}{'epel-7-x86_64'}{'status'}; - my $version = $_->{'results'}{'epel-7-x86_64'}{'pkg_version'}; - $info->{$package}->{$repo."_version"} = $version if $status eq "succeeded"; - } - + my ( $branch ) = @_; foreach my $package (keys %{$info}) { my $git_url = git_url('http://softwarepublico.gov.br', 'gitlab/softwarepublico/softwarepublico/raw//src/pkg-rpm//.spec', @@ -60,9 +46,28 @@ sub copr_info { $version = "$version-$release"; $info->{$package}->{'git_version_'.$branch} = $version; } +} + +sub get_copr_versions { + my ( $user, $repo ) = @_; + my $result = get(copr_monitor_url($user, $repo)); + my $json = JSON->new->allow_nonref; + my $dec_result = $json->decode($result); + foreach(@{$dec_result->{'packages'}}) { + my $package = $_->{'pkg_name'}; + my $status = $_->{'results'}{'epel-7-x86_64'}{'status'}; + my $version = $_->{'results'}{'epel-7-x86_64'}{'pkg_version'}; + $info->{$package}->{$repo."_version"} = $version if $status eq "succeeded"; + } } +sub copr_info { + my ( $user, $repo, $branch ) = @_; + get_copr_versions($user, $repo); + get_specs($branch); +} + sub compare_versions { copr_info('softwarepublico', 'v4', 'stable-4.1'); copr_info('softwarepublico', 'v5', 'master'); diff --git a/t/app.t b/t/app.t index 6f566cd..a81b1d0 100644 --- a/t/app.t +++ b/t/app.t @@ -4,8 +4,8 @@ use Test::More; BEGIN { use_ok('CoprStatus'); } -CoprStatus::copr_info('softwarepubico', 'v4', 'stable-4.1'); -CoprStatus::copr_info('softwarepubico', 'v5', 'master'); +CoprStatus::copr_info('softwarepublico', 'v4', 'stable-4.1'); +CoprStatus::copr_info('softwarepublico', 'v5', 'master'); my $info = $CoprStatus::info; -- libgit2 0.21.2