| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- """Read-only acceptance of the installed existing-data industry release."""
- import argparse
- import hashlib
- import json
- from pathlib import Path
- import platform
- import sys
- ROOT = Path(__file__).resolve().parents[1]
- def main():
- parser = argparse.ArgumentParser(description=__doc__)
- sources = parser.add_mutually_exclusive_group(required=True)
- sources.add_argument('--snapshot')
- sources.add_argument('--registry')
- sources.add_argument('--db')
- parser.add_argument('--voc-runtime')
- parser.add_argument('--monitoring-store', required=True)
- args = parser.parse_args()
- sys.path.insert(0, str(ROOT / 'server/voc-library'))
- if not args.snapshot:
- assert args.voc_runtime and (Path(args.voc_runtime) / 'board_library.py').is_file(), 'EXISTING_VOC_RUNTIME_REQUIRED'
- # Monitor and the existing core resolve separately. Core modules are never installed by this release.
- sys.path.append(str(Path(args.voc_runtime).resolve()))
- from industry_monitor import run
- release = json.loads((ROOT / 'RELEASE.json').read_bytes())
- config = {key: getattr(args, key) for key in ('snapshot', 'registry', 'db') if getattr(args, key)}
- config.update(monitoringStore=args.monitoring_store,
- policyUsageReview=str(ROOT / 'data/policy-review/policy-usage.json'),
- policyUsageSha256=release['policyReviewSha256'])
- generation = release['generation']
- def query(op, **kwargs):
- result = run(config, dict(op=op, generation=generation, **kwargs))
- assert result['ok'] and result['readOnly'] and result['databaseWrites'] == 0, op
- return result
- contract = query('contract')
- query('overview')
- primary = query('reviews', filters={'platform': 'jd', 'shopId': '1000084104'})
- assert primary['products'] == 165 and primary['reviewRows'] == 746 and primary['uniqueReadableTexts'] == 701
- listings = query('listings', filters={'platform': 'jd', 'shopId': '1000084104'})
- policies = query('policies', policyQuery={'application': 'sodium-claims'})
- review = policies['applications']['reviewedEvidence']
- assert (review['verifiedClauses'], review['pendingClauses'], review['originalDocuments']) == (12, 19, 13)
- assert len(policies['applications']['selectedWorkflow']['reviewedClauses']) == 3
- workshop = query('workshop', filters={'category': 'banmian'})
- query('rankings')
- query('plan')
- query('contract') # Recheck the library generation after all reads.
- print(json.dumps(dict(ok=True, readOnly=True, databaseWrites=0, paidCalls=0,
- runtime=platform.python_version(), nativePython39Verified=sys.version_info[:2] == (3, 9),
- generation=contract['generation'], primaryStore={k: primary[k] for k in ('products', 'reviewRows', 'uniqueReadableTexts')},
- verifiedPolicyClauses=review['verifiedClauses'], pendingPolicyClauses=review['pendingClauses'],
- policyOriginals=review['originalDocuments'], commands=contract['commands'],
- completedProbes=['contract', 'overview', 'reviews', 'listings', 'policies', 'workshop', 'rankings', 'plan'],
- productionDeployed=False, overallMainlineComplete=False), ensure_ascii=False, indent=2))
- if __name__ == '__main__':
- try:
- main()
- except Exception as error:
- print(json.dumps(dict(ok=False, error=str(error) if isinstance(error, (AssertionError, ValueError)) else type(error).__name__,
- databaseWrites=0, paidCalls=0)))
- sys.exit(1)
|