Merge "Changes required for custom resolv conf file in contrail 4.x"
diff --git a/README.rst b/README.rst
index 829e827..44c9e7c 100644
--- a/README.rst
+++ b/README.rst
@@ -1533,6 +1533,26 @@
nodemgr: 10
....
+Disable database writes of collector
+------------------------------------
+
+Sandesh messages aren't written to analytics database by changing following parameters to `true`.
+Default value all of these parametes is `false`. Is possible to change one or more parametes.
+
+.. code-block:: yaml
+
+ opencontrail:
+ ....
+ collector
+ ....
+ database:
+ ....
+ disable_all_writes: false
+ disable_statistics_writes: true
+ disable_message_writes: false
+ ....
+
+
Define aging time for flow-records in seconds
---------------------------------------------
diff --git a/_modules/contrail.py b/_modules/contrail.py
index f36c4ce..34b8db7 100644
--- a/_modules/contrail.py
+++ b/_modules/contrail.py
@@ -1254,16 +1254,19 @@
def _get_vrouter_config(vnc_client, gvc_name=None):
try:
+ vrouter_conf_objs = vnc_client._objects_list('global-vrouter-config', detail=True)
+ if len(vrouter_conf_objs) == 0:
+ return None
if not gvc_name:
- gvc_list = global_vrouter_config_list()
- gvc_name = gvc_list.values()[0]['name']
+ return vrouter_conf_objs[0]
+ for gvc in vrouter_conf_objs:
+ if gvc.name == gvc_name:
+ return gvc
+ except Exception as e:
+ print("Error: {}".format(e))
+ pass
- config = vnc_client.global_vrouter_config_read(
- fq_name=['default-global-system-config', gvc_name])
- except Exception:
- config = None
-
- return config
+ return None
def linklocal_service_list(global_vrouter_config_name=None, **kwargs):
@@ -1334,6 +1337,11 @@
'comment': ''}
vnc_client = _auth(**kwargs)
current_config = _get_vrouter_config(vnc_client, global_vrouter_config_name)
+ if current_config is None:
+ ret['result'] = False
+ ret['comment'] = "Global Vrouter Config doesn't exist and is required for LinkLocalSevices"
+ return ret
+
service_entry = LinklocalServiceEntryType(
linklocal_service_name=name,
linklocal_service_ip=lls_ip,
@@ -1345,45 +1353,32 @@
service_entry.ip_fabric_service_ip = ipf_dns_or_ip
service_entry.ip_fabric_DNS_service_name = ''
- if current_config is None:
- new_services = LinklocalServicesTypes([service_entry])
- new_config = GlobalVrouterConfig(linklocal_services=new_services)
- if __opts__['test']:
- ret['result'] = None
- ret['comment'] = "Link local service " + name + " will be created"
- else:
- ret['comment'] = "Link local service " + name + " has been created"
- ret['changes'] = {'LinkLocalSevice': {'old': '', 'new': name}}
- vnc_client.global_vrouter_config_create(new_config)
+ _current_service_list = current_config.get_linklocal_services()
+ if _current_service_list is None:
+ service_list = {'linklocal_service_entry': []}
else:
- _current_service_list = current_config.get_linklocal_services()
- if _current_service_list is None:
- service_list = {'linklocal_service_entry': []}
- else:
- service_list = _current_service_list.__dict__
- new_services = [service_entry]
- for key, value in service_list.iteritems():
- if key != 'linklocal_service_entry':
- continue
- for _entry in value:
- entry = _entry.__dict__
- if 'linklocal_service_name' in entry:
- if entry['linklocal_service_name'] == name:
- ret['comment'] = 'Link local service ' + name + ' already exists'
- return ret
- new_services.append(_entry)
- if __opts__['test']:
- ret['result'] = None
- ret['comment'] = "LinkLocalSevices " + name + " will be created"
- service_list[key] = new_services
- new_config = GlobalVrouterConfig(linklocal_services=service_list)
- if __opts__['test']:
- ret['result'] = None
- ret['comment'] = "LinkLocalSevices " + name + " will be updated"
- else:
- vnc_client.global_vrouter_config_update(new_config)
- ret['comment'] = "LinkLocalSevices " + name + " has been created"
- ret['changes'] = {'LinkLocalSevices': {'old': '', 'new': name}}
+ service_list = _current_service_list.__dict__
+ new_services = [service_entry]
+ value = service_list.get('linklocal_service_entry')
+ for _entry in value:
+ entry = _entry.__dict__
+ if 'linklocal_service_name' in entry:
+ if entry['linklocal_service_name'] == name:
+ ret['comment'] = 'Link local service ' + name + ' already exists'
+ return ret
+ new_services.append(_entry)
+ if __opts__['test']:
+ ret['result'] = None
+ ret['comment'] = "LinkLocalSevices " + name + " will be created"
+ service_list['linklocal_service_entry'] = new_services
+ new_config = GlobalVrouterConfig(linklocal_services=service_list)
+ if __opts__['test']:
+ ret['result'] = None
+ ret['comment'] = "LinkLocalSevices " + name + " will be updated"
+ else:
+ vnc_client.global_vrouter_config_update(new_config)
+ ret['comment'] = "LinkLocalSevices " + name + " has been created"
+ ret['changes'] = {'LinkLocalSevices': {'old': '', 'new': name}}
return ret
@@ -1402,10 +1397,8 @@
'result': True,
'comment': ''}
lls = linklocal_service_get(name)
- print (lls)
if name in lls:
if __opts__['test']:
- print " ------------ Test only ------------"
ret['result'] = None
ret['comment'] = "Link local service " + name + " will be deleted"
return ret
@@ -1433,7 +1426,10 @@
new_config = GlobalVrouterConfig(linklocal_services=service_list)
vnc_client.global_vrouter_config_update(new_config)
ret['comment'] = "Link local service " + name + " will be deleted"
- ret['changes'] = {'LinkLocalService': {'old': '', 'new': name}}
+ ret['changes'] = {'LinkLocalService': {'old': name, 'new': ''}}
+ else:
+ ret['result'] = False
+ ret['comment'] = "Global Vrouter Config doesn't exist and is required for LinkLocalSevices"
return ret
diff --git a/metadata/service/compute/cluster.yml b/metadata/service/compute/cluster.yml
index 50542d1..a3729e8 100644
--- a/metadata/service/compute/cluster.yml
+++ b/metadata/service/compute/cluster.yml
@@ -5,4 +5,15 @@
parameters:
opencontrail:
compute:
- enabled: true
+ enabled: True
+ version: ${_param:opencontrail_version}
+ disable_flow_collection: False
+ bind:
+ address: ${_param:single_address}
+ interface:
+ address: ${_param:opencontrail_compute_address}
+ dev: ${_param:opencontrail_compute_iface}
+ gateway: ${_param:opencontrail_compute_gateway}
+ mask: ${_param:opencontrail_compute_iface_mask}
+ dns: ${_param:opencontrail_compute_dns}
+ mtu: 9000
\ No newline at end of file
diff --git a/metadata/service/compute/single.yml b/metadata/service/compute/single.yml
index 05ca1bc..115ef4c 100644
--- a/metadata/service/compute/single.yml
+++ b/metadata/service/compute/single.yml
@@ -3,12 +3,17 @@
classes:
- service.opencontrail.support
parameters:
- _param:
- opencontrail_version: 2.2
opencontrail:
compute:
- version: ${_param:opencontrail_version}
enabled: true
+ version: ${_param:opencontrail_version}
+ interface:
+ address: ${_param:opencontrail_compute_address}
+ dev: ${_param:opencontrail_compute_iface}
+ gateway: ${_param:opencontrail_compute_gateway}
+ mask: ${_param:opencontrail_compute_iface_mask}
+ dns: ${_param:opencontrail_compute_dns}
+ mtu: 9000
nova:
compute:
networking: contrail
diff --git a/metadata/service/control/analytics.yml b/metadata/service/control/analytics.yml
index 936e5f7..e3fb303 100644
--- a/metadata/service/control/analytics.yml
+++ b/metadata/service/control/analytics.yml
@@ -3,16 +3,6 @@
classes:
- service.opencontrail.support
parameters:
- _param:
- opencontrail_version: 2.2
- opencontrail_identity_protocol: http
- opencontrail_identity_port: 35357
- opencontrail_identity_version: '2.0'
- opencontrail_admin_password: 'none'
- opencontrail_admin_user: 'contrail'
- keystone_service_token: 'none'
- opencontrail_redis_password: 'none'
- openstack_region: RegionOne
opencontrail:
common:
version: ${_param:opencontrail_version}
diff --git a/metadata/service/control/cluster.yml b/metadata/service/control/cluster.yml
index 2450352..48d048c 100644
--- a/metadata/service/control/cluster.yml
+++ b/metadata/service/control/cluster.yml
@@ -3,16 +3,6 @@
classes:
- service.opencontrail.support
parameters:
- _param:
- opencontrail_version: 2.2
- opencontrail_identity_protocol: http
- opencontrail_identity_port: 35357
- opencontrail_identity_version: '2.0'
- opencontrail_admin_password: 'none'
- opencontrail_admin_user: 'contrail'
- keystone_service_token: 'none'
- opencontrail_redis_password: 'none'
- openstack_region: RegionOne
opencontrail:
common:
version: ${_param:opencontrail_version}
diff --git a/metadata/service/control/control.yml b/metadata/service/control/control.yml
index 3d618f2..7ea5014 100644
--- a/metadata/service/control/control.yml
+++ b/metadata/service/control/control.yml
@@ -3,16 +3,6 @@
classes:
- service.opencontrail.support
parameters:
- _param:
- opencontrail_version: 2.2
- opencontrail_identity_protocol: http
- opencontrail_identity_port: 35357
- opencontrail_identity_version: '2.0'
- opencontrail_admin_password: 'none'
- opencontrail_admin_user: 'contrail'
- keystone_service_token: 'none'
- openstack_region: RegionOne
- opencontrail_redis_password: 'none'
opencontrail:
common:
version: ${_param:opencontrail_version}
diff --git a/metadata/service/control/single.yml b/metadata/service/control/single.yml
index 5478d5c..7012569 100644
--- a/metadata/service/control/single.yml
+++ b/metadata/service/control/single.yml
@@ -3,16 +3,6 @@
classes:
- service.opencontrail.support
parameters:
- _param:
- opencontrail_version: 2.2
- opencontrail_identity_protocol: http
- opencontrail_identity_port: 35357
- opencontrail_identity_version: '2.0'
- opencontrail_admin_password: 'none'
- opencontrail_admin_user: 'contrail'
- keystone_service_token: 'none'
- openstack_region: RegionOne
- opencontrail_redis_password: 'none'
opencontrail:
common:
version: ${_param:opencontrail_version}
diff --git a/opencontrail/client.sls b/opencontrail/client.sls
index 0768fd8..a74d607 100644
--- a/opencontrail/client.sls
+++ b/opencontrail/client.sls
@@ -153,6 +153,8 @@
- api_server_ip: {{ client.api.host }}
- api_server_port: {{ client.api.port }}
- api_base_url: '/'
+ - require:
+ - contrail: global_vrouter_config_create
{%- endfor %}
diff --git a/opencontrail/files/4.0/contrail-collector.conf b/opencontrail/files/4.0/contrail-collector.conf
index 505ad1d..b2ade38 100644
--- a/opencontrail/files/4.0/contrail-collector.conf
+++ b/opencontrail/files/4.0/contrail-collector.conf
@@ -133,6 +133,12 @@
#high_watermark2.message_severity_level=SYS_DEBUG
#low_watermark2.message_severity_level=INVALID
+{%- if collector.database is defined %}
+disable_all_writes={{ collector.database.get('disable_all_writes','false')|lower }}
+disable_statistics_writes={{ collector.database.get('disable_statistics_writes','false')|lower }}
+disable_message_writes={{ collector.database.get('disable_message_writes','false')|lower }}
+{%- endif %}
+
[REDIS]
port=6379
server=127.0.0.1
diff --git a/opencontrail/meta/salt.yml b/opencontrail/meta/salt.yml
index 21080ce..968da5d 100644
--- a/opencontrail/meta/salt.yml
+++ b/opencontrail/meta/salt.yml
@@ -40,4 +40,10 @@
require:
- salt: opencontrail.config
- salt: opencontrail.collector
+dependency:
+ {% from "opencontrail/map.jinja" import client with context %}
+ {%- if client.get('enabled', False) %}
+ engine: pkg
+ pkgs: {{ client.pkgs }}
+ {%- endif %}