Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

#    Licensed under the Apache License, Version 2.0 (the "License"); 

#    you may not use this file except in compliance with the License. 

#    You may obtain a copy of the License at 

# 

#        http://www.apache.org/licenses/LICENSE-2.0 

# 

#    Unless required by applicable law or agreed to in writing, software 

#    distributed under the License is distributed on an "AS IS" BASIS, 

#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

#    See the License for the specific language governing permissions and 

#    limitations under the License. 

 

from oslo_config import cfg 

import pecan 

 

from magnum.api import auth 

from magnum.api import config as api_config 

from magnum.api import middleware 

 

# Register options for the service 

API_SERVICE_OPTS = [ 

    cfg.IntOpt('port', 

               default=9511, 

               help='The port for the magnum API server'), 

    cfg.StrOpt('host', 

               default='127.0.0.1', 

               help='The listen IP for the magnum API server'), 

    cfg.IntOpt('max_limit', 

               default=1000, 

               help='The maximum number of items returned in a single ' 

                    'response from a collection resource.') 

] 

 

CONF = cfg.CONF 

opt_group = cfg.OptGroup(name='api', 

                         title='Options for the magnum-api service') 

CONF.register_group(opt_group) 

CONF.register_opts(API_SERVICE_OPTS, opt_group) 

 

 

def get_pecan_config(): 

    # Set up the pecan configuration 

    filename = api_config.__file__.replace('.pyc', '.py') 

    return pecan.configuration.conf_from_file(filename) 

 

 

def setup_app(config=None): 

49    if not config: 

        config = get_pecan_config() 

 

    app_conf = dict(config.app) 

 

    app = pecan.make_app( 

        app_conf.pop('root'), 

        logging=getattr(config, 'logging', {}), 

        wrap_app=middleware.ParsableErrorMiddleware, 

        **app_conf 

    ) 

 

    return auth.install(app, CONF, config.app.acl_public_routes)