def _generate_ring_specifications_info(self): LOG.info('%s()' % KenLog.fcn()) self._action = KenLog.fcn() cloud_version = CloudModel.version(self._models['CloudModel'], self._version) ring_specifications_config = CloudModel.get(cloud_version, 'ring-specifications', []) cloud_internal = CloudModel.internal(self._models['CloudModel']) CloudModel.put(cloud_internal, 'ring-specifications', ring_specifications_config)
def _generate_ring_specifications_info(self): LOG.info('%s()' % KenLog.fcn()) self._action = KenLog.fcn() cloud_version = CloudModel.version( self._models['CloudModel'], self._version) ring_specifications_config = CloudModel.get( cloud_version, 'ring-specifications', []) cloud_internal = CloudModel.internal(self._models['CloudModel']) CloudModel.put(cloud_internal, 'ring-specifications', ring_specifications_config)
def __init__(self, instructions, models, controllers): super(RouteInfoBuilder, self).__init__( 2.0, instructions, models, controllers, 'route-info-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path)
def __init__(self, instructions, models, controllers): super(AnsibleAllVarsBuilder, self).__init__( 2.0, instructions, models, controllers, 'ansible-all-vars-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._file_path = os.path.join(self._file_path, 'ansible') self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path)
def __init__(self, instructions, models, controllers): super(AnsibleHostsBuilder, self).__init__( 2.0, instructions, models, controllers, 'ansible-hosts-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._file_path = os.path.join(self._file_path, 'ansible') self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path)
def load_versioned_model(self, version, config_key, optional=False, alias=None): LOG.info('%s()' % KenLog.fcn()) v = Version.normalize(version) config_value = self._get_config_value(v, config_key) if not config_value and alias: LOG.warn("Use of %s is deprecated, use %s instead" % (alias, config_key)) config_value = self._get_config_value(v, alias) if config_value: cloud_model = CloudModel.version(self._models['CloudModel'], v) cloud_model[config_key] = config_value elif not optional: raise Exception('Could not load model key "%s"' % config_key)
def __init__(self, instructions, models, controllers): super(NetworkInfoBuilder, self).__init__(2.0, instructions, models, controllers, 'net-info-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path)
def __init__(self, instructions, models, controllers, config_files): super(ServiceViewFinalizer, self).__init__( 2.0, instructions, models, controllers, config_files, 'service-view-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._file_path = os.path.join(self._file_path, 'info') self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path)
def __init__(self, instructions, models, controllers, config_files): super(ServiceViewFinalizer, self).__init__(2.0, instructions, models, controllers, config_files, 'service-view-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._file_path = os.path.join(self._file_path, 'info') self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path)
def load_versioned_model(self, version, config_key, optional=False, alias=None): LOG.info('%s()' % KenLog.fcn()) v = Version.normalize(version) config_value = self._get_config_value(v, config_key) if not config_value and alias: LOG.warn("Use of %s is deprecated, use %s instead" % (alias, config_key)) config_value = self._get_config_value(v, alias) if config_value: cloud_model = CloudModel.version(self._models['CloudModel'], v) cloud_model[config_key] = config_value elif not optional: raise Exception('Could not load model key "%s"' % config_key)
def __init__(self, instructions, models, controllers): super(DiagramBuilder, self).__init__(2.0, instructions, models, controllers, 'diagram-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._file_path = os.path.join(self._file_path, 'info') self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path) self._padding_x = 2 self._padding_y = 2 self._server_width = 50 self._line_width = 136
def __init__(self, instructions, models, controllers): super(DiagramBuilder, self).__init__( 2.0, instructions, models, controllers, 'diagram-2.0') LOG.info('%s()' % KenLog.fcn()) self.cloud_desc = self._models['CloudDescription']['cloud'] self._file_path = HlmPaths.get_output_path(self._instructions, self.cloud_desc) self._file_path = os.path.join(self._file_path, 'info') self._cloud_model = self._models['CloudModel'] self._cloud_version = CloudModel.version(self._cloud_model, self._version) self._cloud_internal = CloudModel.internal(self._cloud_model) HlmPaths.make_path(self._file_path) self._padding_x = 2 self._padding_y = 2 self._server_width = 50 self._line_width = 136
def _generate_firewall_rules(self): LOG.info('%s()' % KenLog.fcn()) self._action = KenLog.fcn() cloud_version = CloudModel.version( self._models['CloudModel'], self._version) cloud_internal = CloudModel.internal(self._models['CloudModel']) firewall_rules = CloudModel.get(cloud_version, 'firewall-rules', []) network_groups = CloudModel.get(cloud_version, 'network-groups') components = CloudModel.get(cloud_internal, 'components', []) # If component is not set then it means an earlier generator failed if not components: return # Initialise the firewall structure net_group_firewall = {} for net_group in network_groups: net_group_firewall[net_group['name']] = {'user': [], 'component': {}} # # Add ports from components. # explicit_components = set() for net_group in network_groups: for comp in self._get_netgroup_components(net_group, exclude_default=True): explicit_components.add(comp) for net_group in network_groups: net_group_components = self._get_netgroup_components(net_group) for comp_name, comp_data in components.iteritems(): if (comp_name in net_group_components or ('default' in net_group_components and comp_name not in explicit_components)): comp_rules = [] for endpoint in comp_data.get('endpoints', []): if ':' in str(endpoint['port']): ports = str.split(endpoint['port'], ':') else: ports = [endpoint['port'], endpoint['port']] rule = {'type': 'allow', 'remote-ip-prefix': '0.0.0.0/0', 'port-range-min': ports[0], 'port-range-max': ports[1], 'protocol': endpoint.get('protocol', 'tcp')} comp_rules.append(rule) if comp_rules: net_group_firewall[net_group['name']]['component'][comp_name] = comp_rules # Annotate the rules so we can trace where they came from for rule_group in firewall_rules: for rule in rule_group.get('rules', []): rule['component'] = "user-%s" % rule_group['name'] # # Add user defined rules to network groups # for rule in firewall_rules: if rule.get('final'): continue for firewall_netgroup in rule['network-groups']: for net_group in network_groups: if (firewall_netgroup == "all" or firewall_netgroup == net_group['name']): net_group_firewall[net_group['name']]['user'].extend(rule['rules']) # # Add user defined final rules to network groups # for rule in firewall_rules: if not rule.get('final'): continue for firewall_netgroup in rule['network-groups']: for net_group in network_groups: if (firewall_netgroup == "all" or firewall_netgroup == net_group['name']): net_group_firewall[net_group['name']]['user'].extend(rule['rules']) CloudModel.put(cloud_internal, 'net-group-firewall', net_group_firewall)
def _generate_firewall_rules(self): LOG.info('%s()' % KenLog.fcn()) self._action = KenLog.fcn() cloud_version = CloudModel.version(self._models['CloudModel'], self._version) cloud_internal = CloudModel.internal(self._models['CloudModel']) firewall_rules = CloudModel.get(cloud_version, 'firewall-rules', []) network_groups = CloudModel.get(cloud_version, 'network-groups') components = CloudModel.get(cloud_internal, 'components', []) # If component is not set then it means an earlier generator failed if not components: return # Initialise the firewall structure net_group_firewall = {} for net_group in network_groups: net_group_firewall[net_group['name']] = { 'user': [], 'component': {} } # # Add ports from components. # explicit_components = set() for net_group in network_groups: for comp in self._get_netgroup_components(net_group, exclude_default=True): explicit_components.add(comp) for net_group in network_groups: net_group_components = self._get_netgroup_components(net_group) for comp_name, comp_data in components.iteritems(): if (comp_name in net_group_components or ('default' in net_group_components and comp_name not in explicit_components)): comp_rules = [] for endpoint in comp_data.get('endpoints', []): if ':' in str(endpoint['port']): ports = str.split(endpoint['port'], ':') else: ports = [endpoint['port'], endpoint['port']] rule = { 'type': 'allow', 'remote-ip-prefix': '0.0.0.0/0', 'port-range-min': ports[0], 'port-range-max': ports[1], 'protocol': endpoint.get('protocol', 'tcp') } comp_rules.append(rule) if comp_rules: net_group_firewall[net_group['name']]['component'][ comp_name] = comp_rules # Annotate the rules so we can trace where they came from for rule_group in firewall_rules: for rule in rule_group.get('rules', []): rule['component'] = "user-%s" % rule_group['name'] # # Add user defined rules to network groups # for rule in firewall_rules: if rule.get('final'): continue for firewall_netgroup in rule['network-groups']: for net_group in network_groups: if (firewall_netgroup == "all" or firewall_netgroup == net_group['name']): net_group_firewall[net_group['name']]['user'].extend( rule['rules']) # # Add user defined final rules to network groups # for rule in firewall_rules: if not rule.get('final'): continue for firewall_netgroup in rule['network-groups']: for net_group in network_groups: if (firewall_netgroup == "all" or firewall_netgroup == net_group['name']): net_group_firewall[net_group['name']]['user'].extend( rule['rules']) CloudModel.put(cloud_internal, 'net-group-firewall', net_group_firewall)