diff --git a/xCAT-server/lib/xcat/plugins/web.pm b/xCAT-server/lib/xcat/plugins/web.pm index f8869fe84..3932b2756 100644 --- a/xCAT-server/lib/xcat/plugins/web.pm +++ b/xCAT-server/lib/xcat/plugins/web.pm @@ -47,7 +47,8 @@ sub process_request { 'monls' => \&web_monls, 'discover' => \&web_discover, 'updatevpd' => \&web_updatevpd, - 'createimage' => \&web_createimage + 'createimage' => \&web_createimage, + 'queryrepoloc' => \&web_queryrepoloc ); #check whether the request is authorized or not @@ -493,6 +494,37 @@ sub web_gangliacheck() { return; } +sub web_queryrepoloc() { + my ( $request, $callback, $sub_req ) = @_; + + # Get repository type + my $os = xCAT::Utils->osver(); + + # Get repository name + my $name = $request->{arg}->[1]; + + # Get location of repository + my $loc; + if ($os =~ /rh/) { + # Red Hat + $loc = `cat /etc/yum.repos.d/$name.repo | grep "baseurl"`; + } elsif ($os =~ /sles11/) { + # SUSE + $loc = `cat /etc/zypp/repos.d/$name.repo | grep "baseurl"`; + } else { + $loc = ''; + } + + $loc =~ s/baseurl=//g; + + # Trim right and left + $loc =~ s/\s*$//; + $loc =~ s/^\s*//; + + $callback->( { info => $loc } ); + return; +} + sub web_rmcmonStart { my ( $request, $callback, $sub_req ) = @_; my $nodeRange = $request->{arg}->[1];