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)
Beispiel #3
0
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
Beispiel #4
0
 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)