Merge "Add system reclass for gnocchi"
diff --git a/apache/server/site/manila.yml b/apache/server/site/manila.yml
new file mode 100644
index 0000000..2e32e00
--- /dev/null
+++ b/apache/server/site/manila.yml
@@ -0,0 +1,43 @@
+parameters:
+  _param:
+    apache_manila_ssl:
+      enabled: false
+    apache_manila_api_address: 0.0.0.0
+    apache_manila_api_host: ${linux:network:fqdn}
+  manila:
+    server:
+      service_name: apache2
+  apache:
+    server:
+      enabled: true
+      default_mpm: event
+      site:
+        manila:
+          enabled: false
+          available: true
+          type: wsgi
+          name: manila
+          wsgi:
+            daemon_process: manila-api
+            threads: 2
+            user: manila
+            group: manila
+            display_name: '%{GROUP}'
+            script_alias: '/ /usr/bin/manila-wsgi'
+            application_group: '%{GLOBAL}'
+            authorization: 'On'
+          limits:
+            request_body: 114688
+          host:
+            address: ${_param:apache_manila_api_address}
+            name: ${_param:apache_manila_api_host}
+            port: 8786
+          log:
+            custom:
+              format: >-
+                %v:%p %{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %D %O \"%{Referer}i\" \"%{User-Agent}i\"
+            error:
+              enabled: true
+              level: debug
+              format: '%M'
+              file: '/var/log/manila/manila-api.log'
diff --git a/debmirror/mirror_mirantis_com/ubuntu/xenial.yml b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
new file mode 100644
index 0000000..73047b2
--- /dev/null
+++ b/debmirror/mirror_mirantis_com/ubuntu/xenial.yml
@@ -0,0 +1,32 @@
+parameters:
+  _param:
+    apt_mk_version: 'stable'
+    mirror_mirantis_com_ubuntu_xenial_force: False
+  debmirror:
+    client:
+      enabled: true
+      mirrors:
+        mirror_mirantis_com_ubuntu_xenial:
+          force: ${_param:mirror_mirantis_com_ubuntu_xenial_force}
+          lock_target: True
+          extra_flags: [ '--verbose', '--progress', '--nosource', '--no-check-gpg', '--rsync-extra=none' ]
+          method: "rsync"
+          arch: [ 'amd64' ]
+          mirror_host: "mirror.mirantis.com"
+          mirror_root: ":mirror/${_param:apt_mk_version}/ubuntu/"
+          target_dir: "/srv/aptly/public/ubuntu/"
+          log_file: "/var/log/debmirror/mirror_mirantis_com_ubuntu_xenial.log"
+          dist: [ xenial , xenial-security, xenial-updates ]
+          section: [ main , multiverse, restricted, universe ]
+          exclude_deb_section: [ games, gnome, Xfce, sound, electronics, graphics, hamradio , doc, localization, kde, video ]
+          filter:
+            01: "--exclude='/android*'"
+            02: "--exclude='/firefox*'"
+            03: "--exclude='/chromium-browser*'"
+            04: "--exclude='/ceph*'"
+            05: "--exclude='/*-wallpapers*'"
+            06: "--exclude='/language-pack-(?!en)'"
+            07: "--include='/main(.*)manpages'"
+            08: "--include='/main(.*)python-(.*)doc'"
+            09: "--include='/main(.*)python-(.*)network'"
+
diff --git a/galera/server/database/manila.yml b/galera/server/database/manila.yml
new file mode 100644
index 0000000..3339b83
--- /dev/null
+++ b/galera/server/database/manila.yml
@@ -0,0 +1,15 @@
+parameters:
+  mysql:
+    server:
+      database:
+        manila:
+          encoding: utf8
+          users:
+          - name: manila
+            password: ${_param:mysql_manila_password}
+            host: '%'
+            rights: all
+          - name: manila
+            password: ${_param:mysql_manila_password}
+            host: ${_param:cluster_local_address}
+            rights: all
diff --git a/haproxy/proxy/listen/openstack/manila.yml b/haproxy/proxy/listen/openstack/manila.yml
new file mode 100644
index 0000000..a28f365
--- /dev/null
+++ b/haproxy/proxy/listen/openstack/manila.yml
@@ -0,0 +1,23 @@
+parameters:
+  haproxy:
+    proxy:
+      listen:
+        manila_api:
+          type: openstack-service
+          service_name: manila
+          binds:
+          - address: ${_param:cluster_vip_address}
+            port: 8786
+          servers:
+          - name: ${_param:cluster_node01_hostname}
+            host: ${_param:cluster_node01_address}
+            port: 8786
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ${_param:cluster_node02_hostname}
+            host: ${_param:cluster_node02_address}
+            port: 8786
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
+          - name: ${_param:cluster_node03_hostname}
+            host: ${_param:cluster_node03_address}
+            port: 8786
+            params: check inter 10s fastinter 2s downinter 3s rise 3 fall 3
diff --git a/haproxy/proxy/listen/openstack/nova-placement.yml b/haproxy/proxy/listen/openstack/nova-placement.yml
index de0504b..58c9dd2 100644
--- a/haproxy/proxy/listen/openstack/nova-placement.yml
+++ b/haproxy/proxy/listen/openstack/nova-placement.yml
@@ -2,9 +2,18 @@
   haproxy:
     proxy:
       listen:
+        # Nova placement API returns 401 when doing GET to root URL, while
+        # other serivces normally returns 200 and API versions data.
         nova_placement_api:
-          type: openstack-service
+          mode: http
           service_name: nova_placement
+          options:
+            - httpclose
+            - httplog
+          health-check:
+            http:
+              options:
+              - expect status 401
           binds:
           - address: ${_param:cluster_vip_address}
             port: 8778
diff --git a/horizon/server/plugin/manila.yml b/horizon/server/plugin/manila.yml
new file mode 100644
index 0000000..53ad9b6
--- /dev/null
+++ b/horizon/server/plugin/manila.yml
@@ -0,0 +1,8 @@
+parameters:
+  horizon:
+    server:
+      plugin:
+        manila:
+          source:
+            engine: pkg
+            name: python-manila-ui
diff --git a/jenkins/client/job/git-mirrors/2way.yml b/jenkins/client/job/git-mirrors/2way.yml
index 3b1a62f..4b4d0a3 100644
--- a/jenkins/client/job/git-mirrors/2way.yml
+++ b/jenkins/client/job/git-mirrors/2way.yml
@@ -11,6 +11,14 @@
               source: mcp/mcp-common-scripts
               target: Mirantis/mcp-common-scripts
               branches: "master"
+            - name: mcp-local-repo-model
+              source: mcp/mcp-local-repo-model
+              target: Mirantis/mcp-local-repo-model
+              branches: "master"
+            - name: mcp-offline-model
+              source: mcp/mcp-offline-model
+              target: Mirantis/mcp-offline-model
+              branches: "master"
           template:
             discard:
               build:
diff --git a/keystone/client/service/manila.yml b/keystone/client/service/manila.yml
new file mode 100644
index 0000000..07e88b2
--- /dev/null
+++ b/keystone/client/service/manila.yml
@@ -0,0 +1,33 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+    manila_service_protocol: http
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                manila:
+                  is_admin: true
+                  password: ${_param:keystone_manila_password}
+                  email: ${_param:admin_email}
+          service:
+            manila:
+              type: share
+              description: OpenStack Shared File Systems V1
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 8786
+                public_path: '/v1/$(tenant_id)s'
+                internal_address: ${_param:manila_service_host}
+                internal_port: 8786
+                internal_path: '/v1/$(tenant_id)s'
+                internal_protocol: ${_param:manila_service_protocol}
+                admin_protocol: ${_param:manila_service_protocol}
+                admin_address: ${_param:manila_service_host}
+                admin_port: 8786
+                admin_path: '/v1/$(tenant_id)s'
diff --git a/keystone/client/service/manila2.yml b/keystone/client/service/manila2.yml
new file mode 100644
index 0000000..1a3a125
--- /dev/null
+++ b/keystone/client/service/manila2.yml
@@ -0,0 +1,33 @@
+parameters:
+  _param:
+    cluster_public_protocol: https
+    manila_service_protocol: http
+  keystone:
+    client:
+      server:
+        identity:
+          project:
+            service:
+              user:
+                manila:
+                  is_admin: true
+                  password: ${_param:keystone_manila_password}
+                  email: ${_param:admin_email}
+          service:
+            manilav2:
+              type: sharev2
+              description: OpenStack Shared File Systems V2
+              endpoints:
+              - region: ${_param:openstack_region}
+                public_address: ${_param:cluster_public_host}
+                public_protocol: ${_param:cluster_public_protocol}
+                public_port: 8786
+                public_path: '/v2/$(tenant_id)s'
+                internal_address: ${_param:manila_service_host}
+                internal_port: 8786
+                internal_path: '/v2/$(tenant_id)s'
+                internal_protocol: ${_param:manila_service_protocol}
+                admin_protocol: ${_param:manila_service_protocol}
+                admin_address: ${_param:manila_service_host}
+                admin_port: 8786
+                admin_path: '/v2/$(tenant_id)s'
diff --git a/linux/storage/loopback_manila.yml b/linux/storage/loopback_manila.yml
new file mode 100644
index 0000000..6a9986c
--- /dev/null
+++ b/linux/storage/loopback_manila.yml
@@ -0,0 +1,8 @@
+parameters:
+  linux:
+    storage:
+      enabled: true
+      loopback:
+        loop1:
+          file: "/srv/disk1"
+          size: ${_param:loopback_device1_size}G
diff --git a/manila/common/cluster.yml b/manila/common/cluster.yml
new file mode 100644
index 0000000..8763903
--- /dev/null
+++ b/manila/common/cluster.yml
@@ -0,0 +1,34 @@
+classes:
+ - service.manila.common.cluster
+ - service.haproxy.proxy.single
+ - system.haproxy.proxy.listen.openstack.manila
+parameters:
+  manila:
+    common:
+      version: ${_param:openstack_version}
+      message_queue:
+        engine: rabbitmq
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+        host: ${_param:openstack_message_queue_address}
+      database:
+        engine: mysql
+        host: ${_param:openstack_database_address}
+        port: 3306
+        name: manila
+        user: manila
+        password: ${_param:mysql_manila_password}
+      identity:
+        engine: keystone
+        region: RegionOne
+        host: ${_param:cluster_vip_address}
+        port: 35357
+        user: manila
+        password: ${_param:keystone_manila_password}
+        tenant: service
+        auth_type: password
+        user_domain_id: default
+        project_domain_id: default
+        protocol: 'http'
diff --git a/manila/common/single.yml b/manila/common/single.yml
new file mode 100644
index 0000000..362338f
--- /dev/null
+++ b/manila/common/single.yml
@@ -0,0 +1,32 @@
+classes:
+ - service.manila.common.single
+parameters:
+  manila:
+    common:
+      version: ${_param:openstack_version}
+      message_queue:
+        engine: rabbitmq
+        port: 5672
+        user: openstack
+        password: ${_param:rabbitmq_openstack_password}
+        virtual_host: '/openstack'
+        host: ${_param:single_address}
+      database:
+        engine: mysql
+        host: ${_param:single_address}
+        port: 3306
+        name: manila
+        user: manila
+        password: ${_param:mysql_manila_password}
+      identity:
+        engine: keystone
+        region: RegionOne
+        host: ${_param:single_address}
+        port: 35357
+        user: manila
+        password: ${_param:keystone_manila_password}
+        tenant: service
+        auth_type: password
+        user_domain_id: default
+        project_domain_id: default
+        protocol: 'http'
diff --git a/manila/share/backend/lvm.yml b/manila/share/backend/lvm.yml
new file mode 100644
index 0000000..488de4d
--- /dev/null
+++ b/manila/share/backend/lvm.yml
@@ -0,0 +1,20 @@
+parameters:
+  linux:
+    storage:
+      lvm:
+        manila-vg:
+          enabled: true
+          name: manila-volume
+          devices: ${_param:manila_lvm_devices}
+  manila:
+    share:
+      enabled_share_backends:
+        lvm:
+          name: lvm
+          type: lvm
+          enabled: true
+          lvm_share_export_ips:
+            - "${_param:single_address}"
+          dhss: false
+          share_driver: manila.share.drivers.lvm.LVMShareDriver
+          lvm_share_volume_group: manila-volume
diff --git a/neutron/client/service/manila.yml b/neutron/client/service/manila.yml
new file mode 100644
index 0000000..cdbc7bb
--- /dev/null
+++ b/neutron/client/service/manila.yml
@@ -0,0 +1,21 @@
+classes:
+- service.neutron.client
+parameters:
+  neutron:
+    client:
+      server:
+        admin_identity:
+          endpoint_type: internalURL
+          network:
+            manila-share-network:
+              tenant: admin
+              shared: false
+              admin_state_up: True
+              port_security_enabled: false
+              subnet:
+                manila-share-subnet:
+                  cidr: ${_param:openstack_manila_share_neutron_subnet_cidr}
+                  allocation_pools:
+                    - start: ${_param:openstack_manila_share_neutron_subnet_allocation_start}
+                      end: ${_param:openstack_manila_share_neutron_subnet_allocation_end}
+                  enable_dhcp: true
diff --git a/nginx/server/proxy/openstack/manila.yml b/nginx/server/proxy/openstack/manila.yml
new file mode 100644
index 0000000..050d0de
--- /dev/null
+++ b/nginx/server/proxy/openstack/manila.yml
@@ -0,0 +1,22 @@
+parameters:
+  _param:
+    nginx_proxy_openstack_api_host: ${_param:cluster_public_host}
+    nginx_proxy_openstack_api_address: 0.0.0.0
+    nginx_proxy_openstack_manila_host: ${_param:manila_service_host}
+  nginx:
+    server:
+      enabled: true
+      site:
+        nginx_proxy_openstack_api_manila:
+          enabled: true
+          type: nginx_proxy
+          name: openstack_api_manila
+          proxy:
+            host: ${_param:nginx_proxy_openstack_manila_host}
+            port: 8786
+            protocol: http
+          host:
+            name: ${_param:nginx_proxy_openstack_api_host}
+            port: 8786
+            address: ${_param:nginx_proxy_openstack_api_address}
+          ssl: ${_param:nginx_proxy_ssl}