Get checks passing
First changes: Make the puppet-lint tool happy We skip a handful of checks, but at least now should catch some of the more simple stuff. This also formats the files a little more consistently. Second change: Update the docs makefile so we can actually build the pdf with the expected commands Change-Id: Ia8e9224cad38baf5e4602f9be7af828dcffe6bbb
This commit is contained in:
parent
691750e445
commit
7e4404adb4
|
@ -17,24 +17,24 @@ class plugin_purestorage_cinder::common {
|
|||
|
||||
include plugin_purestorage_cinder::params
|
||||
|
||||
package {$plugin_purestorage_cinder::params::pip_package_name:
|
||||
package { $plugin_purestorage_cinder::params::pip_package_name:
|
||||
ensure => 'installed'
|
||||
}
|
||||
package {$plugin_purestorage_cinder::params::iscsi_package_name:
|
||||
package { $plugin_purestorage_cinder::params::iscsi_package_name:
|
||||
ensure => 'installed'
|
||||
}
|
||||
package {$plugin_purestorage_cinder::params::multipath_package_name:
|
||||
package { $plugin_purestorage_cinder::params::multipath_package_name:
|
||||
ensure => 'installed'
|
||||
}
|
||||
case $::osfamily {
|
||||
'Debian': {
|
||||
service {$plugin_purestorage_cinder::params::iscsi_service_name:
|
||||
service { $plugin_purestorage_cinder::params::iscsi_service_name:
|
||||
ensure => 'running',
|
||||
enable => true,
|
||||
hasrestart => true,
|
||||
require => Package[$plugin_purestorage_cinder::params::iscsi_package_name],
|
||||
}
|
||||
file {'99-pure-storage.rules':
|
||||
file { '99-pure-storage.rules':
|
||||
path => '/lib/udev/rules.d/99-pure-storage.rules',
|
||||
mode => '0644',
|
||||
owner => root,
|
||||
|
@ -43,7 +43,7 @@ class plugin_purestorage_cinder::common {
|
|||
}
|
||||
}
|
||||
'RedHat': {
|
||||
file {'99-pure-storage.rules':
|
||||
file { '99-pure-storage.rules':
|
||||
path => '/etc/udev/rules.d/99-pure-storage.rules',
|
||||
mode => '0644',
|
||||
owner => root,
|
||||
|
@ -56,7 +56,7 @@ class plugin_purestorage_cinder::common {
|
|||
}
|
||||
}
|
||||
|
||||
service {$plugin_purestorage_cinder::params::multipath_service_name:
|
||||
service { $plugin_purestorage_cinder::params::multipath_service_name:
|
||||
ensure => 'running',
|
||||
enable => true,
|
||||
hasrestart => true,
|
||||
|
@ -65,7 +65,7 @@ class plugin_purestorage_cinder::common {
|
|||
require => Package[$plugin_purestorage_cinder::params::multipath_package_name],
|
||||
}
|
||||
|
||||
file {'multipath.conf':
|
||||
file { 'multipath.conf':
|
||||
path => '/etc/multipath.conf',
|
||||
mode => '0644',
|
||||
owner => root,
|
||||
|
|
|
@ -28,7 +28,7 @@ class plugin_purestorage_cinder::compute (
|
|||
hasrestart => true,
|
||||
}
|
||||
|
||||
nova_config { 'libvirt/iscsi_use_multipath': value => "${nova_multipath}";
|
||||
nova_config { 'libvirt/iscsi_use_multipath': value => $nova_multipath;
|
||||
'libvirt/hw_disk_discard': value => 'unmap' }
|
||||
|
||||
Nova_config<||> ~> Service['nova-compute']
|
||||
|
|
|
@ -14,231 +14,240 @@
|
|||
#
|
||||
|
||||
class plugin_purestorage_cinder::controller (
|
||||
$section,
|
||||
$glance_image_cache,
|
||||
$glance_image_count,
|
||||
$glance_image_size,
|
||||
$replication,
|
||||
$remote_array,
|
||||
$remote_ip,
|
||||
$remote_api,
|
||||
$replication_default,
|
||||
$replication_interval,
|
||||
$replication_short,
|
||||
$replication_long_day,
|
||||
$replication_long,
|
||||
$eradicate,
|
||||
$local_ip,
|
||||
$local_api,
|
||||
$local_chap,
|
||||
$local_multipath,
|
||||
$protocol,
|
||||
$consis_group,
|
||||
$fczm_config,
|
||||
$fc_vendor,
|
||||
$fabric_count,
|
||||
$fabric_name_1,
|
||||
$fabric_name_2,
|
||||
$fc_ip_1,
|
||||
$fc_ip_2,
|
||||
$fc_user_1,
|
||||
$fc_user_2,
|
||||
$fc_passwd_1,
|
||||
$fc_passwd_2,
|
||||
$fc_prefix_1,
|
||||
$fc_prefix_2,
|
||||
$fc_vsan_1,
|
||||
$fc_vsan_2
|
||||
$section,
|
||||
$glance_image_cache,
|
||||
$glance_image_count,
|
||||
$glance_image_size,
|
||||
$replication,
|
||||
$remote_array,
|
||||
$remote_ip,
|
||||
$remote_api,
|
||||
$replication_default,
|
||||
$replication_interval,
|
||||
$replication_short,
|
||||
$replication_long_day,
|
||||
$replication_long,
|
||||
$eradicate,
|
||||
$local_ip,
|
||||
$local_api,
|
||||
$local_chap,
|
||||
$local_multipath,
|
||||
$protocol,
|
||||
$consis_group,
|
||||
$fczm_config,
|
||||
$fc_vendor,
|
||||
$fabric_count,
|
||||
$fabric_name_1,
|
||||
$fabric_name_2,
|
||||
$fc_ip_1,
|
||||
$fc_ip_2,
|
||||
$fc_user_1,
|
||||
$fc_user_2,
|
||||
$fc_passwd_1,
|
||||
$fc_passwd_2,
|
||||
$fc_prefix_1,
|
||||
$fc_prefix_2,
|
||||
$fc_vsan_1,
|
||||
$fc_vsan_2
|
||||
) {
|
||||
|
||||
include plugin_purestorage_cinder::common
|
||||
include ::cinder::params
|
||||
include ::cinder::client
|
||||
include ::keystone::client
|
||||
include plugin_purestorage_cinder::common
|
||||
include ::cinder::params
|
||||
include ::cinder::client
|
||||
include ::keystone::client
|
||||
|
||||
ini_subsetting {'enable_cinder_pure_backend':
|
||||
ensure => present,
|
||||
section => 'DEFAULT',
|
||||
key_val_separator => '=',
|
||||
path => '/etc/cinder/cinder.conf',
|
||||
setting => 'enabled_backends',
|
||||
subsetting => "${section}",
|
||||
subsetting_separator => ',',
|
||||
}
|
||||
ini_subsetting { 'enable_cinder_pure_backend':
|
||||
ensure => present,
|
||||
section => 'DEFAULT',
|
||||
key_val_separator => '=',
|
||||
path => '/etc/cinder/cinder.conf',
|
||||
setting => 'enabled_backends',
|
||||
subsetting => $section,
|
||||
subsetting_separator => ',',
|
||||
}
|
||||
|
||||
package {"purestorage":
|
||||
ensure => "installed",
|
||||
provider => pip
|
||||
}
|
||||
package { 'purestorage':
|
||||
ensure => 'installed',
|
||||
provider => pip
|
||||
}
|
||||
|
||||
if $::cinder::params::volume_package {
|
||||
package { $::cinder::params::volume_package:
|
||||
ensure => present,
|
||||
}
|
||||
Package[$::cinder::params::volume_package] -> Cinder_config<||>
|
||||
}
|
||||
|
||||
# $section = $backend_name
|
||||
cinder_type {'pure_vol':
|
||||
if $::cinder::params::volume_package {
|
||||
package { $::cinder::params::volume_package:
|
||||
ensure => present,
|
||||
properties => ['volume_backend_name=pure'],
|
||||
}
|
||||
Package[$::cinder::params::volume_package] -> Cinder_config<||>
|
||||
}
|
||||
|
||||
# $section = $backend_name
|
||||
cinder_type { 'pure_vol':
|
||||
ensure => present,
|
||||
properties => ['volume_backend_name=pure'],
|
||||
}
|
||||
cinder_config {
|
||||
'DEFAULT/default_volume_type': value => 'pure_vol';
|
||||
# 'DEFAULT/enabled_backends': value => "${section}";
|
||||
}
|
||||
|
||||
if $glance_image_cache{
|
||||
cinder_config {
|
||||
"DEFAULT/default_volume_type": value => 'pure_vol';
|
||||
# "DEFAULT/enabled_backends": value => "${section}";
|
||||
# Force both cinter internal tenant and user to be a fixed values, keeping plugin idempotent
|
||||
'DEFAULT/cinder_internal_tenant_project_id': value => '123456789abcdef123456789abcdef12';
|
||||
'DEFAULT/cinder_internal_tenant_user_id': value => '123456789abcdef123456789abcdef13';
|
||||
"${section}/image_volume_cache_enabled": value => $glance_image_cache;
|
||||
"${section}/image_volume_cache_max_count": value => $glance_image_count;
|
||||
"${section}/image_volume_cache_max_size_gb": value => $glance_image_size;
|
||||
}
|
||||
}
|
||||
|
||||
if $glance_image_cache{
|
||||
if $replication == true {
|
||||
$repl_device = join(['backend_id:' ,$remote_array,',san_ip:',$remote_ip,',api_token:',$remote_api],'')
|
||||
cinder_config {
|
||||
"${section}/replication_device": value => $repl_device;
|
||||
}
|
||||
if $replication_default == 'false' {
|
||||
cinder_config {
|
||||
# Force both cinter internal tenant and user to be a fixed values, keeping plugin idempotent
|
||||
"DEFAULT/cinder_internal_tenant_project_id": value => "123456789abcdef123456789abcdef12";
|
||||
"DEFAULT/cinder_internal_tenant_user_id": value => "123456789abcdef123456789abcdef13";
|
||||
"$section/image_volume_cache_enabled": value => $glance_image_cache;
|
||||
"$section/image_volume_cache_max_count": value => $glance_image_count;
|
||||
"$section/image_volume_cache_max_size_gb": value => $glance_image_size;
|
||||
"${section}/pure_replica_interval_default": value => $replication_interval;
|
||||
"${section}/pure_replica_retention_short_term_default": value => $replication_short;
|
||||
"${section}/pure_replica_retention_long_term_per_day_default": value => $replication_long_day;
|
||||
"${section}/pure_replica_retention_long_term_default": value => $replication_long;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if $replication == 'true' {
|
||||
$DEVICE = join(["backend_id:" ,$remote_array,",san_ip:",$remote_ip,",api_token:",$remote_api],'')
|
||||
cinder_config {
|
||||
"$section/replication_device": value => "$DEVICE";
|
||||
}
|
||||
if $replication_default == 'false' {
|
||||
if $eradicate == true {
|
||||
cinder_config {
|
||||
"${section}/pure_eradicate_on_delete": value => $eradicate;
|
||||
}
|
||||
}
|
||||
|
||||
cinder::backend::pure { $section :
|
||||
san_ip => $local_ip,
|
||||
pure_api_token => $local_api,
|
||||
volume_backend_name => $section,
|
||||
use_chap_auth => $local_chap,
|
||||
use_multipath_for_image_xfer => $local_multipath,
|
||||
pure_storage_protocol => $protocol,
|
||||
extra_options => { "${section}/backend_host" => { value => $section }
|
||||
}
|
||||
}
|
||||
|
||||
# If consistency groups are selected then provide a modified pilocy.json that enables them
|
||||
if $consis_group == true {
|
||||
file { 'policy.json':
|
||||
path => '/etc/cinder/policy.json',
|
||||
mode => '0644',
|
||||
owner => cinder,
|
||||
group => cinder,
|
||||
source => 'puppet:///modules/plugin_purestorage_cinder/policy.json',
|
||||
}
|
||||
}
|
||||
|
||||
# If protocol is FC then meed to add zoning_mode. Put in $section as this has already been set by multibackend
|
||||
if ($protocol == 'FC') and ($fczm_config == 'automatic') {
|
||||
cinder_config {
|
||||
"${section}/zoning_mode": value => 'Fabric';
|
||||
}
|
||||
# Now add in the [fc-zone-manager] stanza
|
||||
case $fc_vendor {
|
||||
'Brocade': {
|
||||
cinder_config {
|
||||
"$section/pure_replica_interval_default": value => $replication_interval;
|
||||
"$section/pure_replica_retention_short_term_default": value => $replication_short;
|
||||
"$section/pure_replica_retention_long_term_per_day_default": value => $replication_long_day;
|
||||
"$section/pure_replica_retention_long_term_default": value => $replication_long;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if $eradicate == 'true' {
|
||||
cinder_config {
|
||||
"$section/pure_eradicate_on_delete": value => $eradicate;
|
||||
}
|
||||
}
|
||||
|
||||
cinder::backend::pure { $section :
|
||||
san_ip => $local_ip,
|
||||
pure_api_token => $local_api,
|
||||
volume_backend_name => $section,
|
||||
use_chap_auth => $local_chap,
|
||||
use_multipath_for_image_xfer => $local_multipath,
|
||||
pure_storage_protocol => $protocol,
|
||||
extra_options => { "$section/backend_host" => { value => $section }
|
||||
'fc-zone-manager/brcd_sb_connector': value => 'cinder.zonemanager.drivers.brocade.brcd_fc_zone_client_cli.BrcdFCZoneClientCLI';
|
||||
'fc-zone-manager/fc_san_lookup_service': value => 'cinder.zonemanager.drivers.brocade.brcd_fc_san_lookup_service.BrcdFCSanLookupService';
|
||||
'fc-zone-manager/zone_driver': value => 'cinder.zonemanager.drivers.brocade.brcd_fc_zone_driver.BrcdFCZoneDriver';
|
||||
}
|
||||
}
|
||||
'Cisco': {
|
||||
cinder_config {
|
||||
'fc-zone-manager/cisco_sb_connector': value => 'cinder.zonemanager.drivers.cisco.cisco_fc_zone_client_cli.CiscoFCZoneClientCLI';
|
||||
'fc-zone-manager/fc_san_lookup_service': value => 'cinder.zonemanager.drivers.cisco.cisco_fc_san_lookup_service.CiscoFCSanLookupService';
|
||||
'fc-zone-manager/zone_driver': value => 'cinder.zonemanager.drivers.cisco.cisco_fc_zone_driver.CiscoFCZoneDriver';
|
||||
}
|
||||
}
|
||||
default: {
|
||||
fail("${fc_vendor} is not a supported FCZM Vendor.")
|
||||
}
|
||||
}
|
||||
|
||||
# If consistency groups are selected then provide a modified pilocy.json that enables them
|
||||
if $consis_group == 'true' {
|
||||
file {'policy.json':
|
||||
path => '/etc/cinder/policy.json',
|
||||
mode => '0644',
|
||||
owner => cinder,
|
||||
group => cinder,
|
||||
source => 'puppet:///modules/plugin_purestorage_cinder/policy.json',
|
||||
case $fabric_count {
|
||||
'1': {
|
||||
cinder_config {
|
||||
'fc-zone-manager/fc_fabric_names': value => $fabric_name_1;
|
||||
}
|
||||
}
|
||||
'2': {
|
||||
cinder_config {
|
||||
'fc-zone-manager/fc_fabric_names': value => join([$fabric_name_1,', ',$fabric_name_2],'');
|
||||
}
|
||||
}
|
||||
default: {
|
||||
fail("Invalid value for fabric_count: ${fabric_count}.")
|
||||
}
|
||||
}
|
||||
|
||||
# If protocol is FC then meed to add zoning_mode. Put in $section as this has already been set by multibackend
|
||||
if ($protocol == 'FC') and ($fczm_config == 'automatic') {
|
||||
cinder_config {
|
||||
"$section/zoning_mode": value => "Fabric";
|
||||
}
|
||||
# Now add in the [fc-zone-manager] stanza
|
||||
case $fc_vendor {
|
||||
'Brocade': {
|
||||
cinder_config {
|
||||
"fc-zone-manager/brcd_sb_connector": value => "cinder.zonemanager.drivers.brocade.brcd_fc_zone_client_cli.BrcdFCZoneClientCLI";
|
||||
"fc-zone-manager/fc_san_lookup_service": value => "cinder.zonemanager.drivers.brocade.brcd_fc_san_lookup_service.BrcdFCSanLookupService";
|
||||
"fc-zone-manager/zone_driver": value => "cinder.zonemanager.drivers.brocade.brcd_fc_zone_driver.BrcdFCZoneDriver";
|
||||
}
|
||||
}
|
||||
'Cisco': {
|
||||
cinder_config {
|
||||
"fc-zone-manager/cisco_sb_connector": value => "cinder.zonemanager.drivers.cisco.cisco_fc_zone_client_cli.CiscoFCZoneClientCLI";
|
||||
"fc-zone-manager/fc_san_lookup_service": value => "cinder.zonemanager.drivers.cisco.cisco_fc_san_lookup_service.CiscoFCSanLookupService";
|
||||
"fc-zone-manager/zone_driver": value => "cinder.zonemanager.drivers.cisco.cisco_fc_zone_driver.CiscoFCZoneDriver";
|
||||
}
|
||||
}
|
||||
}
|
||||
case $fabric_count {
|
||||
'1': {
|
||||
cinder_config {
|
||||
"fc-zone-manager/fc_fabric_names": value => $fabric_name_1;
|
||||
}
|
||||
}
|
||||
'2': {
|
||||
cinder_config {
|
||||
"fc-zone-manager/fc_fabric_names": value => join([$fabric_name_1,", ",$fabric_name_2],'');
|
||||
}
|
||||
}
|
||||
}
|
||||
$fabric_zone_1 = $fabric_name_1
|
||||
$fabric_zone_2 = $fabric_name_2
|
||||
|
||||
$fabric_zone_1 = $fabric_name_1
|
||||
$fabric_zone_2 = $fabric_name_2
|
||||
|
||||
# Now add in stanzas for each fabric zone depending on the switch vendor
|
||||
case $fc_vendor {
|
||||
'Brocade': {
|
||||
cinder_config {
|
||||
"$fabric_zone_1/fc_fabric_address": value => $fc_ip_1;
|
||||
"$fabric_zone_1/fc_fabric_user": value => $fc_user_1;
|
||||
"$fabric_zone_1/fc_fabric_password": value => $fc_passwd_1;
|
||||
"$fabric_zone_1/fc_fabric_port": value => '22';
|
||||
"$fabric_zone_1/zoning_policy": value => 'initiator-target';
|
||||
"$fabric_zone_1/zone_activate": value => 'true';
|
||||
"$fabric_zone_1/zone_name_prefix": value => join([$fabric_name_1,"_"],'');
|
||||
}
|
||||
if $fabric_count == '2' {
|
||||
cinder_config {
|
||||
"$fabric_zone_2/fc_fabric_address": value => $fc_ip_2;
|
||||
"$fabric_zone_2/fc_fabric_user": value => $fc_user_2;
|
||||
"$fabric_zone_2/fc_fabric_password": value => $fc_passwd_2;
|
||||
"$fabric_zone_2/fc_fabric_port": value => '22';
|
||||
"$fabric_zone_2/zoning_policy": value => 'initiator-target';
|
||||
"$fabric_zone_2/zone_activate": value => 'true';
|
||||
"$fabric_zone_2/zone_name_prefix": value => join([$fabric_name_2,"_"],'');
|
||||
}
|
||||
}
|
||||
}
|
||||
'Cisco': {
|
||||
cinder_config {
|
||||
"$fabric_zone_1/cisco_fc_fabric_address": value => $fc_ip_1;
|
||||
"$fabric_zone_1/cisco_fc_fabric_user": value => $fc_user_1;
|
||||
"$fabric_zone_1/cisco_fc_fabric_password": value => $fc_passwd_1;
|
||||
"$fabric_zone_1/cisco_fc_fabric_port": value => '22';
|
||||
"$fabric_zone_1/cisco_zoning_vsan": value => $fc_vsan_1;
|
||||
"$fabric_zone_1/cisco_zoning_policy": value => 'initiator-target';
|
||||
"$fabric_zone_1/cisco_zone_activate": value => 'true';
|
||||
"$fabric_zone_1/cisco_zone_name_prefix": value => join([$fabric_name_1,"_"],'');
|
||||
}
|
||||
if $fabric_count == '2' {
|
||||
cinder_config {
|
||||
"$fabric_zone_2/cisco_fc_fabric_address": value => $fc_ip_2;
|
||||
"$fabric_zone_2/cisco_fc_fabric_user": value => $fc_user_2;
|
||||
"$fabric_zone_2/cisco_fc_fabric_password": value => $fc_passwd_2;
|
||||
"$fabric_zone_2/cisco_fc_fabric_port": value => '22';
|
||||
"$fabric_zone_2/cisco_zoning_vsan": value => $fc_vsan_2;
|
||||
"$fabric_zone_2/cisco_zoning_policy": value => 'initiator-target';
|
||||
"$fabric_zone_2/cisco_zone_activate": value => 'true';
|
||||
"$fabric_zone_2/cisco_zone_name_prefix": value => join([$fabric_name_2,"_"],'');
|
||||
}
|
||||
}
|
||||
}
|
||||
# Now add in stanzas for each fabric zone depending on the switch vendor
|
||||
case $fc_vendor {
|
||||
'Brocade': {
|
||||
cinder_config {
|
||||
"${fabric_zone_1}/fc_fabric_address": value => $fc_ip_1;
|
||||
"${fabric_zone_1}/fc_fabric_user": value => $fc_user_1;
|
||||
"${fabric_zone_1}/fc_fabric_password": value => $fc_passwd_1;
|
||||
"${fabric_zone_1}/fc_fabric_port": value => '22';
|
||||
"${fabric_zone_1}/zoning_policy": value => 'initiator-target';
|
||||
"${fabric_zone_1}/zone_activate": value => true;
|
||||
"${fabric_zone_1}/zone_name_prefix": value => join([$fabric_name_1,'_'],'');
|
||||
}
|
||||
if $fabric_count == '2' {
|
||||
cinder_config {
|
||||
"${fabric_zone_2}/fc_fabric_address": value => $fc_ip_2;
|
||||
"${fabric_zone_2}/fc_fabric_user": value => $fc_user_2;
|
||||
"${fabric_zone_2}/fc_fabric_password": value => $fc_passwd_2;
|
||||
"${fabric_zone_2}/fc_fabric_port": value => '22';
|
||||
"${fabric_zone_2}/zoning_policy": value => 'initiator-target';
|
||||
"${fabric_zone_2}/zone_activate": value => true;
|
||||
"${fabric_zone_2}/zone_name_prefix": value => join([$fabric_name_2,'_'],'');
|
||||
}
|
||||
}
|
||||
}
|
||||
'Cisco': {
|
||||
cinder_config {
|
||||
"${fabric_zone_1}/cisco_fc_fabric_address": value => $fc_ip_1;
|
||||
"${fabric_zone_1}/cisco_fc_fabric_user": value => $fc_user_1;
|
||||
"${fabric_zone_1}/cisco_fc_fabric_password": value => $fc_passwd_1;
|
||||
"${fabric_zone_1}/cisco_fc_fabric_port": value => '22';
|
||||
"${fabric_zone_1}/cisco_zoning_vsan": value => $fc_vsan_1;
|
||||
"${fabric_zone_1}/cisco_zoning_policy": value => 'initiator-target';
|
||||
"${fabric_zone_1}/cisco_zone_activate": value => true;
|
||||
"${fabric_zone_1}/cisco_zone_name_prefix": value => join([$fabric_name_1,'_'],'');
|
||||
}
|
||||
if $fabric_count == '2' {
|
||||
cinder_config {
|
||||
"${fabric_zone_2}/cisco_fc_fabric_address": value => $fc_ip_2;
|
||||
"${fabric_zone_2}/cisco_fc_fabric_user": value => $fc_user_2;
|
||||
"${fabric_zone_2}/cisco_fc_fabric_password": value => $fc_passwd_2;
|
||||
"${fabric_zone_2}/cisco_fc_fabric_port": value => '22';
|
||||
"${fabric_zone_2}/cisco_zoning_vsan": value => $fc_vsan_2;
|
||||
"${fabric_zone_2}/cisco_zoning_policy": value => 'initiator-target';
|
||||
"${fabric_zone_2}/cisco_zone_activate": value => true;
|
||||
"${fabric_zone_2}/cisco_zone_name_prefix": value => join([$fabric_name_2,'_'],'');
|
||||
}
|
||||
}
|
||||
}
|
||||
default: {
|
||||
fail("${fc_vendor} is not a supported FCZM Vendor.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Cinder_config<||> ~> Service['cinder_volume']
|
||||
Cinder_config<||> ~> Service['cinder_volume']
|
||||
|
||||
service { 'cinder_volume':
|
||||
ensure => running,
|
||||
name => $::cinder::params::volume_service,
|
||||
enable => true,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
}
|
||||
service { 'cinder_volume':
|
||||
ensure => running,
|
||||
name => $::cinder::params::volume_service,
|
||||
enable => true,
|
||||
hasstatus => true,
|
||||
hasrestart => true,
|
||||
}
|
||||
|
||||
}
|
||||
|
|
72
doc/Makefile
72
doc/Makefile
|
@ -5,21 +5,22 @@
|
|||
SPHINXOPTS =
|
||||
SPHINXBUILD = sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
BUILDDIR = build
|
||||
|
||||
# User-friendly check for sphinx-build
|
||||
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
||||
endif
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
|
@ -29,10 +30,8 @@ help:
|
|||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " applehelp to make an Apple Help Book"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " epub3 to make an epub3"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
||||
|
@ -46,91 +45,65 @@ help:
|
|||
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
@echo " coverage to run coverage check of the documentation (if enabled)"
|
||||
@echo " pdf to make a PDF file"
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)/*
|
||||
|
||||
.PHONY: html
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
.PHONY: dirhtml
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
.PHONY: singlehtml
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
.PHONY: pickle
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
.PHONY: json
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
.PHONY: htmlhelp
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
.PHONY: qthelp
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/PureStorageCinderPlugin.qhcp"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Together-Message.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/PureStorageCinderPlugin.qhc"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Together-Message.qhc"
|
||||
|
||||
.PHONY: applehelp
|
||||
applehelp:
|
||||
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
||||
@echo
|
||||
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
||||
@echo "N.B. You won't be able to view it unless you put it in" \
|
||||
"~/Library/Documentation/Help or install it in your application" \
|
||||
"bundle."
|
||||
|
||||
.PHONY: devhelp
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/PureStorageCinderPlugin"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/PureStorageCinderPlugin"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/Together-Message"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Together-Message"
|
||||
@echo "# devhelp"
|
||||
|
||||
.PHONY: epub
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
.PHONY: epub3
|
||||
epub3:
|
||||
$(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3
|
||||
@echo
|
||||
@echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3."
|
||||
|
||||
.PHONY: latex
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
|
@ -138,33 +111,28 @@ latex:
|
|||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
.PHONY: latexpdf
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
.PHONY: latexpdfja
|
||||
latexpdfja:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through platex and dvipdfmx..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
.PHONY: text
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
.PHONY: man
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
.PHONY: texinfo
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
|
@ -172,52 +140,44 @@ texinfo:
|
|||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
.PHONY: info
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
.PHONY: gettext
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
.PHONY: changes
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
.PHONY: linkcheck
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
.PHONY: doctest
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
||||
|
||||
.PHONY: coverage
|
||||
coverage:
|
||||
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
||||
@echo "Testing of coverage in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/coverage/python.txt."
|
||||
|
||||
.PHONY: xml
|
||||
xml:
|
||||
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
||||
@echo
|
||||
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
||||
|
||||
.PHONY: pseudoxml
|
||||
pseudoxml:
|
||||
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
||||
@echo
|
||||
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
||||
|
||||
pdf:
|
||||
$(SPHINXBUILD) -b pdf $(ALLSPHINXOPTS) $(BUILDDIR)/pdf
|
||||
@echo
|
||||
@echo "Build finished. The PDF file is in $(BUILDDIR)/pdf."
|
||||
|
|
Loading…
Reference in New Issue