Merge "reclass: maas: Dynamic machine definitions"
[fuel.git] / mcp / salt-formulas / opendaylight / server.sls
index cb5b312..e709313 100644 (file)
@@ -1,10 +1,36 @@
+##############################################################################
+# Copyright (c) 2017 Mirantis Inc. and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
 {% from "opendaylight/map.jinja" import server with context %}
+{% from "linux/map.jinja" import system with context %}
 
 {%- if server.enabled %}
 
+opendaylight_repo_key:
+  cmd.run:
+    - name: "apt-key adv --keyserver keyserver.ubuntu.com --recv 44C05248"
+{%- if system.proxy is defined and system.proxy.keyserver is defined %}
+    - env:
+{%- if system.proxy.keyserver.http is defined and grains['dns']['nameservers'][0] in system.proxy.keyserver.http %}
+      - http_proxy: {{ system.proxy.keyserver.http }}
+{%- endif %}
+{%- if system.proxy.keyserver.https is defined and grains['dns']['nameservers'][0] in system.proxy.keyserver.https %}
+      - https_proxy: {{ system.proxy.keyserver.https }}
+{%- endif %}
+{%- endif %}
+
 opendaylight_repo:
   pkgrepo.managed:
-  - ppa: {{ server.repo }}
+  # NOTE(armband): PPA handling behind proxy broken, define it explicitly
+  # https://github.com/saltstack/salt/pull/45224
+  # - ppa: {{ server.repo }}
+  - human_name: opendaylight-ppa
+  - name: deb http://ppa.launchpad.net/odl-team/nitrogen/ubuntu xenial main
+  - file: /etc/apt/sources.list.d/odl-team-ubuntu-nitrogen-xenial.list
 
 opendaylight:
   pkg.installed:
@@ -13,13 +39,15 @@ opendaylight:
   - require_in:
     - file: /opt/opendaylight/etc/jetty.xml
     - file: /opt/opendaylight/bin/setenv
-    - file: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+    - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+    - ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg
   service.running:
   - enable: true
   - watch:
     - file: /opt/opendaylight/etc/jetty.xml
     - file: /opt/opendaylight/bin/setenv
-    - file: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+    - ini: /opt/opendaylight/etc/org.apache.karaf.features.cfg
+    - ini: /opt/opendaylight/etc/org.ops4j.pax.web.cfg
 
 /opt/opendaylight/etc/jetty.xml:
   file.managed:
@@ -42,8 +70,25 @@ opendaylight:
 {% endset %}
 
 /opt/opendaylight/etc/org.apache.karaf.features.cfg:
-  file.replace:
-  - pattern: ^featuresBoot=.*$
-  - repl: "featuresBoot={{ features }}"
+  ini.options_present:
+    - sections:
+        featuresBoot: {{ features }}
+
+/opt/opendaylight/etc/org.ops4j.pax.web.cfg:
+  ini.options_present:
+    - sections:
+        org.ops4j.pax.web.listening.addresses: {{ server.odl_bind_ip }}
+
+{%- if server.get('router_enabled', false) %}
+/opt/opendaylight/etc/custom.properties:
+  ini.options_present:
+    - sections:
+        ovsdb.l3.fwd.enabled: 'yes'
+        ovsdb.of.version: 1.3
+    - require:
+      - pkg: opendaylight
+    - watch_in:
+      - service: opendaylight
+{%- endif %}
 
 {%- endif %}