55 Commits

Author SHA1 Message Date
Derek Higgins
995ec33b13 Fixed tests 2012-11-15 11:46:05 +00:00
Dan Bode
f6e3ebb95f Merge pull request #54 from rubiojr/1.9-compat-fixes
String no longer has '.to_a', fixes compatibility with ruby 1.9,
2012-10-28 18:20:29 -07:00
Dan Bode
58d9d17e57 Merge pull request #56 from rubiojr/xfs-storage-improvements
swift::storage::xfs improvements
2012-10-28 18:18:51 -07:00
Sergio Rubio
2bb6be25bd Create /var/cache/swift directory
Default directory for middleware like Swift-recon
2012-10-02 11:13:45 +02:00
Sergio Rubio
0a630c3c9e swift::storage::xfs improvements
* Create $mnt_base_dir if dir does not exist (useful when not using
* loopback)
* use 'xfs_admin -l' to check for an existing XFS instead of using
* refreshonly
* device param now defaults to '' for compat reasons since we'll be
  using '/dev/' + resource title when no device is specified
* use -f flag with mkfs.xfs so we can format RAW unpartitioned devices
* Does not break interface compatibility, tests OK
2012-09-26 18:37:11 +02:00
Sergio Rubio
9f176a2df9 ruby 1.9 compat fix for spec/defines/swift_storage_server_spec.rb
Apparently the way 1.9 does string interpolation breaks the regexp:

ruby 1.8:

    [10008][rubiojr.blueleaf] irb
    irb(main):001:0> "#{['foo']}"
    => "foo"
    irb(main):002:0>

ruby 1.9:

    [10007][rubiojr.blueleaf] irb
    1.9.3p194 :001 > "#{['foo']}"
     => "[\"foo\"]"
    1.9.3p194 :002 >
2012-09-24 20:43:07 +02:00
Derek Higgins
7034190780 Adding support for ext4 devices
XFS may not be available on all systems
2012-08-23 00:47:12 +01:00
Derek Higgins
88c4954f0b Starting the swift replicator with /usr/bin/swift-init on RedHat
Should be changed back to init script when one becomes part of the
package. Includes test to ensure original functionality hasn't
changed on Ubuntu
2012-08-22 12:34:19 +01:00
Branan Purvine-Riley
b63a9dbe07 Merge pull request #46 from bodepd/add_loopback_mnt_param
Add loopback mnt param
2012-07-23 16:32:49 -07:00
Dan Bode
4691b3929d Add spec tests for additional loopback parameter.
This commit adds test coverage that verifies the
behavior of the loopback related class parameters.
2012-07-23 15:04:14 -07:00
Branan Purvine-Riley
eef6b12f44 Replace expect..should with expect..to 2012-07-12 15:24:03 -07:00
Branan Purvine-Riley
12b8159941 Revert "Allow multiple instances of swift::storage::server on one host"
This reverts commit 02efd7afe06f029edee3bfcc6395857e1459b3ec.
2012-07-06 14:43:52 -07:00
François Charlier
a5788bae83 Disable 'use chroot' for rsync::server
Allow to keep the right username/groupname for rsync'ed files if the
uids and gids are not in sync on all the servers
2012-06-19 16:16:24 +02:00
Dan Bode
58c9780b75 Merge pull request #35 from branan/fix_all_example
Fix all example
2012-06-14 17:28:20 -07:00
Branan Purvine-Riley
8fd2591362 Implement basic spec test for swift::storage::node 2012-06-14 12:45:30 -07:00
Branan Purvine-Riley
02efd7afe0 Allow multiple instances of swift::storage::server on one host
Adding the server instance's name to the rsync type avoids a duplicate resource
error.
2012-06-14 11:57:58 -07:00
Nan Liu
f0c041eb7d Merge pull request #29 from branan/use_spechelper_gem
Update module to use puppetlabs_spec_helper gem
2012-06-08 13:44:36 -07:00
Dan Bode
7c1cf9b14f Merge pull request #31 from fcharlier/dispersion
Add swift-dispersion configuration
2012-06-06 09:01:42 -07:00
Dan Bode
09f726c363 Allow multiple devices per endpoint.
Previously, the Puppet modules only supported a single device per
endpoint.

This commits allows multiple devices per endpoint by making the device
name a part of the namevar for the swift ring devices.

it also updates the relevent configs.
2012-06-05 16:45:47 -07:00
Dan Bode
b428438460 Merge pull request #26 from fcharlier/replicator_services
Replicator services
2012-06-05 09:29:54 -07:00
François Charlier
a3d1b08e96 Expand supported storage middlewares
This commit expands the supported storage
middlewares to include:
  - healthcheck - used to be able to perform
healthchecks on a storage node
  - recon
2012-06-04 13:47:57 -07:00
François Charlier
caad4e3732 Implement additional proxy middlewares
This commit implements additional proxy middlewares
  - catch_errors - handles errors
  - ratelimit    - limits incoming requests
  - s3token - misddleware for s3auth
  - swift3 - implement swift APIs

These middlewares needed to be modeled b/c they
are configurable interfaces that needed to be
configurable via Puppet.
2012-06-04 13:47:52 -07:00
François Charlier
18365a7c43 Reimplement concurrency to be per process
Previously, concurrently was implemented per
storage server type as a global setting.

This commit reimplements concurrency to make it
per process (replicator/updater/reaper)

This is intended to allow the end user more
flexibility over how they implement their
swift cluster.
2012-06-04 13:47:43 -07:00
François Charlier
01ecb029cd Implement individual server pipelines
This commit adds the ability to specify
individual pipelines per storage server.

This allows users to specify their own custom
pipelines to determine how they implement the
middlewares for their storage instances.
2012-06-04 13:47:31 -07:00
François Charlier
22d2f61289 Add swift-dispersion configuration
* Add config file for swift-dispersion-populate & swift-dispersion-report
* Add creation of keystone user for swift-dispersion
2012-06-04 21:46:18 +02:00
Branan Purvine-Riley
df7c59ccee Update module to use puppetlabs_spec_helper gem
* Automatically populate fixtures directory on spec runs
* Avoid duplicating spec_helper and Rakefile between modules
2012-05-31 17:11:07 -07:00
Dan Bode
6323311c04 Add concat_basedir fact
This commit adds the required fact concat_basedir so that
the concat module (which is a dependency for some glance classes) will not fail.

This change is necesary b/c we have switched from the puppetlabs version to
ri's version of concat.
2012-05-29 16:31:21 -07:00
Dan Bode
83b8466eb0 Add tests for swift::keystone::auth
Adds rspec-puppet tests for the swift::keystone::auth class.
2012-05-29 13:06:21 -07:00
Dan Bode
1413a9ed6e Merge pull request #24 from fcharlier/operator_roles
Fix operator_roles test after changes in 2304e863
2012-05-29 09:25:07 -07:00
François Charlier
9514dd250a Ensure the replicator services are started 2012-05-23 17:16:58 +02:00
François Charlier
b394c6df19 Fix the rsync modules names
The rsync module name must be only ```$type``` as written in the
documentation [1].

The names with the port added exists but is intended to be used only in
SAIO mode [2] and is only supported if the ```vm_test_mode``` option is
set in ```swift.conf```.

The effect of these shares not being named correctly is seen in the
```swift-{object,account,container}-replicator``` daemons (replication
fails).

[1] http://swift.openstack.org/1.4.6/howto_installmultinode.html#configure-the-storage-nodes
[2] http://swift.openstack.org/1.4.6/development_saio.html
2012-05-22 17:27:34 +02:00
François Charlier
0b397ac492 Fix operator_roles test after changes in 2304e863 2012-05-21 15:05:20 +02:00
Branan Purvine-Riley
078cef7f9d Change contain_exec path from list to string 2012-05-08 15:52:19 -07:00
Branan Purvine-Riley
0684d1f6cd Add concat_basedir fact to tests that validate concat fragments 2012-05-08 15:51:51 -07:00
Dan Bode
993ed67fd2 Remove inheritance
Part of a code wide refactor to remove unnessary
inheritance.
2012-04-22 12:12:53 -07:00
Dan Bode
047cb81ff3 Remove ppa rspec code
This commit removes the ppa specs since the classes
containing the ppas have been removed.
2012-04-22 12:12:07 -07:00
Dan Bode
24a01d1bea Implement proxy pipline into fragments
The swift pipeline is commonly used to plug
capabilities in.

This pipeline should be implemented in a way that
is easier to extend as people desire additional
pipelines.

This commit implements classes that can be used
to configure the following pipelines:
  - proxy::cache
  - proxy::healthcheck
  - proxy::keystone
  - proxy::swauth

It also reimplements swift::proxy to utilize those
pipelines for configuration.
2012-04-22 12:11:27 -07:00
Dan Bode
84d59985fc Remove ppa config
This commit removes the config for setting up
the custom ppas. The ppas referenced here have
been deprecated.
2012-04-21 12:55:51 -07:00
Dan Bode
59afc07d3b Refactor of swift server configs
This commit performs a refactor of the
swift::storage::config to use fragments.

Updates server templates
  - makes workers,user, and mount_checks configurable
  - adds a default for concurrency
  - makes the pipeline configurable
  - remove vm_test_mode flag

Updates swift::storage::server to use fragments for
the config file.

This has been refactored to allow the end user a
greater level of flexibility over how they can
configure custom plugins for swift.

Also adds additional class params: pipeline,
mount_check, user, workers, concurrency.

Update the unit tests for swift::storage:server
2012-04-21 12:54:17 -07:00
Dan Bode
01b9c7cbd1 Add unit tests for xfs 2012-04-06 10:18:14 -07:00
Dan Bode
c07615d557 Remove patched upstart scripts
I was using older versions of the Ubuntu packages
that shipped with broken upstart scripts.

I am removing these patches now that I am using packages
that work.

Also updates the spec tests to account for the changes.
2012-04-06 09:42:48 -07:00
Dan Bode
cd33a745c5 Add fedora support
This commit adds support for fedora.

It introduces a params namespace class
to hold data differences between ubuntu and fedora.

It also moves the xfs packages into their own class (swift::xfs)
2012-03-20 12:55:34 -07:00
Dan Bode
d7698139fe Update spec tests
Add libdistcodename to all apt repo spec tests so
that they will work with the latest version of apt.
2012-03-13 16:42:57 -07:00
Dan Bode
f07363b6af Update spec tests
This commit updates the spec tests so that they should work.

- the ssh module that they depend on had introduced a dependency on
  the operatingsystem fact
- tests had not been updated to reflect using xinetd and not the service
to run the rsync daemon
- update travis-ci to include the xinetd module
2012-03-13 16:30:19 -07:00
Dan Bode
2eea26431a Remove proxy files used for testing
I changed the tests so that they check individual
lines of the resulting swift proxy file as opposed to
the entire file contents.

This was done so that tests can be associated with
only the parts of the resulting file they are related
to.
2012-03-05 21:57:10 -08:00
Dan Bode
794fc909d1 Add unit tests fr swift::storage::server 2012-03-05 21:57:10 -08:00
Dan Bode
900e061a11 Add inline commments
Cleans up old inline comments and adds new comments.
2012-03-05 21:57:10 -08:00
Dan Bode
4752a3d85f Decouple memcached configuration from proxy
It is possible that the memcache server(s) may
reside on different machines than the swift
proxy.

This commit decouples the configurations of the
two services.
2012-03-05 21:57:10 -08:00
Dan Bode
0e7cb86dcd Update ring creation defaults
Updates the defaults to ring creation to use
replica of 3 and min part hours of 24.

These are the defaults recommended by the swift
documentation.
2012-03-02 20:03:53 -08:00
Dan Bode
5083e19bc4 Decouple storage server types from each other
Previously, all of the storage server types
(account, container, proxy) were always
configured to be installed on the same node.

It often makes sense to only have the account and
container together, and to put the object server on
a different node. (or its possible that other
configurations make sense)

This commit refactors the swift module so that
each of the types of nodes can be built
independently of each other.
2012-03-02 20:01:49 -08:00