Commit 1a21299eb3990475fbbfc94fddff9990eddddddb

Authored by Eduardo Santos
1 parent bd79d0e2
Exists in master

Release para o trunk do código que está no branch 1.0

git-svn-id: http://svn.brlight.net/svn/lightbase-neo/trunk/LBBulk@1099 29b92fdf-8c97-4584-b987-84e8d3c556fa
TODO.txt
... ... @@ -1,2 +0,0 @@
1   -lbbulk/view/restfulview.py line 41
2   -lbbulk/view/restfulview.py line 48
3 0 \ No newline at end of file
development.ini
... ... @@ -1,60 +0,0 @@
1   -[app:main]
2   -use = egg:LBBulk
3   -
4   -pyramid.reload_templates = true
5   -pyramid.debug_authorization = false
6   -pyramid.debug_notfound = false
7   -pyramid.debug_routematch = false
8   -pyramid.default_locale_name = en
9   -pyramid.includes =
10   - pyramid_tm
11   -
12   -sqlalchemy.url = postgresql://rest:rest@localhost/projeto1
13   -
14   -domain = http://api.brlight.org
15   -base_name = wmi_teste
16   -
17   -[server:main]
18   -use = egg:waitress#main
19   -host = 0.0.0.0
20   -port = 6543
21   -
22   -###
23   -# logging configuration
24   -# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
25   -###
26   -
27   -[loggers]
28   -keys = root, lbbulk, sqlalchemy
29   -
30   -[handlers]
31   -keys = console
32   -
33   -[formatters]
34   -keys = generic
35   -
36   -[logger_root]
37   -level = INFO
38   -handlers = console
39   -
40   -[logger_lbbulk]
41   -level = DEBUG
42   -handlers =
43   -qualname = lbbulk
44   -
45   -[logger_sqlalchemy]
46   -level = WARN
47   -handlers =
48   -qualname = sqlalchemy.engine
49   -# "level = INFO" logs SQL queries.
50   -# "level = DEBUG" logs SQL queries and results.
51   -# "level = WARN" logs neither. (Recommended for production systems.)
52   -
53   -[handler_console]
54   -class = StreamHandler
55   -args = (sys.stderr,)
56   -level = NOTSET
57   -formatter = generic
58   -
59   -[formatter_generic]
60   -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
development.ini-dist 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +[app:main]
  2 +use = egg:LBBulk
  3 +
  4 +pyramid.reload_templates = true
  5 +pyramid.debug_authorization = false
  6 +pyramid.debug_notfound = false
  7 +pyramid.debug_routematch = false
  8 +pyramid.default_locale_name = en
  9 +pyramid.includes =
  10 + pyramid_tm
  11 +
  12 +sqlalchemy.url = postgresql://rest:rest@localhost/lbbulk
  13 +
  14 +domain = http://api.brlight.org
  15 +base_name = wmi
  16 +
  17 +[server:main]
  18 +use = egg:waitress#main
  19 +host = 0.0.0.0
  20 +port = 6543
  21 +
  22 +###
  23 +# logging configuration
  24 +# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
  25 +###
  26 +
  27 +[loggers]
  28 +keys = root, lbbulk, sqlalchemy
  29 +
  30 +[handlers]
  31 +keys = console
  32 +
  33 +[formatters]
  34 +keys = generic
  35 +
  36 +[logger_root]
  37 +level = INFO
  38 +handlers = console
  39 +
  40 +[logger_lbbulk]
  41 +level = DEBUG
  42 +handlers =
  43 +qualname = lbbulk
  44 +
  45 +[logger_sqlalchemy]
  46 +level = WARN
  47 +handlers =
  48 +qualname = sqlalchemy.engine
  49 +# "level = INFO" logs SQL queries.
  50 +# "level = DEBUG" logs SQL queries and results.
  51 +# "level = WARN" logs neither. (Recommended for production systems.)
  52 +
  53 +[handler_console]
  54 +class = StreamHandler
  55 +args = (sys.stderr,)
  56 +level = NOTSET
  57 +formatter = generic
  58 +
  59 +[formatter_generic]
  60 +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
... ...
lbbulk.wsgi-dist 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +from pyramid.paster import get_app, setup_logging
  2 +
  3 +ini_path = '/srv/lightbase/LBBulk/development.ini'
  4 +#ini_path = '/srv/lightbase/LBBulk/production.ini'
  5 +
  6 +setup_logging(ini_path)
  7 +application = get_app(ini_path, 'main')
... ...
lbbulk/config/routing.py
1 1 # import lbbulk.model
2 2 from lbbulk.model.BulkUpload import BulkUploadContextFactory
3   -from lbbulk.model.BulkSources import BulkSourceContextFactory
  3 +from lbbulk.model.BulkSource import BulkSourceContextFactory
4 4 from lbbulk.view.restfulview import RegCustomView
5 5  
6 6 def make_routes(config):
... ...
lbbulk/model/BulkSource.py 0 → 100644
... ... @@ -0,0 +1,20 @@
  1 +from sqlalchemy import Table, Column, Integer, String
  2 +from pyramid_restler.model import SQLAlchemyORMContext
  3 +from lbbulk.model import Base, metadata, session
  4 +
  5 +
  6 +bulk_source = Table('lb_bulk_source', metadata,
  7 + Column('id_source', Integer, primary_key=True),
  8 + Column('name_source', String, nullable=False)
  9 + )
  10 +
  11 +
  12 +# map to it
  13 +class BulkSource(Base):
  14 + __table__ = bulk_source
  15 +
  16 +class BulkSourceContextFactory(SQLAlchemyORMContext):
  17 + entity = BulkSource
  18 +
  19 + def session_factory(self):
  20 + return session
... ...
lbbulk/model/BulkSources.py
... ... @@ -1,20 +0,0 @@
1   -from sqlalchemy import Table, Column, Integer, String
2   -from pyramid_restler.model import SQLAlchemyORMContext
3   -from lbbulk.model import Base, metadata, session
4   -
5   -
6   -bulk_source = Table('lb_bulk_sources', metadata,
7   - Column('id_source', Integer, primary_key=True),
8   - Column('nome_source', String, nullable=False)
9   - )
10   -
11   -
12   -# map to it
13   -class BulkSource(Base):
14   - __table__ = bulk_source
15   -
16   -class BulkSourceContextFactory(SQLAlchemyORMContext):
17   - entity = BulkSource
18   -
19   - def session_factory(self):
20   - return session
lbbulk/model/BulkUpload.py
1 1 from sqlalchemy import Table, Column, Integer, String, ForeignKey
  2 +from requests import get
2 3 from pyramid_restler.model import SQLAlchemyORMContext
3 4 from lbbulk.model import Base, metadata, session
4 5 import json
... ... @@ -6,9 +7,9 @@ import json
6 7  
7 8 bulk_upload = Table('lb_bulk_upload', metadata,
8 9 Column('id_reg', Integer, primary_key=True),
9   - Column('chave_externa', String, nullable=False),
  10 + Column('external_key', String, nullable=False),
10 11 Column('id_source', Integer,
11   - ForeignKey('lb_bulk_sources.id_source'),
  12 + ForeignKey('lb_bulk_source.id_source'),
12 13 nullable=False),
13 14 extend_existing=True
14 15 )
... ... @@ -18,9 +19,13 @@ class BulkUpload(Base):
18 19 __table__ = bulk_upload
19 20  
20 21 def verifica_registro(data):
21   -# q = session.query(BulkUpload).filter_by(id_source=data['id_source'], chave_externa=data['json_reg']['id_reg'] )
22   - q = session.query(BulkUpload).filter_by(id_source=1, chave_externa=data['json_reg']['id_reg'] )
  22 + # q = session.query(BulkUpload).filter_by(id_source=1, external_key=data['json_reg']['id_reg'] )
  23 + get('localhost/')
23 24 registro_existe = q.first()
  25 + if sim:
  26 + registro_existe = True
  27 + else:
  28 + registro_existe = False
24 29 return registro_existe
25 30  
26 31  
... ... @@ -32,4 +37,4 @@ class BulkUploadContextFactory(SQLAlchemyORMContext):
32 37  
33 38 def get_member_id_as_string(self, member):
34 39 id = self.get_member_id(member)
35 40 - return json.dumps(id, cls=self.json_encoder)
  41 + return json.dumps(id, cls=self.json_encoder)
36 42 \ No newline at end of file
... ...
lbbulk/templates/mytemplate.pt
... ... @@ -39,6 +39,9 @@
39 39 <li>
40 40 <a href="/lbbulk/source">Fontes de Dados</a>
41 41 </li>
  42 + <li>
  43 + <hr>
  44 + </li>
42 45 </ul>
43 46 </div>
44 47 <div id="right" class="align-left">
... ...
lbbulk/view/restfulview.py
... ... @@ -28,40 +28,41 @@ class RegCustomView(RESTfulView):
28 28 return data
29 29  
30 30 def send_to_lightbase(self, data):
31   - """ Sends the register to a lightbase table and returns a dict
  31 + """ Sends the registers to a neo-light base and returns a dict
32 32 with the external key and lighbase's id_reg """
33 33 data['json_reg'] = json.loads(data['json_reg'])
34 34 # converte os filhos pra dicts
35   - existente = BulkUpload.verifica_registro(data)
36   - # print(existente.id_reg)
37   - print('\n\n\n\n\n\n\n\n\n\n')
  35 +# existente = BulkUpload.verifica_registro(data)
38 36 registro = self.is_error(data)
39   - #id_source = registro['id_source']
40   - #registro.pop('id_source', None)
  37 +# id_source = registro['id_source']
41 38 id_source = 1
42   - chave_externa = registro['json_reg']['id_reg']
  39 + external_key = registro['json_reg']['id_reg']
43 40 registro['json_reg'].pop('id_reg', None)
  41 + registro['json_reg'].pop('name_source', None)
44 42 registro['json_reg'] = json.dumps(registro['json_reg'])
45 43 url = self.get_url_lightbase()
46   - if existente is None:
  44 +# if existente:
  45 +# r = requests.put(url, data=registro)
  46 +# id_reg = existente
  47 +# data = None
  48 + if False:
  49 + pass
  50 + else:
47 51 r = requests.post(url, data=registro)
48 52 id_reg = self.is_error_resp(r.json())
49 53 data = {
50 54 'id_source':id_source,
51 55 'id_reg':id_reg,
52   - 'chave_externa':chave_externa
  56 + 'external_key':external_key
53 57 }
54   - else:
55   - r = requests.put(url, data=registro)
56   - id_reg = existente
57   - data = None
58 58 return data
59 59  
60 60 def get_url_lightbase(self): #TODO
61 61 """ Returns url from config """
62   - domain = 'http://api.brlight.org'
63   - base_name = 'wmi_teste'
64   - url = domain + '/' + base_name + '/reg'
  62 + domain = 'http://localhost/lightbase'
  63 + base_name = 'wmi'
  64 +# url = (settings['domain'] + '/' + settings['base_name'] + '/reg')
  65 + url = (domain + '/' + base_name + '/reg')
65 66 return url
66 67  
67 68 def is_error(self,data): #TODO
... ...
production.ini
... ... @@ -1,65 +0,0 @@
1   -###
2   -# app configuration
3   -# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html
4   -###
5   -
6   -[app:main]
7   -use = egg:LBBulk
8   -
9   -pyramid.reload_templates = false
10   -pyramid.debug_authorization = false
11   -pyramid.debug_notfound = false
12   -pyramid.debug_routematch = false
13   -pyramid.default_locale_name = en
14   -pyramid.includes =
15   - pyramid_tm
16   -
17   -sqlalchemy.url = postgresql://rest:rest@localhost/lbbulk
18   -
19   -domain = http://api.brlight.org
20   -base_name = wmi
21   -
22   -[server:main]
23   -use = egg:waitress#main
24   -host = 0.0.0.0
25   -port = 6543
26   -
27   -###
28   -# logging configuration
29   -# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
30   -###
31   -
32   -[loggers]
33   -keys = root, lbbulk, sqlalchemy
34   -
35   -[handlers]
36   -keys = console
37   -
38   -[formatters]
39   -keys = generic
40   -
41   -[logger_root]
42   -level = WARN
43   -handlers = console
44   -
45   -[logger_lbbulk]
46   -level = WARN
47   -handlers =
48   -qualname = lbbulk
49   -
50   -[logger_sqlalchemy]
51   -level = WARN
52   -handlers =
53   -qualname = sqlalchemy.engine
54   -# "level = INFO" logs SQL queries.
55   -# "level = DEBUG" logs SQL queries and results.
56   -# "level = WARN" logs neither. (Recommended for production systems.)
57   -
58   -[handler_console]
59   -class = StreamHandler
60   -args = (sys.stderr,)
61   -level = NOTSET
62   -formatter = generic
63   -
64   -[formatter_generic]
65   -format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
production.ini-dist 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +[app:main]
  2 +use = egg:LBBulk
  3 +
  4 +pyramid.reload_templates = false
  5 +pyramid.debug_authorization = false
  6 +pyramid.debug_notfound = false
  7 +pyramid.debug_routematch = false
  8 +pyramid.default_locale_name = en
  9 +pyramid.includes =
  10 + pyramid_tm
  11 +
  12 +sqlalchemy.url = postgresql://rest:rest@localhost/lbbulk
  13 +
  14 +domain = http://api.brlight.org
  15 +base_name = wmi
  16 +
  17 +[server:main]
  18 +use = egg:waitress#main
  19 +host = 0.0.0.0
  20 +port = 6543
  21 +
  22 +###
  23 +# logging configuration
  24 +# http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
  25 +###
  26 +
  27 +[loggers]
  28 +keys = root, lbbulk, sqlalchemy
  29 +
  30 +[handlers]
  31 +keys = console
  32 +
  33 +[formatters]
  34 +keys = generic
  35 +
  36 +[logger_root]
  37 +level = WARN
  38 +handlers = console
  39 +
  40 +[logger_lbbulk]
  41 +level = WARN
  42 +handlers =
  43 +qualname = lbbulk
  44 +
  45 +[logger_sqlalchemy]
  46 +level = WARN
  47 +handlers =
  48 +qualname = sqlalchemy.engine
  49 +# "level = INFO" logs SQL queries.
  50 +# "level = DEBUG" logs SQL queries and results.
  51 +# "level = WARN" logs neither. (Recommended for production systems.)
  52 +
  53 +[handler_console]
  54 +class = StreamHandler
  55 +args = (sys.stderr,)
  56 +level = NOTSET
  57 +formatter = generic
  58 +
  59 +[formatter_generic]
  60 +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s
... ...