~openstack-charmers-archive/charms/precise/swift-storage/old-1501

« back to all changes in this revision

Viewing changes to tests/charmhelpers/contrib/openstack/amulet/deployment.py

  • Committer: james.page at ubuntu
  • Date: 2014-07-28 11:54:32 UTC
  • mfrom: (32.1.3 swift-storage)
  • Revision ID: james.page@ubuntu.com-20140728115432-em4ntc388qe058e3
[corey.bryant,r=james-page] Add amulet tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from charmhelpers.contrib.amulet.deployment import (
 
2
    AmuletDeployment
 
3
)
 
4
 
 
5
 
 
6
class OpenStackAmuletDeployment(AmuletDeployment):
 
7
    """This class inherits from AmuletDeployment and has additional support
 
8
       that is specifically for use by OpenStack charms."""
 
9
 
 
10
    def __init__(self, series=None, openstack=None, source=None):
 
11
        """Initialize the deployment environment."""
 
12
        super(OpenStackAmuletDeployment, self).__init__(series)
 
13
        self.openstack = openstack
 
14
        self.source = source
 
15
 
 
16
    def _add_services(self, this_service, other_services):
 
17
        """Add services to the deployment and set openstack-origin."""
 
18
        super(OpenStackAmuletDeployment, self)._add_services(this_service,
 
19
                                                             other_services)
 
20
        name = 0
 
21
        services = other_services
 
22
        services.append(this_service)
 
23
        use_source = ['mysql', 'mongodb', 'rabbitmq-server', 'ceph']
 
24
 
 
25
        if self.openstack:
 
26
            for svc in services:
 
27
                if svc[name] not in use_source:
 
28
                    config = {'openstack-origin': self.openstack}
 
29
                    self.d.configure(svc[name], config)
 
30
 
 
31
        if self.source:
 
32
            for svc in services:
 
33
                if svc[name] in use_source:
 
34
                    config = {'source': self.source}
 
35
                    self.d.configure(svc[name], config)
 
36
 
 
37
    def _configure_services(self, configs):
 
38
        """Configure all of the services."""
 
39
        for service, config in configs.iteritems():
 
40
            self.d.configure(service, config)
 
41
 
 
42
    def _get_openstack_release(self):
 
43
        """Return an integer representing the enum value of the openstack
 
44
           release."""
 
45
        self.precise_essex, self.precise_folsom, self.precise_grizzly, \
 
46
            self.precise_havana, self.precise_icehouse, \
 
47
            self.trusty_icehouse = range(6)
 
48
        releases = {
 
49
            ('precise', None): self.precise_essex,
 
50
            ('precise', 'cloud:precise-folsom'): self.precise_folsom,
 
51
            ('precise', 'cloud:precise-grizzly'): self.precise_grizzly,
 
52
            ('precise', 'cloud:precise-havana'): self.precise_havana,
 
53
            ('precise', 'cloud:precise-icehouse'): self.precise_icehouse,
 
54
            ('trusty', None): self.trusty_icehouse}
 
55
        return releases[(self.series, self.openstack)]