Skip to content

Commit 76351ba

Browse files
authored
Merge pull request #52 from beelit94/release/0.10.1
release/0.10.1
2 parents 813d23d + ce788ac commit 76351ba

File tree

6 files changed

+85
-7
lines changed

6 files changed

+85
-7
lines changed

.bumpversion.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.10.0
2+
current_version = 0.10.1
33
commit = True
44
tag = False
55

CHANGELOG.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,17 @@
33
1. [#10] log handler error on Linux environment
44
1. [#11] Fix reading state file for remote state and support backend config for
55
init command
6+
67
## [0.9.0]
7-
### Fixed
88
1. [#12] Output function doesn't accept parameter 'module'
99
1. [#16] Handle empty space/special characters when passing string to command line options
1010
1. Tested with terraform 0.10.0
1111

1212
## [0.10.0]
13-
### Fixed
1413
1. [#27] No interaction for apply function
1514
1. [#18] Return access to the subprocess so output can be handled as desired
16-
1. [#24] Full support for output(); support for raise_on_error
15+
1. [#24] Full support for output(); support for raise_on_error
16+
17+
## [0.10.1]
18+
1. [#48] adding extension for temp file to adopt the change in terraform 0.12.0
19+
1. [#49] add workspace support

CONTRIBUTING.md

Whitespace-only changes.

python_terraform/__init__.py

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,8 @@ def __init__(self, working_dir=None,
4949
parallelism=None,
5050
var_file=None,
5151
terraform_bin_path=None,
52-
is_env_vars_included=True):
52+
is_env_vars_included=True,
53+
):
5354
"""
5455
:param working_dir: the folder of the working folder, if not given,
5556
will be current working folder
@@ -387,6 +388,41 @@ def read_state_file(self, file_path=None):
387388

388389
self.tfstate = Tfstate.load_file(file_path)
389390

391+
def set_workspace(self, workspace):
392+
"""
393+
set workspace
394+
:param workspace: the desired workspace.
395+
:return: status
396+
"""
397+
398+
return self.cmd('workspace' ,'select', workspace)
399+
400+
def create_workspace(self, workspace):
401+
"""
402+
create workspace
403+
:param workspace: the desired workspace.
404+
:return: status
405+
"""
406+
407+
return self.cmd('workspace', 'new', workspace)
408+
409+
def delete_workspace(self, workspace):
410+
"""
411+
delete workspace
412+
:param workspace: the desired workspace.
413+
:return: status
414+
"""
415+
416+
return self.cmd('workspace', 'delete', workspace)
417+
418+
def show_workspace(self):
419+
"""
420+
show workspace
421+
:return: workspace
422+
"""
423+
424+
return self.cmd('workspace', 'show')
425+
390426
def __exit__(self, exc_type, exc_value, traceback):
391427
self.temp_var_files.clean_up()
392428

@@ -396,7 +432,7 @@ def __init__(self):
396432
self.files = []
397433

398434
def create(self, variables):
399-
with tempfile.NamedTemporaryFile('w+t', delete=False) as temp:
435+
with tempfile.NamedTemporaryFile('w+t', suffix='.tfvars.json', delete=False) as temp:
400436
log.debug('{0} is created'.format(temp.name))
401437
self.files.append(temp)
402438
log.debug(

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
setup(
2222
name=module_name,
23-
version='0.10.0',
23+
version='0.10.1',
2424
url='https://github.com/beelit94/python-terraform',
2525
license='MIT',
2626
author='Freddy Tan',

test/test_terraform.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,3 +320,42 @@ def test_import(self, string_logger):
320320
tf = Terraform(working_dir=current_path)
321321
tf.import_cmd('aws_instance.foo', 'i-abc1234', no_color=IsFlagged)
322322
assert 'command: terraform import -no-color aws_instance.foo i-abc1234' in string_logger()
323+
324+
def test_create_workspace(self):
325+
tf = Terraform(working_dir=current_path)
326+
tf.init()
327+
ret, out, err = tf.create_workspace('test')
328+
tf.set_workspace('default')
329+
tf.delete_workspace('test')
330+
assert ret == 0
331+
assert err == ''
332+
333+
def test_set_workspace(self):
334+
tf = Terraform(working_dir=current_path)
335+
tf.init()
336+
tf.create_workspace('test')
337+
tf.set_workspace('test')
338+
tf.set_workspace('default')
339+
ret, out, err = tf.delete_workspace('test')
340+
assert ret == 0
341+
assert err == ''
342+
343+
def test_show_workspace(self):
344+
tf = Terraform(working_dir=current_path)
345+
tf.init()
346+
tf.create_workspace('test')
347+
ret, out, err = tf.show_workspace()
348+
tf.set_workspace('default')
349+
tf.delete_workspace('test')
350+
assert ret == 0
351+
assert err == ''
352+
353+
def test_delete_workspace(self):
354+
tf = Terraform(working_dir=current_path)
355+
tf.init()
356+
tf.create_workspace('test')
357+
tf.set_workspace('default')
358+
ret, out, err = tf.delete_workspace('test')
359+
tf.show_workspace()
360+
assert ret == 0
361+
assert err == ''

0 commit comments

Comments
 (0)