def test_build_agent_config(self): conf = self.useFixture(oslo_fixture.Config(cfg.CONF)) conf.config(debug=False) conf.config(group="amphora_agent", admin_log_targets='192.0.2.17:10514,192.51.100.4:10514') conf.config(group="amphora_agent", tenant_log_targets='192.0.2.7:20514,192.51.100.9:20514') conf.config(group="amphora_agent", log_protocol=lib_consts.PROTOCOL_UDP) conf.config(group="amphora_agent", log_retry_count=5) conf.config(group="amphora_agent", log_retry_interval=2) conf.config(group="amphora_agent", log_queue_size=10000) lj = logging_jinja_cfg.LoggingJinjaTemplater() expected_config = ( u'local0.=info action(type="omfwd" target="192.0.2.7" ' 'port="20514" protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" )&action(type="omfwd" target="192.51.100.9" ' 'port="20514" protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" action.execOnlyWhenPreviousIsSuspended="on")\n' 'local1.* action(type="omfwd" target="192.0.2.17" port="10514" ' 'protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" )&action(type="omfwd" target="192.51.100.4" ' 'port="10514" protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" action.execOnlyWhenPreviousIsSuspended="on")') logging_cfg = lj.build_logging_config() self.assertEqual(expected_config, logging_cfg)
def test_build_agent_config_disable_logs(self): conf = self.useFixture(oslo_fixture.Config(cfg.CONF)) conf.config(debug=False) conf.config(group="amphora_agent", disable_local_log_storage=True) lj = logging_jinja_cfg.LoggingJinjaTemplater() expected_config = (u'*.* stop') logging_cfg = lj.build_logging_config() self.assertEqual(expected_config, logging_cfg)
def test_build_agent_config(self): lj = logging_jinja_cfg.LoggingJinjaTemplater() expected_config = ( u'local0.=info action(type="omfwd" target="192.0.2.7" ' 'port="20514" protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" )&action(type="omfwd" target="192.51.100.9" ' 'port="20514" protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" action.execOnlyWhenPreviousIsSuspended="on")\n' 'local1.* action(type="omfwd" target="192.0.2.17" port="10514" ' 'protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" )&action(type="omfwd" target="192.51.100.4" ' 'port="10514" protocol="UDP" action.resumeRetryCount="5" ' 'action.resumeInterval="2" queue.type="linkedList" ' 'queue.size="10000" action.execOnlyWhenPreviousIsSuspended="on")') logging_cfg = lj.build_logging_config() self.assertEqual(expected_config, logging_cfg)
def execute(self, amphora_id, config_drive_files=None, build_type_priority=constants.LB_CREATE_NORMAL_PRIORITY, server_group_id=None, ports=None, flavor=None, availability_zone=None): """Create an amphora :returns: an amphora """ ports = ports or [] network_ids = CONF.controller_worker.amp_boot_network_list[:] config_drive_files = config_drive_files or {} user_data = None LOG.debug("Compute create execute for amphora with id %s", amphora_id) user_data_config_drive = CONF.controller_worker.user_data_config_drive key_name = CONF.controller_worker.amp_ssh_key_name # Apply an Octavia flavor customizations if flavor: topology = flavor.get(constants.LOADBALANCER_TOPOLOGY, CONF.controller_worker.loadbalancer_topology) amp_compute_flavor = flavor.get( constants.COMPUTE_FLAVOR, CONF.controller_worker.amp_flavor_id) else: topology = CONF.controller_worker.loadbalancer_topology amp_compute_flavor = CONF.controller_worker.amp_flavor_id if availability_zone: amp_availability_zone = availability_zone.get( constants.COMPUTE_ZONE) amp_network = availability_zone.get(constants.MANAGEMENT_NETWORK) if amp_network: network_ids = [amp_network] else: amp_availability_zone = None try: if CONF.haproxy_amphora.build_rate_limit != -1: self.rate_limit.add_to_build_request_queue( amphora_id, build_type_priority) agent_cfg = agent_jinja_cfg.AgentJinjaTemplater() config_drive_files['/etc/octavia/amphora-agent.conf'] = ( agent_cfg.build_agent_config(amphora_id, topology)) logging_cfg = logging_jinja_cfg.LoggingJinjaTemplater( CONF.amphora_agent.logging_template_override) config_drive_files['/etc/rsyslog.d/10-rsyslog.conf'] = ( logging_cfg.build_logging_config()) if user_data_config_drive: udtemplater = user_data_jinja_cfg.UserDataJinjaCfg() user_data = udtemplater.build_user_data_config( config_drive_files) config_drive_files = None compute_id = self.compute.build( name="amphora-" + amphora_id, amphora_flavor=amp_compute_flavor, image_id=CONF.controller_worker.amp_image_id, image_tag=CONF.controller_worker.amp_image_tag, image_owner=CONF.controller_worker.amp_image_owner_id, key_name=key_name, sec_groups=CONF.controller_worker.amp_secgroup_list, network_ids=network_ids, port_ids=[port.id for port in ports], config_drive_files=config_drive_files, user_data=user_data, server_group_id=server_group_id, availability_zone=amp_availability_zone) LOG.debug("Server created with id: %s for amphora id: %s", compute_id, amphora_id) return compute_id except Exception: LOG.exception("Compute create for amphora id: %s failed", amphora_id) raise