~ericsnowcurrently/charms/trusty/reviewboard-oauth/trunk

« back to all changes in this revision

Viewing changes to hooks/_external/reviewboard/client.py.new

  • Committer: Eric Snow
  • Date: 2014-09-02 15:10:09 UTC
  • Revision ID: ericsnowcurrently@gmail.com-20140902151009-g7attz6qmmpvozd4
Publish the charm in launchpad (for the sake of a private namespace in the charm store).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import os
 
2
from .extension import Extension
 
3
from .settings import RBSettingsPy
 
4
from .tools import RBTools
 
5
 
 
6
 
 
7
class ReviewBoard(object):
 
8
 
 
9
    def __init__(self, cmd=None):
 
10
        self._cmd = cmd
 
11
 
 
12
        self._settingspy = RBSettingsPy.from_conf_dir()
 
13
        self._tools = RBTools(cmd)
 
14
 
 
15
    @property
 
16
    def tools(self):
 
17
        return self._tools
 
18
 
 
19
    def remove_settings_group(self, name):
 
20
        self._settingspy.remove_group(name)
 
21
 
 
22
    def ready(self):
 
23
        return self._settingspy.is_available()
 
24
 
 
25
    def refresh_extensions(self):
 
26
        self.reload()
 
27
 
 
28
    def reload(self):
 
29
        self._settingspy.reload()
 
30
 
 
31
    def api(self, hostname='localhost', port=8080, root=''):
 
32
        from rbtools.api.client import RBClient
 
33
        # XXX Use https?
 
34
        client = RBClient('http://{}:{}/{}'.format(hostname, port, root))
 
35
        root = client.get_root()
 
36
        ...
 
37
 
 
38
    def ext(self, name, impl=None, group=None):
 
39
        settingspy = None
 
40
        if group is not None:
 
41
            settingspy = self._settingspy.group(group)
 
42
        return Extension(name, self, impl, settingspy)