fetch package details on ubuntu

This commit is contained in:
Usman Nasir
2020-05-04 00:52:34 +05:00
parent 27f43468f5
commit ef663f0be5
4 changed files with 95 additions and 24 deletions

View File

@@ -836,15 +836,9 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) {
}; };
$scope.fetchPackages('upgrade'); $scope.fetchPackages('upgrade');
$scope.killProcess = function (pid) { $scope.fetchPackageDetails = function (package) {
$scope.cyberpanelLoading = false;
$scope.cyberPanelLoading = false; $scope.package = package;
url = "/serverstatus/killProcess";
var data = {
pid: pid
};
var config = { var config = {
headers: { headers: {
@@ -852,30 +846,28 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) {
} }
}; };
var data = {
package: package
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas); dataurl = "/serverstatus/fetchPackageDetails";
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialDatas(response) { function ListInitialData(response) {
$scope.cyberPanelLoading = true; $scope.cyberpanelLoading = true;
if (response.data.status === 1) { if (response.data.status === 1) {
new PNotify({ $scope.packageDetails = response.data.packageDetails;
title: 'Success',
text: 'Process successfully killed.',
type: 'success'
});
} else { } else {
new PNotify({ new PNotify({
title: 'Operation Failed!', title: 'Error!',
text: response.data.error_message, text: response.data.error_message,
type: 'error' type: 'error'
}); });
} }
} }
function cantLoadInitialData(response) {
function cantLoadInitialDatas(response) { $scope.cyberpanelLoading = true;
$scope.cyberPanelLoading = true;
new PNotify({ new PNotify({
title: 'Operation Failed!', title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page', text: 'Could not connect to server, please refresh this page',
@@ -883,6 +875,7 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) {
}); });
} }
}; };
}); });

View File

@@ -22,7 +22,8 @@
<div class="example-box-wrapper"> <div class="example-box-wrapper">
<ul class="nav-responsive nav nav-tabs"> <ul class="nav-responsive nav nav-tabs">
<li class="active"><a ng-click="fetchPackages('upgrade')" href="#tab4" data-toggle="tab">Updates</a></li> <li class="active"><a ng-click="fetchPackages('upgrade')" href="#tab4"
data-toggle="tab">Updates</a></li>
<li><a ng-click="fetchPackages()" href="#tab6" data-toggle="tab">All Packages</a></li> <li><a ng-click="fetchPackages()" href="#tab6" data-toggle="tab">All Packages</a></li>
<li><a href="#tab7" data-toggle="tab">Settings</a></li> <li><a href="#tab7" data-toggle="tab">Settings</a></li>
<img ng-hide="cyberpanelLoading" <img ng-hide="cyberpanelLoading"
@@ -70,7 +71,56 @@
<td ng-bind="record.package"></td> <td ng-bind="record.package"></td>
<td ng-bind="record.version"></td> <td ng-bind="record.version"></td>
<td ng-bind="record.upgrade"></td> <td ng-bind="record.upgrade"></td>
<td><a style="float: left ; margin-bottom: 2%" <td>
<a data-toggle="modal" data-target="#packageDetails"
ng-click="fetchPackageDetails(record.package)"
class="btn btn-border btn-alt border-blue-alt btn-link font-blue-alt"
href="#"
title=""><span>Details</span></a>
<div id="packageDetails" class="modal fade" role="dialog">
<div class="modal-dialog modal-lg">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal">
&times;
</button>
<h4 class="modal-title">Package {$ package $}
details.
<img ng-hide="cyberpanelLoading"
src="{% static 'images/loading.gif' %}">
</h4>
</div>
<div class="modal-body">
<div class="form-group">
<div class="col-sm-12">
<div class="col-sm-12">
<textarea ng-model="packageDetails"
class="form-control"
rows="12"></textarea>
</div>
</div>
</div>
<table class="table">
</table>
</div>
<div class="modal-footer">
<button type="button"
ng-disabled="savingSettings"
class="btn btn-default"
data-dismiss="modal">
Close
</button>
</div>
</div>
</div>
</div>
<a style="margin-left: 1%"
class="btn btn-border btn-alt border-azure btn-link font-azure" class="btn btn-border btn-alt border-azure btn-link font-azure"
href="#" href="#"
title=""><span>Upgrade</span></a></td> title=""><span>Upgrade</span></a></td>

View File

@@ -20,5 +20,6 @@ urlpatterns = [
url(r'^killProcess$', views.killProcess, name='killProcess'), url(r'^killProcess$', views.killProcess, name='killProcess'),
url(r'^packageManager$', views.packageManager, name='packageManager'), url(r'^packageManager$', views.packageManager, name='packageManager'),
url(r'^fetchPackages$', views.fetchPackages, name='fetchPackages'), url(r'^fetchPackages$', views.fetchPackages, name='fetchPackages'),
url(r'^fetchPackageDetails$', views.fetchPackageDetails, name='fetchPackageDetails'),
] ]

View File

@@ -794,3 +794,30 @@ def fetchPackages(request):
data_ret = {'status': 0, 'error_message': str(msg)} data_ret = {'status': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)
return HttpResponse(json_data) return HttpResponse(json_data)
def fetchPackageDetails(request):
try:
userID = request.session['userID']
currentACL = ACLManager.loadedACL(userID)
if currentACL['admin'] == 1:
pass
else:
return ACLManager.loadError()
data = json.loads(request.body)
package = data['package']
if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu:
command = 'apt-cache show %s' % (package)
packageDetails = ProcessUtilities.outputExecutioner(command)
data_ret = {'status': 1, 'packageDetails': packageDetails}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)
except BaseException as msg:
data_ret = {'status': 0, 'error_message': str(msg)}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)