|
4 | 4 | import munch |
5 | 5 | from cterasdk.common import Object |
6 | 6 | from cterasdk.core import servers |
| 7 | +from cterasdk.core.types import AmazonS3 |
7 | 8 | from cterasdk import exceptions |
8 | 9 | from tests.ut.core.admin import base_admin |
9 | 10 |
|
@@ -110,6 +111,72 @@ def test_modify_success(self): |
110 | 111 | self._assert_equal_objects(actual_param, expected_param) |
111 | 112 | self.assertEqual(ret, put_response) |
112 | 113 |
|
| 114 | + def test_system_database(self): |
| 115 | + with mock.patch("cterasdk.core.servers.query.run") as query_mock: |
| 116 | + query_mock.return_value = munch.Munch({ |
| 117 | + 'objects': [munch.Munch({'mainDB': True})] |
| 118 | + }) |
| 119 | + server = servers.Servers(self._global_admin).system_database |
| 120 | + expected_query_params = base_admin.BaseCoreTest._create_query_params(start_from=0, count_limit=50, filters=[ |
| 121 | + munch.Munch({ |
| 122 | + 'field': 'mainDB', |
| 123 | + 'restriction': 'eq', |
| 124 | + '_classname': 'BooleanFilter', |
| 125 | + 'value': True |
| 126 | + }) |
| 127 | + ]) |
| 128 | + actual_query_params = query_mock.call_args[0][2] |
| 129 | + self._assert_equal_objects(actual_query_params, expected_query_params) |
| 130 | + self.assertEqual(server.mainDB, True) |
| 131 | + |
| 132 | + def test_enable_server_backup(self): |
| 133 | + self._init_global_admin() |
| 134 | + server_name = 'server' |
| 135 | + with mock.patch("cterasdk.core.servers.Servers.system_database", new_callable=mock.PropertyMock) as query_mock: |
| 136 | + query_mock.return_value = munch.Munch({'name': server_name, 'backupToBucket': None}) |
| 137 | + bucket, access, secret, endpoint = 'bucket-name', 'access', 'secret', 'www.endpoint.com' |
| 138 | + bucket = AmazonS3(bucket, access, secret, endpoint, True, verify_ssl=False) |
| 139 | + servers.Servers(self._global_admin).backup.enable(bucket, 60) |
| 140 | + self._global_admin.api.put.assert_called_once_with(f'/servers/{server_name}', mock.ANY) |
| 141 | + actual_param = self._global_admin.api.put.call_args[0][1] |
| 142 | + expected_param = munch.Munch({ |
| 143 | + 'enabled': True, |
| 144 | + 'exportSchedulePeriod': 60, |
| 145 | + 'details': TestCoreServers._create_database_backup_server_object(bucket) |
| 146 | + }) |
| 147 | + self._assert_equal_objects(actual_param.backupToBucket, expected_param) |
| 148 | + |
| 149 | + @staticmethod |
| 150 | + def _create_database_backup_server_object(bucket): |
| 151 | + return munch.Munch({ |
| 152 | + 'storage': bucket.driver, |
| 153 | + 'bucket': bucket.bucket, |
| 154 | + 'accessKey': bucket.access_key, |
| 155 | + 'secretKey': bucket.secret_key, |
| 156 | + 'endPoint': bucket.endpoint, |
| 157 | + 'useHttps': bucket.https, |
| 158 | + 'trustAllCertificates': bucket.trust_all_certificates, |
| 159 | + 'masterHost': None, |
| 160 | + 'usePathStyleAddressing': False |
| 161 | + }) |
| 162 | + |
| 163 | + def test_disable_server_backup(self): |
| 164 | + self._init_global_admin() |
| 165 | + server_name = 'server' |
| 166 | + with mock.patch("cterasdk.core.servers.Servers.system_database", new_callable=mock.PropertyMock) as query_mock: |
| 167 | + query_mock.return_value = munch.Munch({'name': server_name, 'backupToBucket': munch.Munch({'enabled': True})}) |
| 168 | + servers.Servers(self._global_admin).backup.disable() |
| 169 | + self._global_admin.api.put.assert_called_once_with(f'/servers/{server_name}', mock.ANY) |
| 170 | + actual_param = self._global_admin.api.put.call_args[0][1] |
| 171 | + self._assert_equal_objects(actual_param.backupToBucket.enabled, False) |
| 172 | + |
| 173 | + def test_server_backup_status(self): |
| 174 | + self._init_global_admin() |
| 175 | + with mock.patch("cterasdk.core.servers.Servers.system_database", new_callable=mock.PropertyMock) as query_mock: |
| 176 | + query_mock.return_value = munch.Munch({'backupToBucket': munch.Munch({'status': 'Connected'})}) |
| 177 | + ret = servers.Servers(self._global_admin).backup.connected() |
| 178 | + self.assertEqual(ret, True) |
| 179 | + |
113 | 180 | @staticmethod |
114 | 181 | def _create_server_object(name=None, app=None, preview=None, enable_public_ip=None, |
115 | 182 | public_ip=None, allow_user_login=None, enable_replication=None, replica_of=None): |
|
0 commit comments