def test_get_collection_status_not_ready(self, http_endpoint, solr_curl): http_endpoint.return_value = '192.168.0.101' solr_curl.return_value = False expected_status = { 'ready': False, 'collection_name': 'montreal', 'solr_http_endpoint': '192.168.0.101' } self.assertEqual(manager.get_collection_status('montreal'), expected_status)
def test_get_collection_status(self, http_endpoint, solr_curl): http_endpoint.return_value = '192.168.0.101' solr_curl.return_value = json.dumps( {'schema': { 'version': '27', 'name': 'ckan_27_default' }}) expected_status = { 'ready': True, 'collection_name': 'montreal', 'solr_http_endpoint': '192.168.0.101', 'schemaVersion': '27', 'schemaName': 'ckan_27_default' } self.assertEqual(manager.get_collection_status('montreal'), expected_status)
def _init_solr(instance_id, dry_run=False): logs.debug('Initializing solr', instance_id=instance_id) solr_status = solr_manager.get_collection_status(instance_id) logs.debug_yaml_dump(solr_status) if not solr_status['ready']: logs.info('Creating solr collection', collection_name=instance_id, solr_config='ckan_28_default') if not dry_run: solr_manager.create_collection(instance_id, 'ckan_28_default') else: logs.info(f'collection already exists ({instance_id})') solr_url = solr_status['solr_http_endpoint'] logs.debug(solr_url=solr_url) assert solr_url.startswith('http') and solr_url.endswith('/solr'), f'invalid solr_url ({solr_url})' host, port = solr_url.replace('https://', '').replace('http://', '').replace('/solr', '').split(':') logs.debug('Solr initialization completed successfully', host=host, port=port) return host, port
def get(self): from ckan_cloud_operator.providers.solr import manager as solr_manager collection_name = self.instance.spec.solrCloudCollection['name'] return solr_manager.get_collection_status(collection_name)