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:
Patrick East 2016-11-15 14:24:56 -08:00
parent 691750e445
commit 7e4404adb4
4 changed files with 235 additions and 266 deletions

View File

@ -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,

View File

@ -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']

View File

@ -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,
}
}

View File

@ -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."