From a23ddc735d073dc20b5afa3f556b2ce46f518e39 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 22 Jul 2015 14:43:29 +0200 Subject: [PATCH 1/3] Add cinder volume puppet resource Signed-off-by: Bogdan Dobrelya --- resources/cinder_volume_puppet/README.md | 3 ++ .../cinder_volume_puppet/actions/remove.pp | 4 +++ resources/cinder_volume_puppet/actions/run.pp | 18 +++++++++++ resources/cinder_volume_puppet/meta.yaml | 30 +++++++++++++++++++ resources/cinder_volume_puppet/test.py | 12 ++++++++ 5 files changed, 67 insertions(+) create mode 100644 resources/cinder_volume_puppet/README.md create mode 100644 resources/cinder_volume_puppet/actions/remove.pp create mode 100644 resources/cinder_volume_puppet/actions/run.pp create mode 100644 resources/cinder_volume_puppet/meta.yaml create mode 100644 resources/cinder_volume_puppet/test.py diff --git a/resources/cinder_volume_puppet/README.md b/resources/cinder_volume_puppet/README.md new file mode 100644 index 00000000..59b10429 --- /dev/null +++ b/resources/cinder_volume_puppet/README.md @@ -0,0 +1,3 @@ +# Cinder Volume resource for puppet handler + +Setup and configure the cinder volume service diff --git a/resources/cinder_volume_puppet/actions/remove.pp b/resources/cinder_volume_puppet/actions/remove.pp new file mode 100644 index 00000000..605db1fd --- /dev/null +++ b/resources/cinder_volume_puppet/actions/remove.pp @@ -0,0 +1,4 @@ +class {'cinder::volume': + enabled => false, + package_ensure => 'absent', +} diff --git a/resources/cinder_volume_puppet/actions/run.pp b/resources/cinder_volume_puppet/actions/run.pp new file mode 100644 index 00000000..f1550841 --- /dev/null +++ b/resources/cinder_volume_puppet/actions/run.pp @@ -0,0 +1,18 @@ +$resource = hiera($::resource_name) + +$package_ensure = $resource['input']['package_ensure']['value'] +$enabled = $resource['input']['enabled']['value'] +$manage_service = $resource['input']['manage_service']['value'] + +include cinder::params + +package { 'cinder': + ensure => $package_ensure, + name => $::cinder::params::package_name, +} -> + +class {'cinder::volume': +package_ensure => $package_ensure, +enabled => $enabled, +manage_service => $manage_service, +} diff --git a/resources/cinder_volume_puppet/meta.yaml b/resources/cinder_volume_puppet/meta.yaml new file mode 100644 index 00000000..2a944a46 --- /dev/null +++ b/resources/cinder_volume_puppet/meta.yaml @@ -0,0 +1,30 @@ +id: cinder_volume_puppet +handler: puppet +puppet_module: cinder_volume +version: 1.0.0 +input: + package_ensure: + schema: str + value: 'present' + enabled: + schema: bool + value: true + manage_service: + schema: bool + value: true + + git: + schema: {repository: str!, branch: str!} + value: {repository: 'https://github.com/openstack/puppet-cinder', branch: '5.1.0'} + + ip: + schema: str! + value: + ssh_key: + schema: str! + value: + ssh_user: + schema: str! + value: + +tags: [resource/cinder_volume_service, resources/cinder_volume, resources/cinder] diff --git a/resources/cinder_volume_puppet/test.py b/resources/cinder_volume_puppet/test.py new file mode 100644 index 00000000..8c090e24 --- /dev/null +++ b/resources/cinder_volume_puppet/test.py @@ -0,0 +1,12 @@ +import requests + +from solar.core.log import log + + +def test(resource): + log.debug('Testing cinder_volume_puppet') +# requests.get( +# 'http://%s:%s' % (resource.args['ip'].value, resource.args['port'].value) +# TODO(bogdando) figure out how to test this +# http://docs.openstack.org/developer/nova/devref/volume.html + ) From 73f87c03c00ac3422eedd3c394f9102369591124 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 22 Jul 2015 14:59:43 +0200 Subject: [PATCH 2/3] Remove enabled and manage_services params for c-volume Signed-off-by: Bogdan Dobrelya --- resources/cinder_volume_puppet/actions/run.pp | 6 ++---- resources/cinder_volume_puppet/meta.yaml | 6 ------ 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/resources/cinder_volume_puppet/actions/run.pp b/resources/cinder_volume_puppet/actions/run.pp index f1550841..db63ebd8 100644 --- a/resources/cinder_volume_puppet/actions/run.pp +++ b/resources/cinder_volume_puppet/actions/run.pp @@ -1,8 +1,6 @@ $resource = hiera($::resource_name) $package_ensure = $resource['input']['package_ensure']['value'] -$enabled = $resource['input']['enabled']['value'] -$manage_service = $resource['input']['manage_service']['value'] include cinder::params @@ -13,6 +11,6 @@ package { 'cinder': class {'cinder::volume': package_ensure => $package_ensure, -enabled => $enabled, -manage_service => $manage_service, +enabled => true, +manage_service => true, } diff --git a/resources/cinder_volume_puppet/meta.yaml b/resources/cinder_volume_puppet/meta.yaml index 2a944a46..20bc84fd 100644 --- a/resources/cinder_volume_puppet/meta.yaml +++ b/resources/cinder_volume_puppet/meta.yaml @@ -6,12 +6,6 @@ input: package_ensure: schema: str value: 'present' - enabled: - schema: bool - value: true - manage_service: - schema: bool - value: true git: schema: {repository: str!, branch: str!} From b2f94c1cbd3b3138c852bf92c0e9b2e6a1559302 Mon Sep 17 00:00:00 2001 From: Bogdan Dobrelya Date: Wed, 22 Jul 2015 15:21:54 +0200 Subject: [PATCH 3/3] Add compostion layer for c-volume puppet Signed-off-by: Bogdan Dobrelya --- example-puppet.py | 8 +++++++- resources/cinder_volume_puppet/actions/run.pp | 6 +++--- resources/cinder_volume_puppet/test.py | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/example-puppet.py b/example-puppet.py index c96c16fe..5db6765e 100644 --- a/example-puppet.py +++ b/example-puppet.py @@ -272,6 +272,11 @@ def deploy(): cinder_scheduler_puppet = vr.create('cinder_scheduler_puppet', 'resources/cinder_scheduler_puppet', {})[0] signals.connect(node1, cinder_scheduler_puppet) signals.connect(cinder_puppet, cinder_scheduler_puppet) + + # CINDER VOLUME + cinder_volume_puppet = vr.create('cinder_volume_puppet', 'resources/cinder_volume_puppet', {})[0] + signals.connect(node1, cinder_volume_puppet) + signals.connect(cinder_puppet, cinder_volume_puppet) # NOVA # #nova_network_puppet = vr.create('nova_network_puppet', GitProvider(GIT_PUPPET_LIBS_URL, 'nova_network'), {'rabbitmq_user': 'guest', 'rabbitmq_password': 'guest'})[0] @@ -344,7 +349,7 @@ def deploy(): actions.resource_action(cinder_keystone_service_endpoint, 'run') actions.resource_action(cinder_api_puppet, 'run') actions.resource_action(cinder_scheduler_puppet, 'run') - + actions.resource_action(cinder_volume_puppet, 'run') # actions.resource_action(nova_keystone_user, 'run') # actions.resource_action(nova_keystone_role, 'run') @@ -359,6 +364,7 @@ def undeploy(): db = get_db() to_remove = [ + 'cinder_volume_puppet', 'cinder_scheduler_puppet', 'cinder_api_puppet', 'cinder_keystone_service_endpoint', diff --git a/resources/cinder_volume_puppet/actions/run.pp b/resources/cinder_volume_puppet/actions/run.pp index db63ebd8..4f66e2e8 100644 --- a/resources/cinder_volume_puppet/actions/run.pp +++ b/resources/cinder_volume_puppet/actions/run.pp @@ -10,7 +10,7 @@ package { 'cinder': } -> class {'cinder::volume': -package_ensure => $package_ensure, -enabled => true, -manage_service => true, + package_ensure => $package_ensure, + enabled => true, + manage_service => true, } diff --git a/resources/cinder_volume_puppet/test.py b/resources/cinder_volume_puppet/test.py index 8c090e24..59bfe819 100644 --- a/resources/cinder_volume_puppet/test.py +++ b/resources/cinder_volume_puppet/test.py @@ -9,4 +9,4 @@ def test(resource): # 'http://%s:%s' % (resource.args['ip'].value, resource.args['port'].value) # TODO(bogdando) figure out how to test this # http://docs.openstack.org/developer/nova/devref/volume.html - ) +# )