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
@@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
1 -lbbulk/view/restfulview.py line 41  
2 -lbbulk/view/restfulview.py line 48  
3 \ No newline at end of file 0 \ No newline at end of file
development.ini
@@ -1,60 +0,0 @@ @@ -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 @@ @@ -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 @@ @@ -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 # import lbbulk.model 1 # import lbbulk.model
2 from lbbulk.model.BulkUpload import BulkUploadContextFactory 2 from lbbulk.model.BulkUpload import BulkUploadContextFactory
3 -from lbbulk.model.BulkSources import BulkSourceContextFactory 3 +from lbbulk.model.BulkSource import BulkSourceContextFactory
4 from lbbulk.view.restfulview import RegCustomView 4 from lbbulk.view.restfulview import RegCustomView
5 5
6 def make_routes(config): 6 def make_routes(config):
lbbulk/model/BulkSource.py 0 → 100644
@@ -0,0 +1,20 @@ @@ -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,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 from sqlalchemy import Table, Column, Integer, String, ForeignKey 1 from sqlalchemy import Table, Column, Integer, String, ForeignKey
  2 +from requests import get
2 from pyramid_restler.model import SQLAlchemyORMContext 3 from pyramid_restler.model import SQLAlchemyORMContext
3 from lbbulk.model import Base, metadata, session 4 from lbbulk.model import Base, metadata, session
4 import json 5 import json
@@ -6,9 +7,9 @@ import json @@ -6,9 +7,9 @@ import json
6 7
7 bulk_upload = Table('lb_bulk_upload', metadata, 8 bulk_upload = Table('lb_bulk_upload', metadata,
8 Column('id_reg', Integer, primary_key=True), 9 Column('id_reg', Integer, primary_key=True),
9 - Column('chave_externa', String, nullable=False), 10 + Column('external_key', String, nullable=False),
10 Column('id_source', Integer, 11 Column('id_source', Integer,
11 - ForeignKey('lb_bulk_sources.id_source'), 12 + ForeignKey('lb_bulk_source.id_source'),
12 nullable=False), 13 nullable=False),
13 extend_existing=True 14 extend_existing=True
14 ) 15 )
@@ -18,9 +19,13 @@ class BulkUpload(Base): @@ -18,9 +19,13 @@ class BulkUpload(Base):
18 __table__ = bulk_upload 19 __table__ = bulk_upload
19 20
20 def verifica_registro(data): 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 registro_existe = q.first() 24 registro_existe = q.first()
  25 + if sim:
  26 + registro_existe = True
  27 + else:
  28 + registro_existe = False
24 return registro_existe 29 return registro_existe
25 30
26 31
@@ -32,4 +37,4 @@ class BulkUploadContextFactory(SQLAlchemyORMContext): @@ -32,4 +37,4 @@ class BulkUploadContextFactory(SQLAlchemyORMContext):
32 37
33 def get_member_id_as_string(self, member): 38 def get_member_id_as_string(self, member):
34 id = self.get_member_id(member) 39 id = self.get_member_id(member)
35 - return json.dumps(id, cls=self.json_encoder) 40 - return json.dumps(id, cls=self.json_encoder)
  41 + return json.dumps(id, cls=self.json_encoder)
36 \ No newline at end of file 42 \ No newline at end of file
lbbulk/templates/mytemplate.pt
@@ -39,6 +39,9 @@ @@ -39,6 +39,9 @@
39 <li> 39 <li>
40 <a href="/lbbulk/source">Fontes de Dados</a> 40 <a href="/lbbulk/source">Fontes de Dados</a>
41 </li> 41 </li>
  42 + <li>
  43 + <hr>
  44 + </li>
42 </ul> 45 </ul>
43 </div> 46 </div>
44 <div id="right" class="align-left"> 47 <div id="right" class="align-left">
lbbulk/view/restfulview.py
@@ -28,40 +28,41 @@ class RegCustomView(RESTfulView): @@ -28,40 +28,41 @@ class RegCustomView(RESTfulView):
28 return data 28 return data
29 29
30 def send_to_lightbase(self, data): 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 with the external key and lighbase's id_reg """ 32 with the external key and lighbase's id_reg """
33 data['json_reg'] = json.loads(data['json_reg']) 33 data['json_reg'] = json.loads(data['json_reg'])
34 # converte os filhos pra dicts 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 registro = self.is_error(data) 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 id_source = 1 38 id_source = 1
42 - chave_externa = registro['json_reg']['id_reg'] 39 + external_key = registro['json_reg']['id_reg']
43 registro['json_reg'].pop('id_reg', None) 40 registro['json_reg'].pop('id_reg', None)
  41 + registro['json_reg'].pop('name_source', None)
44 registro['json_reg'] = json.dumps(registro['json_reg']) 42 registro['json_reg'] = json.dumps(registro['json_reg'])
45 url = self.get_url_lightbase() 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 r = requests.post(url, data=registro) 51 r = requests.post(url, data=registro)
48 id_reg = self.is_error_resp(r.json()) 52 id_reg = self.is_error_resp(r.json())
49 data = { 53 data = {
50 'id_source':id_source, 54 'id_source':id_source,
51 'id_reg':id_reg, 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 return data 58 return data
59 59
60 def get_url_lightbase(self): #TODO 60 def get_url_lightbase(self): #TODO
61 """ Returns url from config """ 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 return url 66 return url
66 67
67 def is_error(self,data): #TODO 68 def is_error(self,data): #TODO
production.ini
@@ -1,65 +0,0 @@ @@ -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 @@ @@ -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