def __init__(self, standards_yaml_path=None, standard_dict=None, control_class=Control): """ Given a standard yaml or standard dict load all of the controls""" if standards_yaml_path: standard_dict = utils.yaml_loader(standards_yaml_path) self.control_class = control_class self.standards_yaml_path = standards_yaml_path self.load_controls(standard_dict) if 'name' in standard_dict: self.name = standard_dict['name']
def create_gitbook_documentation(certification_path, output_path, markdown_path=None): """ Convert certification to pages format """ summaries = {} io_paths = {"output": output_path, "input": os.path.dirname(certification_path)} certification = utils.yaml_loader(certification_path) summaries["components"] = build_components_documentation(certification, io_paths) summaries["standards"] = build_standards_documentation(certification, output_path) build_summary(summaries, output_path, markdown_path) return output_path
def build_inventory(certification_path): """ Create an inventory of components for a specific certification """ certification = utils.yaml_loader(certification_path) inventory = { 'certification': certification.get('name'), 'components': {} } inventory_standards(certification, inventory) inventory_components(certification, inventory) return inventory
def __init__(self, certification_yaml_path=None, standard_class=Standard): # Set Paths self.certification_yaml_path = certification_yaml_path self.name = os.path.split(os.path.splitext(certification_yaml_path)[0])[-1] # Set standard class self.standard_class = standard_class # Load Data certification_data = utils.yaml_loader(certification_yaml_path) self.load_standards(certification_data) self.load_systems(certification_data)
def build_certification(certifications_path, bystandards_dict, standards): """ Merges the components and standards data with the certification data """ certification = utils.yaml_loader(certifications_path) for standard in certification['standards']: for control in certification['standards'][standard]: # Create a reference to the certification control certification['standards'][standard][control] = dict() merge_components(certification, bystandards_dict, standard, control) merge_standard(certification, standards, standard, control) return certification['name'], certification
def load_metadata(self, component_directory): """ Load metadata from components.yaml, but first check the OpenControl schema version. If the version is 2.0 first validate the input and then load the data """ meta_data = utils.yaml_loader( os.path.join(component_directory, 'component.yaml') ) schema_version = meta_data.get('schema_version', 1) if int(schema_version) == 2: self.validator.source = meta_data self.validator.validate(raise_exception=True) meta_data = v2_to_v1.convert(meta_data) self.meta = meta_data
def create_gitbook_documentation(certification, certification_dir, output_path): """ Convert certification to pages format """ output_path = prepare_output_path(output_path) certification_path = prepare_cert_path(certification, certification_dir) summary = [] certification = utils.yaml_loader(certification_path) for standard_key in natural_sort(certification['standards']): for control_key in natural_sort(certification['standards'][standard_key]): if 'justifications' in certification['standards'][standard_key][control_key]: page_dict = document_page(summary, certification, standard_key, control_key) summary.append(page_dict) build_page(page_dict, certification, output_path) build_summary(summary, output_path) return output_path
def build_inventory(certification_path): """ Create an inventory of components for a specific certification """ certification = utils.yaml_loader(certification_path) inventory = { 'certification': certification.get('name'), 'components': {} } for standard_key in certification['standards']: inventory[standard_key] = {} for control_key in certification['standards'][standard_key]: inventory[standard_key][control_key] = {} control = certification['standards'][standard_key][control_key] catalog_control(inventory, control, standard_key, control_key) return inventory
def load_metadata_file(self, system_directory): """ Load the component metadata and add the system key to metadata""" self.meta = utils.yaml_loader( os.path.join(system_directory, 'system.yaml') ) self.meta['system_key'] = self.system_key