|
35 | 35 |
|
36 | 36 | log = logging.getLogger(__name__) |
37 | 37 |
|
| 38 | +FILE_TYPES = { |
| 39 | + "ldap_cfg": 1, |
| 40 | + "ldap_ca": 2, |
| 41 | + "virus_cfg": 4, |
| 42 | + "users": 5, |
| 43 | + "group": 6, |
| 44 | + "hosts": 7, |
| 45 | + "net_groups": 8, |
| 46 | + "home_dir": 11 |
| 47 | +} |
| 48 | + |
38 | 49 |
|
39 | 50 | class UnityNasServer(UnityResource): |
40 | 51 | @classmethod |
@@ -113,23 +124,28 @@ def enable_cifs_service(self, interfaces=None, |
113 | 124 | local_password=local_password) |
114 | 125 |
|
115 | 126 | def create_nfs_server(self, host_name=None, nfs_v4_enabled=True, |
116 | | - kdc_type=None, kdc_username=None, kdc_password=None): |
| 127 | + kdc_type=None, kdc_username=None, kdc_password=None, |
| 128 | + nfs_v3_enabled=None, credentials_cache_ttl=None): |
117 | 129 | clz = storops.unity.resource.nfs_server.UnityNfsServer |
118 | 130 | return clz.create(self._cli, self, |
119 | 131 | host_name=host_name, |
120 | 132 | nfs_v4_enabled=nfs_v4_enabled, |
121 | 133 | kdc_type=kdc_type, |
122 | 134 | kdc_username=kdc_username, |
123 | | - kdc_password=kdc_password) |
| 135 | + kdc_password=kdc_password, |
| 136 | + nfs_v3_enabled=nfs_v3_enabled, |
| 137 | + credentials_cache_ttl=credentials_cache_ttl) |
124 | 138 |
|
125 | 139 | def enable_nfs_service(self, host_name=None, nfs_v4_enabled=True, |
126 | | - kdc_type=None, kdc_username=None, |
127 | | - kdc_password=None): |
| 140 | + kdc_type=None, kdc_username=None, kdc_password=None, |
| 141 | + nfs_v3_enabled=None, credentials_cache_ttl=None): |
128 | 142 | self.create_nfs_server(host_name=host_name, |
129 | 143 | nfs_v4_enabled=nfs_v4_enabled, |
130 | 144 | kdc_type=kdc_type, |
131 | 145 | kdc_username=kdc_username, |
132 | | - kdc_password=kdc_password) |
| 146 | + kdc_password=kdc_password, |
| 147 | + nfs_v3_enabled=nfs_v3_enabled, |
| 148 | + credentials_cache_ttl=credentials_cache_ttl) |
133 | 149 |
|
134 | 150 | def create_dns_server(self, domain, *ip_list): |
135 | 151 | clz = storops.unity.resource.dns_server.UnityFileDnsServer |
@@ -264,6 +280,23 @@ def modify(self, name=None, sp=None, is_replication_destination=None, |
264 | 280 | resp.raise_if_err() |
265 | 281 | return resp |
266 | 282 |
|
| 283 | + def upload_file(self, file_type, file_name): |
| 284 | + file_type_idx = FILE_TYPES.get(file_type) |
| 285 | + files = {'filename': file_name} |
| 286 | + resp = self._cli.rest_post('/upload/{}/nasServer/{}'.format( |
| 287 | + file_type_idx, self.get_id()), files=files) |
| 288 | + resp.raise_if_err() |
| 289 | + return resp |
| 290 | + |
| 291 | + def download_file(self, file_type, file_name): |
| 292 | + file_type_idx = FILE_TYPES.get(file_type) |
| 293 | + resp = self._cli.rest_get('/download/{}/nasServer/{}'.format( |
| 294 | + file_type_idx, self.get_id())) |
| 295 | + resp.raise_if_err() |
| 296 | + with open(file_name, "w", encoding="utf-8") as f: |
| 297 | + f.write(resp.response.text) |
| 298 | + return resp |
| 299 | + |
267 | 300 |
|
268 | 301 | class UnityNasServerList(UnityResourceList): |
269 | 302 | def __init__(self, cli=None, home_sp=None, current_sp=None, **filters): |
|
0 commit comments