~hopem/charms/trusty/swift-proxy/lp1518975

« back to all changes in this revision

Viewing changes to tests/basic_deployment.py

  • Committer: Christopher Glass
  • Date: 2015-09-11 07:30:34 UTC
  • mfrom: (107.2.8 add-pause-resume-actions)
  • Revision ID: christopher.glass@canonical.com-20150911073034-hkn326duunz2y63q
Merge lp:~adam-collard/charms/trusty/swift-proxy/add-pause-resume-actions [a=adam-collard] [r=tribaal, tealeg]

Add actions for pausing and resuming services on swift-storage units.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/python
2
 
 
3
1
import amulet
4
2
import swiftclient
5
3
 
335
333
 
336
334
        self.d.configure('swift-proxy', {'node-timeout': '60'})
337
335
 
 
336
    def _assert_services(self, should_run):
 
337
        swift_proxy_services = ['swift-proxy-server',
 
338
                                'haproxy',
 
339
                                'apache2',
 
340
                                'memcached']
 
341
        u.get_unit_process_ids(
 
342
            {self.swift_proxy_sentry: swift_proxy_services},
 
343
            expect_success=should_run)
 
344
        # No point using validate_unit_process_ids, since we don't
 
345
        # care about how many PIDs, merely that they're running, so
 
346
        # would populate expected with either True or False. This
 
347
        # validation is already performed in get_process_id_list
 
348
 
 
349
    def _test_pause(self):
 
350
        u.log.info("Testing pause action")
 
351
        self._assert_services(should_run=True)
 
352
        pause_action_id = u.run_action(self.swift_proxy_sentry, "pause")
 
353
        assert u.wait_on_action(pause_action_id), "Pause action failed."
 
354
 
 
355
        self._assert_services(should_run=False)
 
356
        status, message = u.status_get(self.swift_proxy_sentry)
 
357
        if status != "maintenance":
 
358
            msg = ("Pause action failed to move unit to maintenance "
 
359
                   "status (got {} instead)".format(status))
 
360
            amulet.raise_status(amulet.FAIL, msg=msg)
 
361
        if message != "Paused. Use 'resume' action to resume normal service.":
 
362
            msg = ("Pause action failed to set message"
 
363
                   " (got {} instead)".format(message))
 
364
            amulet.raise_status(amulet.FAIL, msg=msg)
 
365
 
 
366
    def _test_resume(self):
 
367
        u.log.info("Testing resume action")
 
368
        # service is left paused by _test_pause
 
369
        self._assert_services(should_run=False)
 
370
        resume_action_id = u.run_action(self.swift_proxy_sentry, "resume")
 
371
        assert u.wait_on_action(resume_action_id), "Resume action failed."
 
372
 
 
373
        self._assert_services(should_run=True)
 
374
        status, message = u.status_get(self.swift_proxy_sentry)
 
375
        if status != "active":
 
376
            msg = ("Resume action failed to move unit to active "
 
377
                   "status (got {} instead)".format(status))
 
378
            amulet.raise_status(amulet.FAIL, msg=msg)
 
379
        if message != "":
 
380
            msg = ("Resume action failed to clear message"
 
381
                   " (got {} instead)".format(message))
 
382
            amulet.raise_status(amulet.FAIL, msg=msg)
 
383
 
 
384
    def test_z_pause_resume_actions(self):
 
385
        """Pause and then resume swift-proxy."""
 
386
        u.log.debug('Checking pause/resume actions...')
 
387
        self._test_pause()
 
388
        self._test_resume()
 
389
 
338
390
    def test_swift_config(self):
339
391
        """Verify the data in the swift config file."""
340
392
        unit = self.swift_proxy_sentry