Rush has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/373150 )

Change subject: openstack: glance as module/profile/role for deployments
......................................................................

openstack: glance as module/profile/role for deployments

Bug: T171494
Change-Id: Ie250ee4889cd144293c4339b42f01eb16f933ed6
---
M hieradata/codfw/profile/openstack/labtest.yaml
A hieradata/codfw/profile/openstack/labtest/glance.yaml
M hieradata/codfw/profile/openstack/labtestn.yaml
A hieradata/codfw/profile/openstack/labtestn/glance.yaml
A hieradata/common/profile/openstack/base/glance.yaml
M hieradata/common/profile/openstack/base/keystone.yaml
M hieradata/eqiad/profile/openstack/main.yaml
A hieradata/eqiad/profile/openstack/main/glance.yaml
D modules/openstack/manifests/glance/service.pp
R modules/openstack2/files/liberty/glance/policy.json
A modules/openstack2/manifests/glance/image_sync.pp
A modules/openstack2/manifests/glance/monitor.pp
A modules/openstack2/manifests/glance/service.pp
R modules/openstack2/templates/liberty/glance/glance-api.conf.erb
R modules/openstack2/templates/liberty/glance/glance-registry.conf.erb
A modules/profile/manifests/openstack/base/glance.pp
A modules/profile/manifests/openstack/labtest/glance.pp
A modules/profile/manifests/openstack/labtestn/glance.pp
A modules/profile/manifests/openstack/main/glance.pp
D modules/role/manifests/labs/openstack/glance/server.pp
M modules/role/manifests/labs/openstack/nova/controller.pp
M modules/role/manifests/wmcs/openstack/labtest/control.pp
M modules/role/manifests/wmcs/openstack/labtestn/control.pp
M modules/role/manifests/wmcs/openstack/main/control.pp
24 files changed, 314 insertions(+), 165 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/operations/puppet 
refs/changes/50/373150/1

diff --git a/hieradata/codfw/profile/openstack/labtest.yaml 
b/hieradata/codfw/profile/openstack/labtest.yaml
index 6be5986..3e698ce 100644
--- a/hieradata/codfw/profile/openstack/labtest.yaml
+++ b/hieradata/codfw/profile/openstack/labtest.yaml
@@ -1,5 +1,6 @@
 profile::openstack::labtest::version: 'liberty'
 profile::openstack::labtest::nova_controller: 
'labtestcontrol2001.wikimedia.org'
+profile::openstack::labtest::nova_controller_standby: ''
 profile::openstack::labtest::rabbit_monitor_user: 'monitoring'
 profile::openstack::labtest::rabbit_file_handles: 8192
 profile::openstack::labtest::osm_host: 'labtestwikitech.wikimedia.org'
diff --git a/hieradata/codfw/profile/openstack/labtest/glance.yaml 
b/hieradata/codfw/profile/openstack/labtest/glance.yaml
new file mode 100644
index 0000000..0ab782e
--- /dev/null
+++ b/hieradata/codfw/profile/openstack/labtest/glance.yaml
@@ -0,0 +1 @@
+profile::openstack::labtest::glance::db_host: 
'labtestcontrol2001.wikimedia.org'
diff --git a/hieradata/codfw/profile/openstack/labtestn.yaml 
b/hieradata/codfw/profile/openstack/labtestn.yaml
index 4fdb9ac..0aeb103 100644
--- a/hieradata/codfw/profile/openstack/labtestn.yaml
+++ b/hieradata/codfw/profile/openstack/labtestn.yaml
@@ -1,5 +1,6 @@
 profile::openstack::labtestn::version: 'liberty'
 profile::openstack::labtestn::nova_controller: 
'labtestcontrol2003.wikimedia.org'
+profile::openstack::labtestn::nova_controller_standby: ''
 profile::openstack::labtestn::rabbit_monitor_user: 'monitoring'
 profile::openstack::labtestn::rabbit_file_handles: 8192
 profile::openstack::labtestn::osm_host: 'labtestnwikitech.wikimedia.org'
diff --git a/hieradata/codfw/profile/openstack/labtestn/glance.yaml 
b/hieradata/codfw/profile/openstack/labtestn/glance.yaml
new file mode 100644
index 0000000..71fbc32
--- /dev/null
+++ b/hieradata/codfw/profile/openstack/labtestn/glance.yaml
@@ -0,0 +1 @@
+profile::openstack::labtestn::glance::db_host: 
'labtestcontrol2003.wikimedia.org'
diff --git a/hieradata/common/profile/openstack/base/glance.yaml 
b/hieradata/common/profile/openstack/base/glance.yaml
new file mode 100644
index 0000000..31fd0a4
--- /dev/null
+++ b/hieradata/common/profile/openstack/base/glance.yaml
@@ -0,0 +1,4 @@
+profile::openstack::base::glance::db_user: 'glance'
+profile::openstack::base::glance::db_name: 'glance'
+profile::openstack::base::glance::data_dir: '/srv/glance'
+profile::openstack::base::glance::image_dir: '/srv/glance/images'
diff --git a/hieradata/common/profile/openstack/base/keystone.yaml 
b/hieradata/common/profile/openstack/base/keystone.yaml
index 3041820..28a02e6 100644
--- a/hieradata/common/profile/openstack/base/keystone.yaml
+++ b/hieradata/common/profile/openstack/base/keystone.yaml
@@ -2,4 +2,5 @@
 profile::openstack::base::keystone::db_user: 'keystone'
 profile::openstack::base::keystone::auth_protocol: 'http'
 profile::openstack::base::keystone::auth_port: '35357'
+profile::openstack::base::keystone::public_port: '5000'
 profile::openstack::base::keystone::wiki_status_page_prefix: 'Nova_Resource:'
diff --git a/hieradata/eqiad/profile/openstack/main.yaml 
b/hieradata/eqiad/profile/openstack/main.yaml
index 08550c2..2098a60 100644
--- a/hieradata/eqiad/profile/openstack/main.yaml
+++ b/hieradata/eqiad/profile/openstack/main.yaml
@@ -1,5 +1,6 @@
 profile::openstack::main::version: 'liberty'
 profile::openstack::main::nova_controller: 'labcontrol1001.wikimedia.org'
+profile::openstack::main::nova_controller_standby: 
'labcontrol1002.wikimedia.org'
 profile::openstack::main::osm_host: 'wikitech.wikimedia.org'
 profile::openstack::main::rabbit_monitor_user: 'monitoring'
 profile::openstack::main::rabbit_file_handles: 8192
diff --git a/hieradata/eqiad/profile/openstack/main/glance.yaml 
b/hieradata/eqiad/profile/openstack/main/glance.yaml
new file mode 100644
index 0000000..cc82ca6
--- /dev/null
+++ b/hieradata/eqiad/profile/openstack/main/glance.yaml
@@ -0,0 +1 @@
+profile::openstack::main::glance::db_host: 'm5-master.eqiad.wmnet'
diff --git a/modules/openstack/manifests/glance/service.pp 
b/modules/openstack/manifests/glance/service.pp
deleted file mode 100644
index 91092c9..0000000
--- a/modules/openstack/manifests/glance/service.pp
+++ /dev/null
@@ -1,144 +0,0 @@
-class openstack::glance::service(
-    $active_server,
-    $standby_server,
-    $keystone_host,
-    $glanceconfig,
-    $keystoneconfig,
-    $openstack_version=$::openstack::version,
-    $glance_data = '/srv/glance/',
-) {
-    $glance_images_dir = "${glance_data}/images"
-    $keystone_host_ip  = ipresolve($keystone_host,4)
-    $keystone_admin_uri = 
"http://${active_server}:${keystoneconfig['auth_port']}"
-    $keystone_public_uri = 
"http://${active_server}:${keystoneconfig['public_port']}"
-
-    # Set up a keypair and rsync image files between active and standby
-    user { 'glancesync':
-        ensure     => present,
-        name       => 'glancesync',
-        shell      => '/bin/sh',
-        comment    => 'glance rsync user',
-        gid        => 'glance',
-        managehome => true,
-        require    => Package['glance'],
-        system     => true,
-    }
-
-    ssh::userkey { 'glancesync':
-        ensure  => present,
-        require => User['glancesync'],
-        content => secret('ssh/glancesync/glancesync.pub'),
-    }
-
-    package { 'glance':
-        ensure  => present,
-    }
-
-    file { $glance_data:
-        ensure  => directory,
-        owner   => 'glance',
-        group   => 'glance',
-        require => Package['glance'],
-        mode    => '0755',
-    }
-
-    #  This is 775 so that the glancesync user can rsync to it.
-    file { $glance_images_dir:
-        ensure  => directory,
-        owner   => 'glance',
-        group   => 'glance',
-        require => Package['glance'],
-        mode    => '0775',
-    }
-
-    file {
-        '/etc/glance/glance-api.conf':
-            content => 
template("openstack/${openstack_version}/glance/glance-api.conf.erb"),
-            owner   => 'glance',
-            group   => 'nogroup',
-            notify  => Service['glance-api'],
-            require => Package['glance'],
-            mode    => '0440';
-        '/etc/glance/glance-registry.conf':
-            content => 
template("openstack/${openstack_version}/glance/glance-registry.conf.erb"),
-            owner   => 'glance',
-            group   => 'nogroup',
-            notify  => Service['glance-registry'],
-            require => Package['glance'],
-            mode    => '0440';
-        '/etc/glance/policy.json':
-            source  => 
"puppet:///modules/openstack/${openstack_version}/glance/policy.json",
-            mode    => '0644',
-            owner   => 'root',
-            group   => 'root',
-            notify  => Service['glance-api'],
-            require => Package['glance'];
-    }
-
-    file { '/home/glancesync/.ssh':
-        ensure  => directory,
-        owner   => 'glancesync',
-        group   => 'glance',
-        mode    => '0700',
-        require => User['glancesync'],
-    }
-
-    file { '/home/glancesync/.ssh/id_rsa':
-        content   => secret('ssh/glancesync/glancesync.key'),
-        owner     => 'glancesync',
-        group     => 'glance',
-        mode      => '0600',
-        require   => File['/home/glancesync/.ssh'],
-        show_diff => false,
-    }
-
-    if $::fqdn == $active_server {
-        service { 'glance-api':
-            ensure  => running,
-            require => Package['glance'],
-        }
-
-        service { 'glance-registry':
-            ensure  => running,
-            require => Package['glance'],
-        }
-
-        if $standby_server != $active_server {
-            cron { 'rsync_glance_images':
-                command => "/usr/bin/rsync --delete --delete-after -aSO 
${glance_images_dir}/ ${standby_server}:${glance_images_dir}/",
-                minute  => 15,
-                user    => 'glancesync',
-                require => User['glancesync'],
-            }
-        } else {
-            # If the active and the standby are the same, it's not useful to 
sync
-            cron { 'rsync_glance_images':
-                ensure  => absent,
-                command => "/usr/bin/rsync -aS ${glance_images_dir}/* 
${standby_server}:${glance_images_dir}/",
-                minute  => 15,
-                user    => 'glancesync',
-                require => User['glancesync'],
-            }
-        }
-
-        monitoring::service { 'glance-api-http':
-            description   => 'glance-api http',
-            check_command => 'check_http_on_port!9292',
-        }
-    } else {
-        service { 'glance-api':
-            ensure  => stopped,
-            require => Package['glance'],
-        }
-
-        service { 'glance-registry':
-            ensure  => stopped,
-            require => Package['glance'],
-        }
-        cron { 'rsync_chown_images':
-            command => "chown -R glance ${glance_images_dir}/*",
-            minute  => 30,
-            user    => 'root',
-        }
-    }
-}
diff --git a/modules/openstack/files/liberty/glance/policy.json 
b/modules/openstack2/files/liberty/glance/policy.json
similarity index 100%
rename from modules/openstack/files/liberty/glance/policy.json
rename to modules/openstack2/files/liberty/glance/policy.json
diff --git a/modules/openstack2/manifests/glance/image_sync.pp 
b/modules/openstack2/manifests/glance/image_sync.pp
new file mode 100644
index 0000000..b6cb67b
--- /dev/null
+++ b/modules/openstack2/manifests/glance/image_sync.pp
@@ -0,0 +1,82 @@
+class openstack2::glance::image_sync(
+    $active,
+    $version,
+    $glance_image_dir,
+    $nova_controller_standby='',
+) {
+
+    require openstack2::glance::service
+
+    # Cron doesn't take a bool
+    if $active {
+        $ensure = 'present'
+    }
+    else {
+        $ensure = 'absent'
+    }
+
+    # Set up a keypair and rsync image files between active and standby
+    user { 'glancesync':
+        ensure     => present,
+        name       => 'glancesync',
+        shell      => '/bin/sh',
+        comment    => 'glance rsync user',
+        gid        => 'glance',
+        managehome => true,
+        require    => Package['glance'],
+        system     => true,
+    }
+
+    ssh::userkey { 'glancesync':
+        ensure  => present,
+        require => User['glancesync'],
+        content => secret('ssh/glancesync/glancesync.pub'),
+    }
+
+    file { '/home/glancesync/.ssh':
+        ensure  => directory,
+        owner   => 'glancesync',
+        group   => 'glance',
+        mode    => '0700',
+        require => User['glancesync'],
+    }
+
+    file { '/home/glancesync/.ssh/id_rsa':
+        content   => secret('ssh/glancesync/glancesync.key'),
+        owner     => 'glancesync',
+        group     => 'glance',
+        mode      => '0600',
+        require   => File['/home/glancesync/.ssh'],
+        show_diff => false,
+    }
+
+    if $active and !empty($nova_controller_standby) {
+        cron { 'rsync_glance_images':
+            ensure  => $ensure,
+            command => "/usr/bin/rsync --delete --delete-after -aSO 
${glance_image_dir}/ ${nova_controller_standby}:${glance_image_dir}/",
+            minute  => 15,
+            user    => 'glancesync',
+            require => User['glancesync'],
+        }
+    }
+
+    # If we are not the active server and are definitely
+    # the standby then setup the permissions insurance
+    # XXX: what is this for?
+    if !($active) {
+
+        if ($::fqdn == $nova_controller_standby) {
+            $chown_ensure = 'present'
+        }
+        else {
+            $chown_ensure = 'absent'
+        }
+
+        cron { 'rsync_chown_images':
+            ensure  => $chown_ensure,
+            command => "chown -R glance ${glance_image_dir}/*",
+            minute  => 30,
+            user    => 'root',
+        }
+    }
+}
diff --git a/modules/openstack2/manifests/glance/monitor.pp 
b/modules/openstack2/manifests/glance/monitor.pp
new file mode 100644
index 0000000..b34dc9a
--- /dev/null
+++ b/modules/openstack2/manifests/glance/monitor.pp
@@ -0,0 +1,20 @@
+class openstack2::glance::monitor(
+    $active,
+) {
+
+    require openstack2::glance::service
+
+    # nagios doesn't take a bool
+    if $active {
+        $ensure = 'present'
+    }
+    else {
+        $ensure = 'absent'
+    }
+
+    monitoring::service { 'glance-api-http':
+        ensure        => $ensure,
+        description   => 'glance-api http',
+        check_command => 'check_http_on_port!9292',
+    }
+}
diff --git a/modules/openstack2/manifests/glance/service.pp 
b/modules/openstack2/manifests/glance/service.pp
new file mode 100644
index 0000000..27937ac
--- /dev/null
+++ b/modules/openstack2/manifests/glance/service.pp
@@ -0,0 +1,84 @@
+class openstack2::glance::service(
+    $active,
+    $version, 
+    $nova_controller_ip,
+    $nova_controller_standby,
+    $db_user,
+    $db_pass,
+    $db_name,
+    $db_host,
+    $glance_data,
+    $glance_image_dir,
+    $ldap_user_pass,
+    $keystone_admin_uri,
+    $keystone_public_uri,
+) {
+
+    package { 'glance':
+        ensure  => present,
+    }
+
+    file { $glance_data:
+        ensure  => directory,
+        owner   => 'glance',
+        group   => 'glance',
+        require => Package['glance'],
+        mode    => '0755',
+    }
+
+    #  This is 775 so that the glancesync user can rsync to it.
+    file { $glance_image_dir:
+        ensure  => directory,
+        owner   => 'glance',
+        group   => 'glance',
+        require => Package['glance'],
+        mode    => '0775',
+    }
+
+    file {
+        '/etc/glance/glance-api.conf':
+            content => 
template("openstack2/${version}/glance/glance-api.conf.erb"),
+            owner   => 'glance',
+            group   => 'nogroup',
+            mode    => '0440',
+            notify  => Service['glance-api'],
+            require => Package['glance'];
+        '/etc/glance/glance-registry.conf':
+            content => 
template("openstack2/${version}/glance/glance-registry.conf.erb"),
+            owner   => 'glance',
+            group   => 'nogroup',
+            mode    => '0440',
+            notify  => Service['glance-registry'],
+            require => Package['glance'];
+        '/etc/glance/policy.json':
+            source  => 
"puppet:///modules/openstack2/${version}/glance/policy.json",
+            owner   => 'root',
+            group   => 'root',
+            mode    => '0644',
+            notify  => Service['glance-api'],
+            require => Package['glance'];
+    }
+
+    if $active {
+
+        service { 'glance-api':
+            ensure  => running,
+            require => Package['glance'],
+        }
+
+        service { 'glance-registry':
+            ensure  => running,
+            require => Package['glance'],
+        }
+    } else {
+        service { 'glance-api':
+            ensure  => stopped,
+            require => Package['glance'],
+        }
+
+        service { 'glance-registry':
+            ensure  => stopped,
+            require => Package['glance'],
+        }
+    }
+}
diff --git a/modules/openstack/templates/liberty/glance/glance-api.conf.erb 
b/modules/openstack2/templates/liberty/glance/glance-api.conf.erb
similarity index 97%
rename from modules/openstack/templates/liberty/glance/glance-api.conf.erb
rename to modules/openstack2/templates/liberty/glance/glance-api.conf.erb
index 1a5efa2..74ad292 100644
--- a/modules/openstack/templates/liberty/glance/glance-api.conf.erb
+++ b/modules/openstack2/templates/liberty/glance/glance-api.conf.erb
@@ -21,7 +21,7 @@
 #image_size_cap = 1099511627776
 
 # Address to bind the API server
-bind_host = <%= @glanceconfig["bind_ip"] %>
+bind_host = <%= @nova_controller_ip %>
 
 # Port the bind the API server to
 bind_port = 9292
@@ -96,7 +96,7 @@
 # ============ Registry Options ===============================
 
 # Address to find the registry server
-registry_host = <%= @glanceconfig["bind_ip"] %>
+registry_host = <%= @nova_controller_ip %>
 
 # Port the registry server is listening on
 registry_port = 9191
@@ -279,7 +279,7 @@
 auth_uri = <%= @keystone_public_uri %>
 identity_uri = <%= @keystone_admin_uri %>
 admin_user = novaadmin
-admin_password = <%= @keystoneconfig["ldap_user_pass"] %>
+admin_password = <%= @ldap_user_pass %>
 
 [paste_deploy]
 # Name of the paste configuration file that defines the available pipelines
@@ -295,7 +295,7 @@
 # SQLAlchemy connection string for the reference implementation
 # registry server. Any valid SQLAlchemy connection string is fine.
 # See: 
http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
-connection =  mysql://<%= @glanceconfig["db_user"] %>:<%= 
@glanceconfig["db_pass"] %>@<%= @glanceconfig["db_host"] %>/<%= 
@glanceconfig["db_name"] %>
+connection =  mysql://<%= @db_user %>:<%= @db_pass %>@<%= @db_host %>/<%= 
@db_name %>
 
 [glance_store]
 # Which backend scheme should Glance use by default is not specified
@@ -320,4 +320,3 @@
 rabbit_notification_exchange = glance
 rabbit_notification_topic = glance_notifications
 rabbit_durable_queues = False
-
diff --git 
a/modules/openstack/templates/liberty/glance/glance-registry.conf.erb 
b/modules/openstack2/templates/liberty/glance/glance-registry.conf.erb
similarity index 91%
rename from modules/openstack/templates/liberty/glance/glance-registry.conf.erb
rename to modules/openstack2/templates/liberty/glance/glance-registry.conf.erb
index 83141a1..eaf3cc3 100644
--- a/modules/openstack/templates/liberty/glance/glance-registry.conf.erb
+++ b/modules/openstack2/templates/liberty/glance/glance-registry.conf.erb
@@ -6,7 +6,7 @@
 debug = False
 
 # Address to bind the registry server
-bind_host = <%= @glanceconfig["bind_ip"] %>
+bind_host = <%= @nova_controller_ip %>
 
 # Port the bind the registry server to
 bind_port = 9191
@@ -58,7 +58,7 @@
 auth_uri = <%= @keystone_public_uri %>
 identity_uri = <%= @keystone_admin_uri %>
 admin_user = novaadmin
-admin_password = <%= @keystoneconfig["ldap_user_pass"] %>
+admin_password = <%= @ldap_user_pass %>
 
 [paste_deploy]
 # Name of the paste configuration file that defines the available pipelines
@@ -75,7 +75,7 @@
 # SQLAlchemy connection string for the reference implementation
 # registry server. Any valid SQLAlchemy connection string is fine.
 # See: 
http://www.sqlalchemy.org/docs/05/reference/sqlalchemy/connections.html#sqlalchemy.create_engine
-connection = mysql://<%= @glanceconfig["db_user"] %>:<%= 
@glanceconfig["db_pass"] %>@<%= @glanceconfig["db_host"] %>/<%= 
@glanceconfig["db_name"] %>
+connection = mysql://<%= @db_user %>:<%= @db_pass %>@<%= @db_host %>/<%= 
@db_name %>
 
 # Period in seconds after which SQLAlchemy should reestablish its connection
 # to the database.
diff --git a/modules/profile/manifests/openstack/base/glance.pp 
b/modules/profile/manifests/openstack/base/glance.pp
new file mode 100644
index 0000000..30b0e3d
--- /dev/null
+++ b/modules/profile/manifests/openstack/base/glance.pp
@@ -0,0 +1,35 @@
+class profile::openstack::base::glance(
+    $version = hiera('profile::openstack::base::version'),
+    $nova_controller = hiera('profile::openstack::base::nova_controller'),
+    $nova_controller_standby = 
hiera('profile::openstack::base::nova_controller_stanbdy'),
+    $auth_port = hiera('profile::openstack::base::keystone::auth_port'),
+    $public_port = hiera('profile::openstack::base::keystone::public_port'),
+    $db_user = hiera('profile::openstack::base::glance::db_user'),
+    $db_name = hiera('profile::openstack::base::glance::db_name'),
+    $db_pass = hiera('profile::openstack::base::glance::db_pass'),
+    $db_host = hiera('profile::openstack::base::glance::db_host'),
+    $ldap_user_pass = hiera('profile::openstack::base::ldap_user_pass'),
+    $glance_data = hiera('profile::openstack::base::glance::data_dir'),
+    $glance_image_dir = hiera('profile::openstack::base::glance::image_dir'),
+    ) {
+
+    $keystone_admin_uri = "http://${nova_controller}:${auth_port}";
+    $keystone_public_uri = "http://${nova_controller}:${public_port}";
+    $nova_controller_ip  = ipresolve($nova_controller,4)
+
+    class { 'openstack2::glance::service':
+        version                 => $version,
+        active                  => $::fqdn == $nova_controller,
+        nova_controller_ip      => $nova_controller_ip,
+        keystone_admin_uri      => $keystone_admin_uri,
+        keystone_public_uri     => $keystone_public_uri,
+        db_user                 => db_user,
+        db_pass                 => db_pass,
+        db_name                 => db_name,
+        db_host                 => db_host,
+        ldap_user_pass          => $ldap_user_pass,
+        nova_controller_standby => $nova_controller_standby,
+        glance_data             => $glance_data,
+        glance_image_dir        => $glance_image_dir,
+    }
+}
diff --git a/modules/profile/manifests/openstack/labtest/glance.pp 
b/modules/profile/manifests/openstack/labtest/glance.pp
new file mode 100644
index 0000000..f81fe40
--- /dev/null
+++ b/modules/profile/manifests/openstack/labtest/glance.pp
@@ -0,0 +1,23 @@
+class profile::openstack::labtest::glance(
+    $version = hiera('profile::openstack::labtest::version'),
+    $nova_controller = hiera('profile::openstack::labtest::nova_controller'),
+    $nova_controller_standby = 
hiera('profile::openstack::labtest::nova_controller_standby'),
+    $db_pass = hiera('profile::openstack::labtest::glance::db_pass'),
+    $db_host = hiera('profile::openstack::labtest::glance::db_host'),
+    $ldap_user_pass = hiera('profile::openstack::labtest::ldap_user_pass'),
+    ) {
+
+    require ::profile::openstack::labtest::cloudrepo
+    class {'profile::openstack::base::glance':
+        version                 => $version,
+        nova_controller         => $nova_controller,
+        nova_controller_standby => $nova_controller_standby,
+        db_pass                 => $db_pass,
+        db_host                 => $db_host,
+        ldap_user_pass          => $ldap_user_pass,
+    }
+
+    class {'openstack2::glance::monitor':
+        active => ($::fqdn == $nova_controller),
+    }
+}
diff --git a/modules/profile/manifests/openstack/labtestn/glance.pp 
b/modules/profile/manifests/openstack/labtestn/glance.pp
new file mode 100644
index 0000000..61cc111
--- /dev/null
+++ b/modules/profile/manifests/openstack/labtestn/glance.pp
@@ -0,0 +1,19 @@
+class profile::openstack::labtestn::glance(
+    $version = hiera('profile::openstack::labtestn::version'),
+    $nova_controller = hiera('profile::openstack::labtestn::nova_controller'),
+    $nova_controller_standby = 
hiera('profile::openstack::labtestn::nova_controller_standby'),
+    $db_pass = hiera('profile::openstack::labtestn::glance::db_pass'),
+    $db_host = hiera('profile::openstack::labtestn::glance::db_host'),
+    $ldap_user_pass = hiera('profile::openstack::labtestn::ldap_user_pass'),
+    ) {
+
+    require ::profile::openstack::labtestn::cloudrepo
+    class {'profile::openstack::base::glance':
+        version                 => $version,
+        nova_controller         => $nova_controller,
+        nova_controller_standby => $nova_controller_standby,
+        db_pass                 => $db_pass,
+        db_host                 => $db_host,
+        ldap_user_pass          => $ldap_user_pass,
+    }
+}
diff --git a/modules/profile/manifests/openstack/main/glance.pp 
b/modules/profile/manifests/openstack/main/glance.pp
new file mode 100644
index 0000000..4aed478
--- /dev/null
+++ b/modules/profile/manifests/openstack/main/glance.pp
@@ -0,0 +1,30 @@
+class profile::openstack::main::glance(
+    $version = hiera('profile::openstack::main::version'),
+    $nova_controller = hiera('profile::openstack::main::nova_controller'),
+    $nova_controller_standby = 
hiera('profile::openstack::main::nova_controller_standby'),
+    $db_pass = hiera('profile::openstack::main::glance::db_pass'),
+    $db_host = hiera('profile::openstack::main::glance::db_host'),
+    $ldap_user_pass = hiera('profile::openstack::main::ldap_user_pass'),
+    ) {
+
+    require ::profile::openstack::main::cloudrepo
+    class {'profile::openstack::base::glance':
+        version                 => $version,
+        nova_controller         => $nova_controller,
+        nova_controller_standby => $nova_controller_standby,
+        db_pass                 => $db_pass,
+        db_host                 => $db_host,
+        ldap_user_pass          => $ldap_user_pass,
+    }
+
+    class {'openstack2::glance::image_sync':
+        active                  => ($::fqdn == $nova_controller),
+        version                 => $version,
+        glance_image_dir        => $glance_image_dir,
+        nova_controller_standby => $nova_controller_standby,
+    }
+
+    class {'openstack2::glance::monitor':
+        active => ($::fqdn == $nova_controller),
+    }
+}
diff --git a/modules/role/manifests/labs/openstack/glance/server.pp 
b/modules/role/manifests/labs/openstack/glance/server.pp
deleted file mode 100644
index 91d3dbc..0000000
--- a/modules/role/manifests/labs/openstack/glance/server.pp
+++ /dev/null
@@ -1,12 +0,0 @@
-class role::labs::openstack::glance::server {
-
-    system::role { $name: }
-
-    class { 'openstack::glance::service':
-        active_server  => hiera('labs_nova_controller'),
-        standby_server => hiera('labs_nova_controller_spare'),
-        keystone_host  => hiera('labs_keystone_host'),
-        glanceconfig   => hiera_hash('glanceconfig', {}),
-        keystoneconfig => hiera_hash('keystoneconfig', {}),
-    }
-}
diff --git a/modules/role/manifests/labs/openstack/nova/controller.pp 
b/modules/role/manifests/labs/openstack/nova/controller.pp
index 03b77eb..8e77168 100644
--- a/modules/role/manifests/labs/openstack/nova/controller.pp
+++ b/modules/role/manifests/labs/openstack/nova/controller.pp
@@ -3,7 +3,6 @@
     system::role { $name: }
 
     require openstack
-    include role::labs::openstack::glance::server
     include ::openstack::nova::conductor
     include ::openstack::nova::spiceproxy
     include ::openstack::nova::scheduler
diff --git a/modules/role/manifests/wmcs/openstack/labtest/control.pp 
b/modules/role/manifests/wmcs/openstack/labtest/control.pp
index e222364..e8abfe1 100644
--- a/modules/role/manifests/wmcs/openstack/labtest/control.pp
+++ b/modules/role/manifests/wmcs/openstack/labtest/control.pp
@@ -2,4 +2,5 @@
     include ::profile::openstack::labtest::observerenv
     include ::profile::openstack::labtest::rabbitmq
     include ::profile::openstack::labtest::keystone::service
+    include ::profile::openstack::labtest::glance
 }
diff --git a/modules/role/manifests/wmcs/openstack/labtestn/control.pp 
b/modules/role/manifests/wmcs/openstack/labtestn/control.pp
index efcc95e..2e8f05e 100644
--- a/modules/role/manifests/wmcs/openstack/labtestn/control.pp
+++ b/modules/role/manifests/wmcs/openstack/labtestn/control.pp
@@ -2,4 +2,5 @@
     include ::profile::openstack::labtestn::observerenv
     include ::profile::openstack::labtestn::rabbitmq
     include ::profile::openstack::labtestn::keystone::service
+    include ::profile::openstack::labtestn::glance
 }
diff --git a/modules/role/manifests/wmcs/openstack/main/control.pp 
b/modules/role/manifests/wmcs/openstack/main/control.pp
index 0b39950..afc5eea 100644
--- a/modules/role/manifests/wmcs/openstack/main/control.pp
+++ b/modules/role/manifests/wmcs/openstack/main/control.pp
@@ -2,4 +2,5 @@
     include ::profile::openstack::main::observerenv
     include ::profile::openstack::main::rabbitmq
     include ::profile::openstack::main::keystone::service
+    include ::profile::openstack::main::glance
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/373150
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie250ee4889cd144293c4339b42f01eb16f933ed6
Gerrit-PatchSet: 1
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Rush <r...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to