def __execute_and_return_request_params(work_item, session, extra_args=None): work_item.requestParams[BfConsts.ARG_TESTRIG] = "snapshot" with patch.object(resthelper, "get_json_response") as mock_get_json_response: execute(work_item, session, True, extra_args) args, kwargs = mock_get_json_response.call_args witem = json.loads(args[2]["workitem"]) return witem["requestParams"]
def generate_dataplane(self, snapshot=None, extra_args=None): # type: (Optional[str], Optional[Dict[str, Any]]) -> str """ Generates the data plane for the supplied snapshot. If no snapshot is specified, uses the last snapshot initialized. :param snapshot: name of the snapshot to generate dataplane for :type snapshot: str :param extra_args: extra arguments to be passed to Batfish :type extra_args: dict """ snapshot = self.get_snapshot(snapshot) work_item = workhelper.get_workitem_generate_dataplane(self, snapshot) answer_dict = workhelper.execute(work_item, self, extra_args=extra_args) return str(answer_dict["status"].value)
def _parse_snapshot(self, name, background, extra_args): # type: (str, bool, Optional[Dict[str, Any]]) -> Union[str, Dict[str, str]] """ Parse specified snapshot. :param name: name of the snapshot to initialize :type name: str :param background: whether or not to run the task in the background :type background: bool :param extra_args: extra arguments to be passed to the parse command. :type extra_args: dict :return: name of initialized snapshot, or JSON dictionary of task status if background=True :rtype: Union[str, Dict] """ work_item = workhelper.get_workitem_parse(self, name) answer_dict = workhelper.execute( work_item, self, background=background, extra_args=extra_args ) if background: self.snapshot = name return answer_dict status = WorkStatusCode(answer_dict["status"]) if status != WorkStatusCode.TERMINATEDNORMALLY: init_log = restv2helper.get_work_log(self, name, work_item.id) raise BatfishException( "Initializing snapshot {ss} failed with status {status}\n{log}".format( ss=name, status=status, log=init_log ) ) else: self.snapshot = name logging.getLogger(__name__).info( "Default snapshot is now set to %s", self.snapshot ) if self.enable_diagnostics: warn_on_snapshot_failure(self) return self.snapshot