757534c3d0e2bae94062bb6c39657e4fc884c252
1 <?php
3 class newConfigManagement extends plugin
4 {
5 var $initTime;
6 var $plHeadline = "Config management";
7 var $plDescription = "Config management";
9 var $installationMethods = array();
11 var $selectedDistribution;
13 function __construct($config, $dn)
14 {
15 $this->config = &$config;
16 $this->listing = new ConfigManagementListing($this->config, get_userinfo());
17 $this->dataModel = new ConfigManagementDataModel();
19 // Load distributions
20 $rpc = $this->config->getRpcHandle();
21 $res = $rpc->getDistributions();
22 if(!$rpc->success()){
23 msg_dialog::display(_("Error"), sprintf(_("Failed to load distributions, error was '%s'!"), $rpc->get_error()),ERROR_DIALOG);
24 return(NULL);
25 }
26 foreach($res as $dist){
27 $this->dataModel->addItem('Distribution','/root', $dist);
29 // Load the releases for the current distribution
30 $releases = $rpc->getReleases($dist);
31 if(!$rpc->success()){
32 msg_dialog::display(_("Error"), sprintf(_("Failed to load releases, error was '%s'!"), $rpc->get_error()),ERROR_DIALOG);
33 return(NULL);
34 }
35 foreach($releases as $release){
36 $this->dataModel->addItem('Release',"/root/{$dist}", $release);
38 // Load packages
39 $packages = $rpc->getPackages($release);
40 if(!$rpc->success()){
41 msg_dialog::display(_("Error"), sprintf(_("Failed to load packages, error was '%s'!"), $rpc->get_error()),ERROR_DIALOG);
42 return(NULL);
43 }
44 foreach($packages as $package){
45 $this->dataModel->addItem('Package',"/root/{$dist}/{$release}", $package['name'], $package);
46 }
47 }
48 }
50 }
52 function save_object()
53 {
54 $this->listing->save_object();
55 $this->selectedDistribution = $this->listing->getSelectedDistribution();
56 $this->selectedRelease = $this->listing->getSelectedRelease();
57 }
60 /*! \brief Intializes this plugin
61 * All available installation methods will be loaded
62 */
63 function loadInstallationMethods()
64 {
65 // Reset erros
66 $this->rpcError = $this->initFailed = FALSE;
68 // Load configuration via rpc.
69 $rpc = $this->config->getRpcHandle();
71 // Populate install methods on success.
72 $res = $rpc->getSupportedInstallMethods();
73 if(!$rpc->success()){
74 $this->rpcError = TRUE;
75 $this->errorMessage = $rpc->get_error();;
76 return;
77 }
78 $this->installationMethods = $res;
79 if(!count($this->installationMethods)){
80 $this->errorMessage = _("No selectable install methods returned!");
81 msg_dialog::display(_("Setup"), $this->errorMessage , ERROR_DIALOG);
82 $this->initFailed = TRUE;
83 return;
84 }
85 }
88 function execute()
89 {
90 $list = $this->dataModel->getItemsByType('Package');
91 $rel = $this->selectedRelease;
92 $displayEntries = array();
93 foreach($list as $entry){
94 if($entry['parentPath'] == $rel){
95 $displayEntries[] = $entry;
96 }
97 }
99 $this->listing->setDistributions($this->getDistList());
100 $this->listing->setReleases($this->getReleaseList());
101 return($this->listing->renderList());
102 }
105 function getReleaseList()
106 {
107 $res = array();
108 $dist = $this->selectedDistribution;
109 $list = $this->dataModel->getItemsByType('Release');
110 foreach($list as $base => $entry){
111 if($entry['parentPath'] != $dist) continue;
112 $res[$entry['path']] = $entry['name'];
113 }
114 return($res);
115 }
118 function getDistList()
119 {
120 $list = $this->dataModel->getItemsByType('Distribution');
121 $res = array('/root/wurst' => 'wurst', '/root/tester' => 'tester');
122 foreach($list as $base => $entry){
123 $res[$entry['path']] = $entry['name'];
124 }
125 return($res);
126 }
129 function remove_lock()
130 {
131 }
133 public static function plInfo()
134 {
135 return (array(
136 "plShortName" => _("Config management"),
137 "plDescription" => _("Config management"),
138 "plSelfModify" => FALSE,
139 "plDepends" => array(),
140 "plPriority" => 0,
141 "plSection" => array("administration"),
142 "plCategory" => array(
143 "newConfigManagement" => array("description" => _("Config management"),
144 "objectClass" => "FAKE_OC_newConfigManagement")),
145 "plProvidedAcls"=> array()
146 ));
147 }
148 }
149 ?>