]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/protected/API/Pages/API/Volume.php
baculum: API endpoints code refactor
[bacula/bacula] / gui / baculum / protected / API / Pages / API / Volume.php
1 <?php
2 /*
3  * Bacula(R) - The Network Backup Solution
4  * Baculum   - Bacula web interface
5  *
6  * Copyright (C) 2013-2017 Kern Sibbald
7  *
8  * The main author of Baculum is Marcin Haba.
9  * The original author of Bacula is Kern Sibbald, with contributions
10  * from many others, a complete list can be found in the file AUTHORS.
11  *
12  * You may use this file and others of this release according to the
13  * license defined in the LICENSE file, which includes the Affero General
14  * Public License, v3.0 ("AGPLv3") and some additional permissions and
15  * terms pursuant to its AGPLv3 Section 7.
16  *
17  * This notice must be preserved when any source code is
18  * conveyed and/or propagated.
19  *
20  * Bacula(R) is a registered trademark of Kern Sibbald.
21  */
22  
23 class Volume extends BaculumAPIServer {
24         public function get() {
25                 $mediaid = $this->Request->contains('id') ? intval($this->Request['id']) : 0;
26                 $volume = $this->getModule('volume')->getVolumeById($mediaid);
27                 if(is_object($volume)) {
28                         $this->output = $volume;
29                         $this->error = VolumeError::ERROR_NO_ERRORS;
30                 } else {
31                         $this->output = VolumeError::MSG_ERROR_VOLUME_DOES_NOT_EXISTS;
32                         $this->error = VolumeError::ERROR_VOLUME_DOES_NOT_EXISTS;
33                 }
34         }
35         
36         public function set($id, $params) {
37                 $volume = $this->getModule('volume')->getVolumeById($id);
38                 if (is_object($volume)) {
39                         $misc = $this->getModule('misc');
40                         $cmd = array('update', 'volume="' . $volume->volumename . '"');
41                         if(property_exists($params, 'volstatus') && $misc->isValidState($params->volstatus)) {
42                                 $cmd[] = 'volstatus="' . $params->volstatus . '"';
43                         }
44                         if(property_exists($params, 'poolid') && $misc->isValidId($params->poolid)) {
45                                 $pool = $this->getModule('pool')->getPoolById($params->poolid);
46                                 if (is_object($pool)) {
47                                         $cmd[] = 'pool="' . $pool->name . '"';
48                                 }
49                         }
50                         if(property_exists($params, 'volretention') && $misc->isValidNumber($params->volretention)) {
51                                 $cmd[] = 'volretention="' . $params->volretention . '"';
52                         }
53                         if(property_exists($params, 'voluseduration') && $misc->isValidNumber($params->voluseduration)) {
54                                 $cmd[] = 'voluseduration="' . $params->voluseduration . '"';
55                         }
56                         if(property_exists($params, 'maxvoljobs') && $misc->isValidNumber($params->maxvoljobs)) {
57                                 $cmd[] = 'maxvoljobs="' . $params->maxvoljobs . '"';
58                         }
59                         if(property_exists($params, 'maxvolfiles') && $misc->isValidNumber($params->maxvolfiles)) {
60                                 $cmd[] = 'maxvolfiles="' . $params->maxvolfiles . '"';
61                         }
62                         if(property_exists($params, 'maxvolbytes') && $misc->isValidNumber($params->maxvolbytes)) {
63                                 $cmd[] = 'maxvolbytes="' . $params->maxvolbytes . '"';
64                         }
65                         if(property_exists($params, 'slot') && $misc->isValidNumber($params->slot)) {
66                                 $cmd[] = 'slot="' . $params->slot . '"';
67                         }
68                         if(property_exists($params, 'recycle') && $misc->isValidBoolean($params->recycle)) {
69                                 $cmd[] = 'recycle="' . ($params->recycle ? 'yes' : 'no') . '"';
70                         }
71                         if(property_exists($params, 'enabled') && $misc->isValidBoolean($params->enabled)) {
72                                 $cmd[] = 'enabled="' . ($params->enabled ? 'yes' : 'no') . '"';
73                         }
74                         if(property_exists($params, 'inchanger') && $misc->isValidBoolean($params->inchanger)) {
75                                 $cmd[] = 'inchanger="' . ($params->inchanger ? 'yes' : 'no') . '"';
76                         }
77                         $result = $this->getModule('bconsole')->bconsoleCommand($this->director, $cmd);
78                         $this->output = $result->output;
79                         $this->error = $result->exitcode;
80                 } else {
81                         $this->output = VolumeError::MSG_ERROR_VOLUME_DOES_NOT_EXISTS;
82                         $this->error = VolumeError::ERROR_VOLUME_DOES_NOT_EXISTS;
83                 }
84         }
85 }
86
87 ?>