def _get_terraform_version()

in TerraformScripts/sc_terraform_wrapper/terraform_executor.py [0:0]


    def _get_terraform_version(request_command):
        try:
            version_bytes = subprocess.check_output(['terraform', 'version'])
            version_str = version_bytes.decode('utf-8')
            version_matches = re.findall('v(\d+\.\d+\.\d+)$', version_str, flags=re.M)

            if len(version_matches) == 1:
                return parse_version(version_matches[0])
            else:
                raise Exception('Unable to determine terraform version. `terraform version` output'
                    'has unexpected format: {}. '
                    'Skipping `terraform {}`'.format(version_str, request_command))

        except subprocess.CalledProcessError as e:
            exit_code = e.returncode
            raise Exception('Unable to determine terraform version. `terraform version` finished '
                            'with exit code {}. '
                            'Skipping `terraform {}`'.format(e.returncode, request_command))