Esempio n. 1
0
 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
Esempio n. 4
0
 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
Esempio n. 6
0
 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
Esempio n. 9
0
 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