def _process_template(self, options): saas_file_name = options['saas_file_name'] resource_template_name = options['resource_template_name'] url = options['url'] path = options['path'] hash_length = options['hash_length'] target = options['target'] parameters = options['parameters'] github = options['github'] target_ref = target['ref'] environment = target['namespace']['environment'] environment_parameters = self._collect_parameters(environment) target_parameters = self._collect_parameters(target) consolidated_parameters = {} consolidated_parameters.update(environment_parameters) consolidated_parameters.update(parameters) consolidated_parameters.update(target_parameters) try: get_file_contents_options = { 'url': url, 'path': path, 'ref': target_ref, 'github': github } content, html_url = \ self._get_file_contents(get_file_contents_options) except Exception as e: logging.error(f"[{url}/{path}:{target_ref}] " + f"error fetching template: {str(e)}") return None, None template = yaml.safe_load(content) if "IMAGE_TAG" not in consolidated_parameters: for template_parameter in template['parameters']: if template_parameter['name'] == 'IMAGE_TAG': # add IMAGE_TAG only if it is required get_commit_sha_options = { 'url': url, 'ref': target_ref, 'hash_length': hash_length, 'github': github } image_tag = self._get_commit_sha(get_commit_sha_options) consolidated_parameters['IMAGE_TAG'] = image_tag oc = OC('server', 'token') try: resources = oc.process(template, consolidated_parameters) except StatusCodeError as e: resources = None logging.error( f"[{saas_file_name}/{resource_template_name}] {html_url}: " + f"error processing template: {str(e)}") return resources, html_url
def _process_template(self, url, path, hash_length, target, parameters): target_hash = target['hash'] target_parameters = self._collect_parameters(target) target_parameters.update(parameters) content = self._get_file_contents(url, path, target_hash) template = yaml.safe_load(content) if "IMAGE_TAG" not in target_parameters: for template_parameter in template['parameters']: if template_parameter['name'] == 'IMAGE_TAG': # add IMAGE_TAG only if it is required image_tag = self._get_commit_sha(url, target_hash, hash_length) target_parameters['IMAGE_TAG'] = image_tag oc = OC('server', 'token') resources = oc.process(template, target_parameters) return resources
def _process_template(self, options): saas_file_name = options['saas_file_name'] resource_template_name = options['resource_template_name'] url = options['url'] path = options['path'] provider = options['provider'] target = options['target'] github = options['github'] target_ref = target['ref'] resources = None html_url = None if provider == 'openshift-template': hash_length = options['hash_length'] parameters = options['parameters'] environment = target['namespace']['environment'] environment_parameters = self._collect_parameters(environment) target_parameters = self._collect_parameters(target) consolidated_parameters = {} consolidated_parameters.update(environment_parameters) consolidated_parameters.update(parameters) consolidated_parameters.update(target_parameters) for replace_key, replace_value in consolidated_parameters.items(): if not isinstance(replace_value, str): continue replace_pattern = '${' + replace_key + '}' for k, v in consolidated_parameters.items(): if not isinstance(v, str): continue if replace_pattern in v: consolidated_parameters[k] = \ v.replace(replace_pattern, replace_value) get_file_contents_options = { 'url': url, 'path': path, 'ref': target_ref, 'github': github } try: template, html_url = \ self._get_file_contents(get_file_contents_options) except Exception as e: logging.error(f"[{url}/{path}:{target_ref}] " + f"error fetching template: {str(e)}") return None, None if "IMAGE_TAG" not in consolidated_parameters: template_parameters = template.get('parameters') if template_parameters is not None: for template_parameter in template_parameters: if template_parameter['name'] == 'IMAGE_TAG': # add IMAGE_TAG only if it is required get_commit_sha_options = { 'url': url, 'ref': target_ref, 'hash_length': hash_length, 'github': github } image_tag = self._get_commit_sha( get_commit_sha_options) consolidated_parameters['IMAGE_TAG'] = image_tag oc = OC('server', 'token', local=True) try: resources = oc.process(template, consolidated_parameters) except StatusCodeError as e: logging.error( f"[{saas_file_name}/{resource_template_name}] " + f"{html_url}: error processing template: {str(e)}") elif provider == 'directory': get_directory_contents_options = { 'url': url, 'path': path, 'ref': target_ref, 'github': github } try: resources, html_url = \ self._get_directory_contents( get_directory_contents_options) except Exception as e: logging.error(f"[{url}/{path}:{target_ref}] " + f"error fetching directory: {str(e)}") return None, None else: logging.error(f"[{saas_file_name}/{resource_template_name}] " + f"unknown provider: {provider}") return resources, html_url