Repository URL to install this package:
|
Version:
4.1.94.1 ▾
|
python3-workloadmgrclient
/
usr
/
lib
/
python3
/
dist-packages
/
workloadmgrclient
/
v1
/
file_search.py
|
|---|
import ast
import time
from osc_lib import exceptions
from workloadmgrclient import utils
from workloadmgrclient.v1 import WorkloadmgrCommand
class FilePathSearch(WorkloadmgrCommand):
"""File path search"""
resource = "file_search"
@staticmethod
def _add_arguments(parser):
parser.add_argument("vm_id", metavar="<vm_id>", help="ID of the VM")
parser.add_argument("file_path", metavar="<file_path>", help="File path")
parser.add_argument(
"--snapshotids",
metavar="<snapshotid>",
action="append",
dest="snapshotids",
default=[],
help="Search only in specified snapshot ids "
"snapshot-id: include the instance with this UUID ",
)
parser.add_argument(
"--end_filter",
metavar="end_filter",
default=0,
help="Displays last snapshots, example , last 10 snapshots, "
"default 0 means displays all snapshots",
)
parser.add_argument(
"--start_filter",
metavar="start_filter",
default=0,
help="Displays snapshots starting from , example , snapshot starting from 5, "
"default 0 means starts from last snapshot",
)
parser.add_argument(
"--date_from",
metavar="<date_from>",
default=None,
help="From date in format 'YYYY-MM-DDTHH:MM:SS' eg 2016-10-10T00:00:00,"
"If don't specify time then it takes 00:00 by default",
)
parser.add_argument(
"--date_to",
metavar="<date_to>",
default=None,
help="To date in format 'YYYY-MM-DDTHH:MM:SS'(defult is current day),"
"Specify HH:MM:SS to get snapshots within same day"
" inclusive/exclusive results for date_from and date_to",
)
def take_action(self, parsed_args):
client = self.get_client()
search = client.search(
parsed_args.vm_id,
parsed_args.file_path,
parsed_args.snapshotids,
parsed_args.start_filter,
parsed_args.end_filter,
parsed_args.date_from,
parsed_args.date_to,
)
print("Please wait for few seconds to get results")
print("Your search ID: %s " % search.id)
while 1:
search = client.get(search.id)
if search.status == "error":
err_msg = "Error:" + search.error_msg
raise exceptions.CommandError(err_msg)
if search.status == "completed":
columns = ["ID", "Status", "Filepath", "Vm_id"]
utils.print_object(search, columns)
snapshots = ast.literal_eval(search.json_resp)
for snapshot in snapshots:
utils.print_file_search_dict(snapshot)
break
time.sleep(10)
return