def take_action(self, parsed_args): data = utils.load_content(parsed_args.file.read()) mistral_client = self.app.client_manager.workflow_engine environment = mistral_client.environments.update(**data) return format(environment)
def test_create_with_json_file_uri(self): # The contents of env_v2.json must be equivalent to ENVIRONMENT path = pkg.resource_filename( 'mistralclient', 'tests/unit/resources/env_v2.json' ) # Convert the file path to file URI uri = parse.urljoin('file:', request.pathname2url(path)) data = collections.OrderedDict( utils.load_content( utils.get_contents_if_file(uri) ) ) self.requests_mock.post(self.TEST_URL + URL_TEMPLATE, status_code=201, json=data) file_input = {'file': uri} env = self.environments.create(**file_input) self.assertIsNotNone(env) expected_data = copy.deepcopy(data) expected_data['variables'] = json.dumps(expected_data['variables']) self.assertEqual(expected_data, self.requests_mock.last_request.json())
def test_create_with_json_file_uri(self): # The contents of env_v2.json must be equivalent to ENVIRONMENT path = pkg.resource_filename( 'mistralclient', 'tests/unit/resources/env_v2.json' ) # Convert the file path to file URI uri = parse.urljoin('file:', request.pathname2url(path)) data = OrderedDict( utils.load_content( utils.get_contents_if_file(uri) ) ) mock = self.mock_http_post(content=data) file_input = {'file': uri} env = self.environments.create(**file_input) self.assertIsNotNone(env) expected_data = copy.deepcopy(data) expected_data['variables'] = json.dumps(expected_data['variables']) mock.assert_called_once_with(URL_TEMPLATE, json.dumps(expected_data))
def take_action(self, parsed_args): mistral_client = self.app.client_manager.workflow_engine env = (utils.load_file(parsed_args.env) if parsed_args.env and os.path.isfile(parsed_args.env) else utils.load_content(parsed_args.env)) execution = mistral_client.tasks.rerun(parsed_args.id, reset=(not parsed_args.resume), env=env) return format(execution)
def take_action(self, parsed_args): mistral_client = self.app.client_manager.workflow_engine env = (utils.load_file(parsed_args.env) if parsed_args.env and os.path.isfile(parsed_args.env) else utils.load_content(parsed_args.env)) execution = mistral_client.executions.update( parsed_args.id, parsed_args.state, description=parsed_args.description, env=env) return ExecutionFormatter.format(execution)
def update(self, **kwargs): # Check to see if the file name or URI is being passed in. If so, # read it's contents first. if 'file' in kwargs: file = kwargs['file'] kwargs = utils.load_content(utils.get_contents_if_file(file)) name = kwargs.get('name', None) self._ensure_not_empty(name=name) # Convert dict to text for the variables attribute. if kwargs.get('variables') and isinstance(kwargs['variables'], dict): kwargs['variables'] = jsonutils.dumps(kwargs['variables']) return self._update('/environments', kwargs)
def take_action(self, parsed_args): mistral_client = self.app.client_manager.workflow_engine env = ( utils.load_file(parsed_args.env) if parsed_args.env and os.path.isfile(parsed_args.env) else utils.load_content(parsed_args.env) ) execution = mistral_client.tasks.rerun( parsed_args.id, reset=(not parsed_args.resume), env=env ) return format(execution)
def test_update_with_yaml_file(self): # The contents of env_v2.json must be equivalent to ENVIRONMENT path = pkg.resource_filename('mistralclient', 'tests/unit/resources/env_v2.json') data = collections.OrderedDict( utils.load_content(utils.get_contents_if_file(path))) self.requests_mock.put(self.TEST_URL + URL_TEMPLATE, json=data) file_input = {'file': path} env = self.environments.update(**file_input) self.assertIsNotNone(env) expected_data = copy.deepcopy(data) expected_data['variables'] = json.dumps(expected_data['variables']) self.assertEqual(expected_data, self.requests_mock.last_request.json())
def take_action(self, parsed_args): mistral_client = self.app.client_manager.workflow_engine env = ( utils.load_file(parsed_args.env) if parsed_args.env and os.path.isfile(parsed_args.env) else utils.load_content(parsed_args.env) ) execution = mistral_client.executions.update( parsed_args.id, parsed_args.state, description=parsed_args.description, env=env ) return format(execution)
def test_update_with_yaml_file(self): # The contents of env_v2.json must be equivalent to ENVIRONMENT path = pkg.resource_filename( 'mistralclient', 'tests/unit/resources/env_v2.json' ) data = collections.OrderedDict( utils.load_content( utils.get_contents_if_file(path) ) ) self.requests_mock.put(self.TEST_URL + URL_TEMPLATE, json=data) file_input = {'file': path} env = self.environments.update(**file_input) self.assertIsNotNone(env) expected_data = copy.deepcopy(data) expected_data['variables'] = json.dumps(expected_data['variables']) self.assertEqual(expected_data, self.requests_mock.last_request.json())
def test_update_with_yaml_file(self): # The contents of env_v2.json must be equivalent to ENVIRONMENT path = pkg.resource_filename( 'mistralclient', 'tests/unit/resources/env_v2.json' ) data = OrderedDict( utils.load_content( utils.get_contents_if_file(path) ) ) mock = self.mock_http_put(content=data) file_input = {'file': path} env = self.environments.update(**file_input) self.assertIsNotNone(env) expected_data = copy.deepcopy(data) expected_data['variables'] = json.dumps(expected_data['variables']) mock.assert_called_once_with(URL_TEMPLATE, json.dumps(expected_data))
def test_create_with_json_file_uri(self): # The contents of env_v2.json must be equivalent to ENVIRONMENT path = pkg.resource_filename('mistralclient', 'tests/unit/resources/env_v2.json') path = os.path.abspath(path) # Convert the file path to file URI uri = parse.urljoin('file:', request.pathname2url(path)) data = collections.OrderedDict( utils.load_content(utils.get_contents_if_file(uri))) self.requests_mock.post(self.TEST_URL + URL_TEMPLATE, status_code=201, json=data) file_input = {'file': uri} env = self.environments.create(**file_input) self.assertIsNotNone(env) expected_data = copy.deepcopy(data) expected_data['variables'] = json.dumps(expected_data['variables']) self.assertEqual(expected_data, self.requests_mock.last_request.json())
def test_load_empty(self): self.assertDictEqual(dict(), utils.load_content(None)) self.assertDictEqual(dict(), utils.load_content('')) self.assertDictEqual(dict(), utils.load_content('{}')) self.assertListEqual(list(), utils.load_content('[]'))
def test_load_json_content(self): self.assertDictEqual(ENV_DICT, utils.load_content(ENV_STR))
def test_load_yaml_content(self): self.assertDictEqual(ENV_DICT, utils.load_content(ENV_YAML))