Exemple #1
0
 def print_safe_exec(cmd):
     """Specialized version of safe_exec mock to print its parameters and provide
     output only for initialize_persistent_disk specific calls"""
     if isinstance(cmd, list):
         cmd = ' '.join(cmd)
     print(cmd)
     if cmd == 'kubectl get pv -o json':
         result = {'items': []}  # type: ignore
         result['items'].append(
             {'spec': {
                 'gcePersistentDisk': {
                     'pdName': GCP_DISKS[0]
                 }
             }})  # type: ignore
         return MockedCompletedProcess(stdout=json.dumps(result))
     if cmd.startswith('kubectl get pv'):
         return MockedCompletedProcess(
             stdout='CLAIM PDNAME\nblast-dbs-pvc gke-some-synthetic-name')
     if cmd.startswith('kubectl get -f'):
         fn = os.path.join(TEST_DATA_DIR, 'job-status.json')
         return MockedCompletedProcess(stdout=Path(fn).read_text())
     if cmd.startswith('kubectl apply -f'):
         fn = cmd[len('kubectl apply -f '):]
         with open(fn) as f:
             print(f.read())
     if cmd.startswith('gcloud compute disks update'):
         assert (cmd.startswith(
             f'gcloud compute disks update gke-some-synthetic-name --update-labels {FAKE_LABELS}'
         ))
     if cmd.startswith('kubectl logs'):
         return MockedCompletedProcess(
             stdout='2020-06-18T04:48:33.320344002Z test log entry')
     return MockedCompletedProcess()
Exemple #2
0
 def mock_safe_exec(cmd):
     if isinstance(cmd, list):
         cmd = ' '.join(cmd)
     if cmd == 'gsutil cat gs://blast-db/latest-dir':
         return MockedCompletedProcess(stdout='2020-20-20')
     elif cmd == 'gsutil cat gs://blast-db/2020-20-20/blastdb-manifest.json':
         return MockedCompletedProcess(
             stdout='{"nt":{"size":93.36}, "nr":{"size":227.4}}')
     return MockedCompletedProcess()
Exemple #3
0
 def safe_exec_gsutil_ls(cmd):
     """Mocked util.safe_exec function that simulates gsutil ls"""
     if cmd != f'gsutil ls {DB}.*':
         raise ValueError(f'Bad gsutil command line: "{cmd}"')
     return MockedCompletedProcess(response)
Exemple #4
0
 def safe_exec_bad_gcloud(cmd):
     """Mocked util.safe_exec function that returns incorrect JSON"""
     if not cmd.startswith('gcloud compute disks list --format json'):
         raise ValueError(f'Bad gcloud command line: {cmd}')
     return MockedCompletedProcess('some-non-json-string')
Exemple #5
0
 def subst_safe_exec_unset_project(cmd):
     if cmd != 'gcloud config get-value project':
         raise ValueError(f'Bad gcloud command line: {cmd}')
     # this is how gcloud reports unset project
     return MockedCompletedProcess('(unset)')
Exemple #6
0
 def safe_exec_gsutil_rm(cmd):
     """Mocked util.safe_exec function that simulates gsutil rm"""
     if cmd != f'gsutil -mq rm {QUERIES}':
         raise ValueError(f'Bad gsutil command line: {cmd}')
     return MockedCompletedProcess('')
Exemple #7
0
 def safe_exec_empty(cmd):
     """Mocked safe_exec returning an emty JSON list"""
     return MockedCompletedProcess('[]')
Exemple #8
0
 def safe_exec_bad_json(cmd):
     """Mocked kubectl that returns garbage"""
     return MockedCompletedProcess('some strange string')
Exemple #9
0
 def fake_safe_exec(cmd):
     """Mocked safe_exec"""
     result = {'items': []}
     for i in GKE_PVS:
         result['items'].append({'metadata': {'name': i}})
     return MockedCompletedProcess(json.dumps(result))
Exemple #10
0
 def safe_exec_no_resources(cmd):
     """Mocked safe_exec returning no resources found"""
     return MockedCompletedProcess('No resources found')
Exemple #11
0
 def fake_safe_exec_failed_job(cmd):
     fn = os.path.join(TEST_DATA_DIR, 'job-status-failed.json')
     return MockedCompletedProcess(stdout=Path(fn).read_text())
Exemple #12
0
 def safe_exec_no_disks(cmd):
     """Mocked safe_exec"""
     result = {'items': []}
     return MockedCompletedProcess(json.dumps(result))