-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathindex-to-search-service.py
executable file
·57 lines (47 loc) · 3.1 KB
/
index-to-search-service.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env python3
"""Read services from the API endpoint and write to search-api for indexing.
Usage:
index-to-search-service.py <doc-type> <stage> --index=<index> --frameworks=<frameworks> [options]
<doc-type> One of briefs or services
<stage> One of dev, preview, staging or production
--index=<index> Search API index name, usually of the form <framework>-YYYY-MM-DD
--frameworks=<frameworks> Comma-separated list of framework slugs that should be indexed
Options:
-h --help Show this screen.
--create-with-mapping=<mapping> Create the named index using mapping <mapping>. Don't specify this
option when running from a batch/Jenkins job, as creating indexes
should be done under user control. This mapping is a filename (without
.json suffix) as would be found by the search-api in its
digitalmarketplace-search-api/mappings directory.
--serial Do not run in parallel (useful for debugging)
--api-url=<api-url> Override API URL (otherwise automatically populated)
--api-token=<api_access_token> Override API token (otherwise automatically populated)
--search-api-url=<search-api-url> Override search API URL (otherwise automatically populated)
--search-api-token=<search_api_access_token> Override search API token (otherwise automatically populated)
Examples:
./scripts/index-to-search-service.py services dev --index=g-cloud-9-2017-10-17 --frameworks=g-cloud-9 \
--create-with-mapping=services
./scripts/index-to-search-service.py briefs dev --index=briefs-digital-outcomes-and-specialists-2017-10-17 \
--frameworks=digital-outcomes-and-specialists-2 --create-with-mapping=briefs-digital-outcomes-and-specialists-2
"""
import sys
from docopt import docopt
sys.path.insert(0, '.')
from dmscripts.index_to_search_service import do_index
from dmscripts.helpers.auth_helpers import get_auth_token
from dmutils.env_helpers import get_api_endpoint_from_stage
if __name__ == "__main__":
arguments = docopt(__doc__)
ok = do_index(
doc_type=arguments['<doc-type>'],
data_api_url=arguments['--api-url'] or get_api_endpoint_from_stage(arguments['<stage>'], 'api'),
data_api_access_token=arguments['--api-token'] or get_auth_token('api', arguments['<stage>']),
search_api_url=arguments['--search-api-url'] or get_api_endpoint_from_stage(arguments['<stage>'], 'search-api'),
search_api_access_token=arguments['--search-api-token'] or get_auth_token('search_api', arguments['<stage>']),
mapping=arguments.get('--create-with-mapping'),
serial=arguments['--serial'],
index=arguments['--index'],
frameworks=arguments['--frameworks'],
)
if not ok:
sys.exit(1)