Commit 042b876846297ce1a1f32149c97782b1b17932ad
0 parents
Exists in
master
Merge do Super Gerente para trunk
git-svn-id: http://svn.softwarepublico.gov.br/svn/cacic/cacic/trunk/integrador@1607 fecfc0c7-e812-0410-ae72-849f08638ee7
Showing
45 changed files
with
4246 additions
and
0 deletions
Show diff stats
1 | +++ a/README.txt | |
... | ... | @@ -0,0 +1,14 @@ |
1 | +WSCServer README | |
2 | +================== | |
3 | + | |
4 | +Getting Started | |
5 | +--------------- | |
6 | + | |
7 | +- cd <directory containing this file> | |
8 | + | |
9 | +- $venv/bin/python setup.py develop | |
10 | + | |
11 | +- $venv/bin/initialize_WSCServer_db development.ini | |
12 | + | |
13 | +- $venv/bin/pserve development.ini | |
14 | + | ... | ... |
1 | +++ a/coleta.txt | |
... | ... | @@ -0,0 +1,65 @@ |
1 | +{ | |
2 | + "System": { | |
3 | + "classeWMI": { | |
4 | + "Win32_BaseBoard": { | |
5 | + "label": "Win32_BaseBoard", | |
6 | + "classeAtributos": { | |
7 | + "Caption": "Placa Base", | |
8 | + "Description": "Placa Base", | |
9 | + "Manufacturer": "asus" | |
10 | + } | |
11 | + } | |
12 | + } | |
13 | + }, | |
14 | + "data_coleta": "14/10/2013" | |
15 | +} | |
16 | + | |
17 | +Geral | |
18 | +Win32_ComputerSystem: principal | |
19 | + Caption; | |
20 | + Domain; | |
21 | + UserName?; | |
22 | +Win32_NetworkAdapterConfiguration | |
23 | + IPAddress; | |
24 | + MACAddress; | |
25 | +Win32_OperatingSystem | |
26 | + Caption; | |
27 | + CSDVersion; | |
28 | + | |
29 | +Hardware | |
30 | + | |
31 | +Win32_Keyboard | |
32 | + Manufacturer; | |
33 | + Name; | |
34 | +Win32_PointingDevice | |
35 | + Manufacturer; | |
36 | + Name; | |
37 | +Win32_PhysicalMedia | |
38 | + Name; | |
39 | + Status; | |
40 | + Manufacturer; | |
41 | + Capacity; | |
42 | +Win32_BaseBoard | |
43 | + Manufacturer; | |
44 | + Model; | |
45 | + Name; | |
46 | +Win32_PhysicalMemory | |
47 | + Capacity; | |
48 | + Manufacturer; | |
49 | +Win32_Processor | |
50 | + Architecture; | |
51 | + Manufacturer; | |
52 | + Name; | |
53 | + NumberOfCores?; | |
54 | +Win32_Printer | |
55 | + Name; | |
56 | + Network; | |
57 | + ServerName?; | |
58 | + Shared; | |
59 | +Win32_DesktopMonitor | |
60 | + DisplayType?; | |
61 | + MonitorManufacturer?; | |
62 | + MonitorType?; | |
63 | + Name; | |
64 | + ScreenHeight?; | |
65 | + ScreenWidth?; | |
0 | 66 | \ No newline at end of file | ... | ... |
1 | +++ a/development.ini | |
... | ... | @@ -0,0 +1,49 @@ |
1 | +[app:main] | |
2 | +use = egg:WSCServer | |
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@10.209.8.39/cacic | |
13 | + | |
14 | +[server:main] | |
15 | +use = egg:waitress#main | |
16 | +host = 0.0.0.0 | |
17 | +port = 6543 | |
18 | + | |
19 | +[loggers] | |
20 | +keys = root, wscserver, sqlalchemy | |
21 | + | |
22 | +[handlers] | |
23 | +keys = console | |
24 | + | |
25 | +[formatters] | |
26 | +keys = generic | |
27 | + | |
28 | +[logger_root] | |
29 | +level = INFO | |
30 | +handlers = console | |
31 | + | |
32 | +[logger_wscserver] | |
33 | +level = DEBUG | |
34 | +handlers = | |
35 | +qualname = wscserver | |
36 | + | |
37 | +[logger_sqlalchemy] | |
38 | +level = INFO | |
39 | +handlers = | |
40 | +qualname = sqlalchemy.engine | |
41 | + | |
42 | +[handler_console] | |
43 | +class = StreamHandler | |
44 | +args = (sys.stderr,) | |
45 | +level = NOTSET | |
46 | +formatter = generic | |
47 | + | |
48 | +[formatter_generic] | |
49 | +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s | ... | ... |
1 | +++ a/production.ini | |
... | ... | @@ -0,0 +1,49 @@ |
1 | +[app:main] | |
2 | +use = egg:WSCServer | |
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@10.209.8.39/cacic | |
13 | + | |
14 | +[server:main] | |
15 | +use = egg:waitress#main | |
16 | +host = 0.0.0.0 | |
17 | +port = 6543 | |
18 | + | |
19 | +[loggers] | |
20 | +keys = root, wscserver, sqlalchemy | |
21 | + | |
22 | +[handlers] | |
23 | +keys = console | |
24 | + | |
25 | +[formatters] | |
26 | +keys = generic | |
27 | + | |
28 | +[logger_root] | |
29 | +level = WARN | |
30 | +handlers = console | |
31 | + | |
32 | +[logger_wscserver] | |
33 | +level = WARN | |
34 | +handlers = | |
35 | +qualname = wscserver | |
36 | + | |
37 | +[logger_sqlalchemy] | |
38 | +level = WARN | |
39 | +handlers = | |
40 | +qualname = sqlalchemy.engine | |
41 | + | |
42 | +[handler_console] | |
43 | +class = StreamHandler | |
44 | +args = (sys.stderr,) | |
45 | +level = NOTSET | |
46 | +formatter = generic | |
47 | + | |
48 | +[formatter_generic] | |
49 | +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s | ... | ... |
1 | +++ a/setup.cfg | |
... | ... | @@ -0,0 +1,27 @@ |
1 | +[nosetests] | |
2 | +match=^test | |
3 | +nocapture=1 | |
4 | +cover-package=wscserver | |
5 | +with-coverage=1 | |
6 | +cover-erase=1 | |
7 | + | |
8 | +[compile_catalog] | |
9 | +directory = wscserver/locale | |
10 | +domain = WSCServer | |
11 | +statistics = true | |
12 | + | |
13 | +[extract_messages] | |
14 | +add_comments = TRANSLATORS: | |
15 | +output_file = wscserver/locale/WSCServer.pot | |
16 | +width = 80 | |
17 | + | |
18 | +[init_catalog] | |
19 | +domain = WSCServer | |
20 | +input_file = wscserver/locale/WSCServer.pot | |
21 | +output_dir = wscserver/locale | |
22 | + | |
23 | +[update_catalog] | |
24 | +domain = WSCServer | |
25 | +input_file = wscserver/locale/WSCServer.pot | |
26 | +output_dir = wscserver/locale | |
27 | +previous = true | ... | ... |
1 | +++ a/setup.py | |
... | ... | @@ -0,0 +1,50 @@ |
1 | +import os | |
2 | + | |
3 | +from setuptools import setup, find_packages | |
4 | + | |
5 | +here = os.path.abspath(os.path.dirname(__file__)) | |
6 | +README = open(os.path.join(here, 'README.txt')).read() | |
7 | +CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() | |
8 | + | |
9 | +requires = [ | |
10 | + 'pyramid', | |
11 | + 'SQLAlchemy', | |
12 | + 'transaction', | |
13 | + 'pyramid_tm', | |
14 | + 'pyramid_debugtoolbar', | |
15 | + 'zope.sqlalchemy', | |
16 | + 'waitress', | |
17 | + 'psycopg2', | |
18 | + 'pyramid_restler', | |
19 | + 'requests', | |
20 | + 'chameleon' | |
21 | +] | |
22 | + | |
23 | +setup(name='WSCServer', | |
24 | + version='0.1', | |
25 | + description='WSCServer', | |
26 | + long_description=README + '\n\n' + CHANGES, | |
27 | + classifiers=[ | |
28 | + "Development Status :: 2 - Pre-Alpha", | |
29 | + "Programming Language :: Python :: 3.2", | |
30 | + "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", | |
31 | + "Framework :: Pyramid", | |
32 | + "Topic :: Internet :: WWW/HTTP", | |
33 | + "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", | |
34 | + ], | |
35 | + author='Lightbase', | |
36 | + author_email='pedro.ricardo@lighbase.com.br', | |
37 | + url='', | |
38 | + keywords='rest lightbase json cacic pyramid', | |
39 | + packages=find_packages(), | |
40 | + include_package_data=True, | |
41 | + zip_safe=False, | |
42 | + test_suite='wscserver', | |
43 | + install_requires=requires, | |
44 | + entry_points="""\ | |
45 | + [paste.app_factory] | |
46 | + main = wscserver:main | |
47 | + [console_scripts] | |
48 | + initialize_WSCServer_db = wscserver.scripts.initializedb:main | |
49 | + """ | |
50 | + ) | |
0 | 51 | \ No newline at end of file | ... | ... |
1 | +++ a/wscserver/__init__.py | |
... | ... | @@ -0,0 +1,23 @@ |
1 | +from pyramid.config import Configurator | |
2 | +from pyramid_restler import includeme | |
3 | + | |
4 | +from sqlalchemy import engine_from_config, create_engine | |
5 | +from sqlalchemy.orm import sessionmaker | |
6 | + | |
7 | +from wscserver.config.routing import make_routes | |
8 | +from wscserver.model import initialize_sql, sqlalchemy_url | |
9 | + | |
10 | + | |
11 | +def main(global_config, **settings): | |
12 | + """ | |
13 | + This function returns a Pyramid WSGI application. | |
14 | + """ | |
15 | + config = Configurator(settings=settings) | |
16 | + config.scan('wscserver.model') # the "important" line | |
17 | + engine = create_engine(sqlalchemy_url) | |
18 | + initialize_sql(engine) | |
19 | + includeme(config) | |
20 | + | |
21 | + make_routes(config) | |
22 | + config.scan('wscserver') | |
23 | + return config.make_wsgi_app() | ... | ... |
1 | +++ a/wscserver/config/__init__.py | ... | ... |
1 | +++ a/wscserver/config/routing.py | |
... | ... | @@ -0,0 +1,15 @@ |
1 | +from wscserver.model.Coleta import ColetaContextFactory | |
2 | +from wscserver.view.restfulview import CustomRESTfulView | |
3 | +from wscserver.model.So import SoContextFactory | |
4 | + | |
5 | +def make_routes(config): | |
6 | + """ | |
7 | + Cria rotas | |
8 | + """ | |
9 | + config.add_static_view('static', 'static', cache_max_age=3600) | |
10 | + config.add_restful_routes( | |
11 | + 'rest/coleta', ColetaContextFactory, view=CustomRESTfulView) | |
12 | + config.add_restful_routes('rest/coleta2', ColetaContextFactory) | |
13 | + config.add_route('download','zip/coleta') | |
14 | + config.add_restful_routes('rest/so', SoContextFactory) | |
15 | + config.enable_POST_tunneling() | ... | ... |
1 | +++ a/wscserver/model/Acao.py | |
... | ... | @@ -0,0 +1,66 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class Acao(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'acao' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'acao' | |
18 | + id_acao = Column(String(30), primary_key=True, nullable=False) | |
19 | + te_descricao_breve = Column(String(100)) | |
20 | + te_descricao = Column(String) | |
21 | + te_nome_curto_modulo = Column(String(20)) | |
22 | + dt_hr_alteracao = Column(DateTime(timezone=False)) | |
23 | + cs_opcional = Column(String(1), nullable=False) | |
24 | + | |
25 | + def __init__(self, id_acao, te_descricao_breve, te_descricao, | |
26 | + te_nome_curto_modulo, dt_hr_alteracao, cs_opcional): | |
27 | + """ | |
28 | + Metodo que chama as colunas | |
29 | + """ | |
30 | + self.id_acao = id_acao | |
31 | + self.te_descricao_breve = te_descricao_breve | |
32 | + self.te_descricao = te_descricao | |
33 | + self.te_nome_curto_modulo = te_nome_curto_modulo | |
34 | + self.dt_hr_alteracao = dt_hr_alteracao | |
35 | + self.cs_opcional = cs_opcional | |
36 | + | |
37 | + def __repr__(self): | |
38 | + """ | |
39 | + Metodo que passa a lista de parametros da classe | |
40 | + """ | |
41 | + return "<Acao('%s, %s, %s, %s, %s, %s')>" % (self.id_acao, | |
42 | + self.te_descricao_breve, | |
43 | + self.te_descricao, | |
44 | + self.te_nome_curto_modulo, | |
45 | + self.dt_hr_alteracao, | |
46 | + self.cs_opcional | |
47 | + ) | |
48 | + | |
49 | + | |
50 | +class AcaoContextFactory(SQLAlchemyORMContext): | |
51 | + entity = Acao | |
52 | + | |
53 | + def session_factory(self): | |
54 | + return session | |
55 | + | |
56 | +acao = Table('acao', Base.metadata, | |
57 | + Column('id_acao', String(30), primary_key=True, nullable=False), | |
58 | + Column('te_descricao_breve', String(100)), | |
59 | + Column('te_descricao', String), | |
60 | + Column('te_nome_curto_modulo', String(20)), | |
61 | + Column('dt_hr_alteracao', DateTime(timezone=False)), | |
62 | + Column('cs_opcional', String(1), nullable=False), | |
63 | + extend_existing=True | |
64 | + ) | |
65 | + | |
66 | +mapper(Acao, acao) | ... | ... |
1 | +++ a/wscserver/model/AcaoExcecao.py | |
... | ... | @@ -0,0 +1,59 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class AcaoExcecao(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'acao_excecao' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'acao_excecao' | |
18 | + id_acao_excecao = Column(Integer, primary_key=True, nullable=False) | |
19 | + te_node_address = Column(String(17), nullable=False) | |
20 | + id_acao = Column(String(30), ForeignKey('acao.id_acao')) | |
21 | + id_rede = Column(Integer, ForeignKey('rede.id_rede')) | |
22 | + | |
23 | + def __init__(self, te_node_address, id_acao, id_rede): | |
24 | + """ | |
25 | + Metodo que chama as colunas | |
26 | + | |
27 | + """ | |
28 | + | |
29 | + self.te_node_address = te_node_address | |
30 | + self.id_acao = id_acao | |
31 | + self.id_rede = id_rede | |
32 | + | |
33 | + def __repr__(self): | |
34 | + """ | |
35 | + Metodo que passa a lista de parametros da classe | |
36 | + | |
37 | + """ | |
38 | + return "<AcaoExcecao('%s, %s, %s')>" % (self.te_node_address, | |
39 | + self.id_acao, | |
40 | + self.id_rede, | |
41 | + ) | |
42 | + | |
43 | + | |
44 | +class AcaoExcecaoContextFactory(SQLAlchemyORMContext): | |
45 | + entity = AcaoExcecao | |
46 | + | |
47 | + def session_factory(self): | |
48 | + return session | |
49 | + | |
50 | +acao_excecao = Table('acaoExcecao', Base.metadata, | |
51 | + Column('id_acao_excecao', Integer, primary_key=True, | |
52 | + nullable=True), | |
53 | + Column('te_node_address', String(17), nullable=False), | |
54 | + Column('id_acao', String(30), ForeignKey('acao.id_acao')), | |
55 | + Column('id_rede', Integer, ForeignKey('rede.id_rede')), | |
56 | + extend_existing=True | |
57 | + ) | |
58 | + | |
59 | +mapper(AcaoExcecao, acao_excecao) | ... | ... |
1 | +++ a/wscserver/model/AcaoRede.py | |
... | ... | @@ -0,0 +1,57 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | +from sqlalchemy import Table, ForeignKey | |
3 | +from sqlalchemy.orm import mapper, relationship, backref | |
4 | +from sqlalchemy.schema import Column | |
5 | +from sqlalchemy.types import * | |
6 | +from wscserver.model import Base, session | |
7 | +from sqlalchemy.ext.declarative import declarative_base | |
8 | + | |
9 | + | |
10 | +class AcaoRede(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'acao_rede' | |
14 | + """ | |
15 | + | |
16 | + __tablename__ = 'acao_rede' | |
17 | + id_acao_rede = Column(Integer, primary_key=True, nullable=False) | |
18 | + id_acao = Column(String(30), ForeignKey('acao.id_acao')) | |
19 | + id_rede = Column(Integer, ForeignKey('rede.id_rede')) | |
20 | + dt_hr_coleta_forcada = Column(DateTime(timezone=False)) | |
21 | + | |
22 | + def __init__(self, id_acao, id_rede, dt_hr_coleta_forcada): | |
23 | + """ | |
24 | + Metodo que chama as colunas | |
25 | + """ | |
26 | + self.id_acao_rede = id_acao_rede | |
27 | + self.id_acao = id_acao | |
28 | + self.id_rede = id_rede | |
29 | + self.dt_hr_coleta_forcada = dt_hr_coleta_forcada | |
30 | + | |
31 | + def __repr__(self): | |
32 | + """ | |
33 | + Metodo que passa a lista de parametros da classe | |
34 | + """ | |
35 | + return "<AcaoRede('%s, %s, %s, %s')>" % (self.id_acao_rede, | |
36 | + self.id_acao, | |
37 | + self.id_rede, | |
38 | + self.dt_hr_coleta_forcada | |
39 | + ) | |
40 | + | |
41 | + | |
42 | +class AcaoRedeContextFactory(SQLAlchemyORMContext): | |
43 | + entity = AcaoRede | |
44 | + | |
45 | + def session_factory(self): | |
46 | + return session | |
47 | + | |
48 | +acao_rede = Table('acao_rede', Base.metadata, | |
49 | + Column('id_acao_rede', Integer, primary_key=True, | |
50 | + nullable=False), | |
51 | + Column('id_acao', ForeignKey('acao.id_acao')), | |
52 | + Column('id_rede', ForeignKey('rede.id_rede')), | |
53 | + Column('dt_hr_coleta_forcada', DateTime(timezone=False)), | |
54 | + extend_existing=True | |
55 | + ) | |
56 | + | |
57 | +mapper(AcaoRede, acao_rede) | ... | ... |
1 | +++ a/wscserver/model/AcaoSo.py | |
... | ... | @@ -0,0 +1,55 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | +from sqlalchemy import Table, ForeignKey | |
3 | +from sqlalchemy.orm import mapper, relationship, backref | |
4 | +from sqlalchemy.schema import Column | |
5 | +from sqlalchemy.types import * | |
6 | +from sqlalchemy.ext.declarative import declarative_base | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class AcaoSo(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'acao_so' | |
14 | + | |
15 | + """ | |
16 | + __tablename__ = 'acao_so' | |
17 | + id_acao_so = Column(Integer, primary_key=True, nullable=False) | |
18 | + id_acao = Column(String(30), ForeignKey('acao.id_acao')) | |
19 | + id_rede = Column(Integer, ForeignKey('rede.id_rede')) | |
20 | + id_so = Column(Integer, ForeignKey('so.id_so')) | |
21 | + | |
22 | + def __init__(self, id_acao_so, id_acao, id_rede, id_so): | |
23 | + """ | |
24 | + Metodo que chama as colunas | |
25 | + """ | |
26 | + self.id_acao_so = id_acao_so | |
27 | + self.id_acao = id_acao | |
28 | + self.id_rede = id_rede | |
29 | + self.id_so = id_so | |
30 | + | |
31 | + def __repr__(self): | |
32 | + """ | |
33 | + Metodo que passa a lista de parametros da classe | |
34 | + """ | |
35 | + return "<AcaoSo('%s, %s, %s, %s')>" % (self.id_acao_so, | |
36 | + self.id_acao, | |
37 | + self.id_rede, | |
38 | + self.id_so | |
39 | + ) | |
40 | + | |
41 | + | |
42 | +class AcaoSoContextFactory(SQLAlchemyORMContext): | |
43 | + entity = AcaoSo | |
44 | + | |
45 | + def session_factory(self): | |
46 | + return session | |
47 | + | |
48 | +acao_so = Table('acao_so', Base.metadata, | |
49 | + Column('id_acao_so', Integer, primary_key=True, | |
50 | + nullable=False), | |
51 | + Column('id_acao', String(30), ForeignKey("acao.id_acao")), | |
52 | + Column('id_rede', Integer, ForeignKey("rede.id_rede")), | |
53 | + Column('id_so', Integer, ForeignKey("so.id_so")), | |
54 | + ) | |
55 | +mapper(AcaoSo, acao_so) | ... | ... |
1 | +++ a/wscserver/model/Aplicativo.py | |
... | ... | @@ -0,0 +1,141 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class Aplicativo(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'aplicativo' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'aplicativo' | |
18 | + id_aplicativo = Column(Integer, primary_key=True, nullable=False) | |
19 | + id_so = Column(Integer, ForeignKey('so.id_so')) | |
20 | + nm_aplicativo = Column(String(100), nullable=False) | |
21 | + cs_car_inst_w9x = Column(String(2)) | |
22 | + te_car_inst_w9x = Column(String(255)) | |
23 | + cs_car_ver_w9x = Column(String(2)) | |
24 | + te_car_ver_w9x = Column(String(255)) | |
25 | + cs_car_inst_wnt = Column(String(2)) | |
26 | + te_car_inst_wnt = Column(String(255)) | |
27 | + cs_car_ver_wnt = Column(String(2)) | |
28 | + te_car_ver_wnt = Column(String(255)) | |
29 | + cs_ide_licenca = Column(String(2)) | |
30 | + te_ide_licenca = Column(String(255)) | |
31 | + dt_atualizacao = Column(DateTime(timezone=False)) | |
32 | + te_arq_ver_eng_w9x = Column(String(100)) | |
33 | + te_arq_ver_pat_w9x = Column(String(100)) | |
34 | + te_arq_ver_eng_wnt = Column(String(100)) | |
35 | + te_arq_ver_pat_wnt = Column(String(100)) | |
36 | + te_dir_padrao_w9x = Column(String(100)) | |
37 | + te_dir_padrao_wnt = Column(String(100)) | |
38 | + te_descritivo = Column(String) | |
39 | + in_disponibiliza_info = Column(String(1), nullable=False) | |
40 | + in_disponibiliza_info_usuario_comum = Column(String(1), nullable=False) | |
41 | + dt_registro = Column(DateTime(timezone=False)) | |
42 | + | |
43 | + def __init__(self,): | |
44 | + """ | |
45 | + Metodo que chama as colunas | |
46 | + """ | |
47 | + self.id_aplicativo = id_aplicativo | |
48 | + self.id_so = id_so | |
49 | + self.nm_aplicativo = nm_aplicativo | |
50 | + self.cs_car_inst_w9x = cs_car_inst_w9x | |
51 | + self.te_car_inst_w9x = te_car_inst_w9x | |
52 | + self.cs_car_ver_w9x = cs_car_ver_w9x | |
53 | + self.te_car_ver_w9x = te_car_ver_w9x | |
54 | + self.cs_car_inst_wnt = cs_car_inst_wnt | |
55 | + self.te_car_inst_wnt = te_car_inst_wnt | |
56 | + self.cs_car_ver_wnt = cs_car_ver_wnt | |
57 | + self.te_car_ver_wnt = te_car_ver_wnt | |
58 | + self.cs_ide_licenca = cs_ide_licenca | |
59 | + self.te_ide_licenca = te_ide_licenca | |
60 | + self.dt_atualizacao = dt_atualizacao | |
61 | + self.te_arq_ver_eng_w9x = te_arq_ver_eng_w9x | |
62 | + self.te_arq_ver_pat_w9x = te_arq_ver_pat_w9x | |
63 | + self.te_arq_ver_eng_wnt = te_arq_ver_eng_wnt | |
64 | + self.te_arq_ver_pat_wnt = te_arq_ver_pat_wnt | |
65 | + self.te_dir_padrao_w9x = te_dir_padrao_w9x | |
66 | + self.te_dir_padrao_wnt = te_dir_padrao_wnt | |
67 | + self.te_descritivo = te_descritivo | |
68 | + self.in_disponibiliza_info = in_disponibiliza_info | |
69 | + self.in_disponibiliza_info_usuario_comum = in_disponibiliza_info_usuario_comum | |
70 | + self.dt_registro = dt_registro | |
71 | + | |
72 | + def __repr__(self): | |
73 | + """ | |
74 | + Metodo que passa a lista de parametros da classe | |
75 | + """ | |
76 | + return "<Aplicativo('%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,\ | |
77 | + %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s')>"\ | |
78 | + % (self.id_aplicativo, | |
79 | + self.id_so, | |
80 | + self.nm_aplicativo, | |
81 | + self.cs_car_inst_w9x, | |
82 | + self.te_car_inst_w9x, | |
83 | + self.cs_car_ver_w9x, | |
84 | + self.te_car_ver_w9x, | |
85 | + self.cs_car_inst_wnt, | |
86 | + self.te_car_inst_wnt, | |
87 | + self.cs_car_ver_wnt, | |
88 | + self.te_car_ver_wnt, | |
89 | + self.cs_ide_licenca, | |
90 | + self.te_ide_licenca, | |
91 | + self.dt_atualizacao, | |
92 | + self.te_arq_ver_eng_w9x, | |
93 | + self.te_arq_ver_pat_w9x, | |
94 | + self.te_arq_ver_eng_wnt, | |
95 | + self.te_arq_ver_pat_wnt, | |
96 | + self.te_dir_padrao_w9x, | |
97 | + self.te_dir_padrao_wnt, | |
98 | + self.te_descritivo, | |
99 | + self.in_disponibiliza_info, | |
100 | + self.in_disponibiliza_info_usuario_comum, | |
101 | + self.dt_registro | |
102 | + ) | |
103 | + | |
104 | + | |
105 | +class AplicativoContextFactory(SQLAlchemyORMContext): | |
106 | + entity = Aplicativo | |
107 | + | |
108 | + def session_factory(self): | |
109 | + return session | |
110 | + | |
111 | +aplicativo = Table('aplicativo', Base.metadata, | |
112 | + Column('id_aplicativo', Integer, primary_key=True, | |
113 | + nullable=False), | |
114 | + Column('id_so', Integer, ForeignKey('so.id_so')), | |
115 | + Column('nm_aplicativo', String(100), nullable=False), | |
116 | + Column('cs_car_inst_w9x', String(2)), | |
117 | + Column('te_car_inst_w9x', String(255)), | |
118 | + Column('cs_car_ver_w9x', String(2)), | |
119 | + Column('te_car_ver_w9x', String(255)), | |
120 | + Column('cs_car_inst_wnt', String(2)), | |
121 | + Column('te_car_inst_wnt', String(255)), | |
122 | + Column('cs_car_ver_wnt', String(2)), | |
123 | + Column('te_car_ver_wnt', String(255)), | |
124 | + Column('cs_ide_licenca', String(2)), | |
125 | + Column('te_ide_licenca', String(255)), | |
126 | + Column('dt_atualizacao', DateTime(timezone=False)), | |
127 | + Column('te_arq_ver_eng_w9x', String(100)), | |
128 | + Column('te_arq_ver_pat_w9x', String(100)), | |
129 | + Column('te_arq_ver_eng_wnt', String(100)), | |
130 | + Column('te_arq_ver_pat_wnt', String(100)), | |
131 | + Column('te_dir_padrao_w9x', String(100)), | |
132 | + Column('te_dir_padrao_wnt', String(100)), | |
133 | + Column('te_descritivo', String), | |
134 | + Column('in_disponibiliza_info', String(1), nullable=False), | |
135 | + Column('in_disponibiliza_info_usuario_comum', String(1), | |
136 | + nullable=False), | |
137 | + Column('dt_registro', DateTime(timezone=False)), | |
138 | + extend_existing=True | |
139 | + ) | |
140 | + | |
141 | +mapper(Aplicativo, aplicativo) | ... | ... |
1 | +++ a/wscserver/model/AplicativoRede.py | |
... | ... | @@ -0,0 +1,53 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class AplicativoRede(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'aplicativo_rede' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'aplicativo_rede' | |
18 | + id_rede = Column(Integer, ForeignKey('rede.id_rede'), primary_key=True) | |
19 | + id_aplicativo = Column(Integer, ForeignKey('aplicativo.id_aplicativo'), | |
20 | + primary_key=True) | |
21 | + | |
22 | + def __init__(self, id_rede, id_aplicativo): | |
23 | + """ | |
24 | + Metodo que chama as colunas | |
25 | + """ | |
26 | + self.id_rede = id_rede | |
27 | + self.id_aplicativo = id_aplicativo | |
28 | + | |
29 | + def __repr__(self): | |
30 | + """ | |
31 | + Metodo que passa a lista de parametros da classe | |
32 | + """ | |
33 | + return "<AplicativoRede('%s, %s')>" % (self.id_rede, | |
34 | + self.id_aplicativo | |
35 | + ) | |
36 | + | |
37 | + | |
38 | +class AplicativoRedeContextFactory(SQLAlchemyORMContext): | |
39 | + entity = AplicativoRede | |
40 | + | |
41 | + def session_factory(self): | |
42 | + return session | |
43 | + | |
44 | +aplicativo_rede = Table('aplicativoRede', Base.metadata, | |
45 | + Column('id_rede', Integer, ForeignKey('rede.id_rede'), | |
46 | + primary_key=True), | |
47 | + Column('id_aplicativo', Integer, | |
48 | + ForeignKey('aplicativo.id_aplicativo'), | |
49 | + primary_key=True), | |
50 | + extend_existing=True | |
51 | + ) | |
52 | + | |
53 | +mapper(AplicativoRede, aplicativo_rede) | ... | ... |
1 | +++ a/wscserver/model/Coleta.py | |
... | ... | @@ -0,0 +1,91 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy.ext.declarative import declarative_base | |
4 | +from sqlalchemy.orm import column_property, mapper, join | |
5 | +from sqlalchemy.schema import ForeignKey, Column, Table | |
6 | +from sqlalchemy.types import * | |
7 | + | |
8 | +from wscserver.model import Base, session | |
9 | + | |
10 | + | |
11 | +computador_coleta_historico = Table( | |
12 | + 'computador_coleta_historico', Base.metadata, | |
13 | + Column('id_computador_coleta_historico', | |
14 | + Integer, primary_key=True, nullable=False), | |
15 | + Column('id_computador_coleta', Integer, | |
16 | + ForeignKey('computador_coleta.id_computador_coleta')), | |
17 | + Column('dt_hr_inclusao', DateTime(timezone=False), nullable=False) | |
18 | +) | |
19 | + | |
20 | +computador_coleta = Table('computador_coleta', Base.metadata, | |
21 | + Column('id_computador_coleta', Integer, | |
22 | + primary_key=True, nullable=False), | |
23 | + Column('id_computador', Integer), | |
24 | + Column('id_class_property', Integer, | |
25 | + ForeignKey( | |
26 | + 'class_property.id_class_property')), | |
27 | + Column('te_class_property_value', | |
28 | + String, nullable=False), | |
29 | + ) | |
30 | + | |
31 | +class_property = Table('class_property', Base.metadata, | |
32 | + Column('id_class_property', Integer, nullable=False), | |
33 | + Column('id_class', Integer, | |
34 | + ForeignKey('classe.id_class')), | |
35 | + Column('nm_property_name', String, nullable=False), | |
36 | + ) | |
37 | + | |
38 | +classe = Table('classe', Base.metadata, | |
39 | + Column('id_class', Integer, primary_key=True, nullable=False), | |
40 | + Column('nm_class_name', String, nullable=False), | |
41 | + ) | |
42 | + | |
43 | + | |
44 | +classe_and_class_property = join(classe, class_property) | |
45 | +pc_coleta_and_classe_and_class_property = join( | |
46 | + computador_coleta, classe_and_class_property) | |
47 | +coleta = join(computador_coleta_historico, | |
48 | + pc_coleta_and_classe_and_class_property) | |
49 | + | |
50 | + | |
51 | +class ClasseAndClassProperty(Base): | |
52 | + | |
53 | + """Classe de join entre 'classe' e 'class_property'""" | |
54 | + __table__ = classe_and_class_property | |
55 | + id_class = column_property(classe.c.id_class, class_property.c.id_class) | |
56 | + | |
57 | + | |
58 | +class PcColetaAndClasseAndClassProperty(Base): | |
59 | + | |
60 | + """ | |
61 | + Classe de join entre 'computador_coleta' e | |
62 | + 'classe_and_class_property' | |
63 | + """ | |
64 | + __table__ = pc_coleta_and_classe_and_class_property | |
65 | + id_class = column_property(classe.c.id_class, class_property.c.id_class) | |
66 | + id_computador_coleta = column_property( | |
67 | + computador_coleta.c.id_computador_coleta, | |
68 | + computador_coleta_historico.c.id_computador_coleta) | |
69 | + id_class_property = column_property(class_property.c.id_class_property, | |
70 | + computador_coleta.c.id_class_property) | |
71 | + | |
72 | + | |
73 | +class Coleta(Base): | |
74 | + | |
75 | + """Classe de join entre as quatro tabelas""" | |
76 | + __table__ = coleta | |
77 | + id_class = column_property(classe.c.id_class, class_property.c.id_class) | |
78 | + id_class_property = column_property(class_property.c.id_class_property, | |
79 | + computador_coleta.c.id_class_property) | |
80 | + id_computador_coleta = column_property( | |
81 | + computador_coleta.c.id_computador_coleta, | |
82 | + computador_coleta_historico.c.id_computador_coleta) | |
83 | + | |
84 | + | |
85 | +class ColetaContextFactory(SQLAlchemyORMContext): | |
86 | + entity = Coleta | |
87 | + | |
88 | + def session_factory(self): | |
89 | + return session | |
90 | + | |
91 | +# mapper(Coleta, coleta) | ... | ... |
1 | +++ a/wscserver/model/Computador.py | |
... | ... | @@ -0,0 +1,129 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class Computador(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'computador' | |
14 | + | |
15 | + """ | |
16 | + __tablename__ = 'computador' | |
17 | + id_computador = Column(Integer, primary_key=True, nullable=False) | |
18 | + id_usuario_exclusao = Column(Integer) | |
19 | + id_so = Column(Integer, ForeignKey('so.id_so')) | |
20 | + id_rede = Column(Integer, ForeignKey('rede.id_rede')) | |
21 | + nm_computador = Column(String(50)) | |
22 | + te_node_address = Column(String(17), nullable=False) | |
23 | + te_ip_computador = Column(String(15)) | |
24 | + dt_hr_inclusao = Column(DateTime(timezone=False)) | |
25 | + dt_hr_exclusao = Column(DateTime(timezone=False)) | |
26 | + dt_hr_ult_acesso = Column(DateTime(timezone=False)) | |
27 | + te_versao_cacic = Column(String(15)) | |
28 | + te_versao_gercols = Column(String(15)) | |
29 | + te_palavra_chave = Column(String(30), nullable=False) | |
30 | + dt_hr_coleta_forcada_estacao = Column(DateTime(timezone=False)) | |
31 | + te_nomes_curtos_modulos = Column(String(255)) | |
32 | + id_conta = Column(Integer) | |
33 | + te_debugging = Column(String) | |
34 | + te_ultimo_login = Column(String(100)) | |
35 | + dt_debug = Column(String(8)) | |
36 | + | |
37 | + def __init__(self, id_computador, id_usuario_exclusao, id_so, id_rede, | |
38 | + nm_computador, te_node_address, te_ip_computador, | |
39 | + dt_hr_inclusao, dt_hr_exclusao, dt_hr_ultimo_acesso, | |
40 | + te_versao_cacic, te_versao_gercols, te_palavra_chave, | |
41 | + dt_hr_coleta_forcada_estacao, te_nomes_curtos_modulos, | |
42 | + id_conta, te_debugging, te_ultimo_login, dt_debug): | |
43 | + """ | |
44 | + Metodo que chama as colunas | |
45 | + """ | |
46 | + self.id_computador = id_computador | |
47 | + self.id_usuario_exclusao = id_usuario_exclusao | |
48 | + self.id_so = id_so | |
49 | + self.id_rede = id_rede | |
50 | + self.nm_computador = nm_computador | |
51 | + self.te_node_address = te_node_address | |
52 | + self.te_ip_computador = te_ip_computador | |
53 | + self.dt_hr_inclusao = dt_hr_inclusao | |
54 | + self.dt_hr_exclusao = dt_hr_exclusao | |
55 | + self.dt_hr_ult_acesso = dt_hr_ult_acesso | |
56 | + self.te_versao_cacic = te_versao_cacic | |
57 | + self.te_versao_gercols = te_versao_gercols | |
58 | + self.te_palavra_chave = te_palavra_chave | |
59 | + self.dt_hr_coleta_forcada_estacao = dt_hr_coleta_forcada_estacao | |
60 | + self.te_nomes_curtos_modulos = te_nomes_curtos_modulos | |
61 | + self.id_conta = id_conta | |
62 | + self.te_debugging = te_debugging | |
63 | + self.te_ultimo_login = te_ultimo_login | |
64 | + self.dt_debug = dt_debug | |
65 | + | |
66 | + def __repr__(self, id_computador, id_usuario_exclusao, id_so, id_rede, | |
67 | + nm_computador, te_node_address, te_ip_computador, | |
68 | + dt_hr_inclusao, dt_hr_exclusao, dt_hr_ult_acesso, | |
69 | + te_versao_cacic, te_versao_gercols, te_palavra_chave, | |
70 | + dt_hr_coleta_forcada_estacao, te_nomes_curtos_modulos, | |
71 | + id_conta, te_debugging, te_ultimo_login, dt_debug): | |
72 | + """ | |
73 | + Metodo que passa a lista de parametros da classe | |
74 | + """ | |
75 | + return "<Computador('%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,\ | |
76 | + %s, %s, %s, %s, %s, %s, %s')>" %\ | |
77 | + (self.id_computador, | |
78 | + self.id_usuario_exclusao, | |
79 | + self.id_so, | |
80 | + self.id_rede, | |
81 | + self.nm_computador, | |
82 | + self.te_node_address, | |
83 | + self.te_ip_computador, | |
84 | + self.dt_hr_inclusao, | |
85 | + self.dt_hr_exclusao, | |
86 | + self.dt_hr_ult_acesso, | |
87 | + self.te_versao_cacic, | |
88 | + self.te_versao_gercols, | |
89 | + self.te_palavra_chave, | |
90 | + self.dt_hr_coleta_forcada_estacao, | |
91 | + self.te_nomes_curtos_modulos, | |
92 | + self.id_conta, | |
93 | + self.te_debugging, | |
94 | + self.te_ultimo_login, | |
95 | + self.dt_debug | |
96 | + ) | |
97 | + | |
98 | + | |
99 | +class ComputadorContextFactory(SQLAlchemyORMContext): | |
100 | + entity = Computador | |
101 | + | |
102 | + def session_factory(self): | |
103 | + return session | |
104 | + | |
105 | +computador = Table('computador', Base.metadata, | |
106 | + Column('id_computador', Integer, primary_key=True, | |
107 | + nullable=False), | |
108 | + Column('id_usuario_exclusao', Integer), | |
109 | + Column('id_so', Integer, ForeignKey('so.id_so')), | |
110 | + Column('id_rede', Integer, ForeignKey('rede.id_rede')), | |
111 | + Column('nm_computador', String(50)), | |
112 | + Column('te_node_address', String(17), nullable=False), | |
113 | + Column('te_ip_computador', String(15)), | |
114 | + Column('dt_hr_inclusao', DateTime(timezone=False)), | |
115 | + Column('dt_hr_exclusao', DateTime(timezone=False)), | |
116 | + Column('dt_hr_ult_acesso', DateTime(timezone=False)), | |
117 | + Column('te_versao_cacic', String(15)), | |
118 | + Column('te_versao_gercols', String(15)), | |
119 | + Column('te_palavra_chave', String(30), nullable=False), | |
120 | + Column('dt_hr_coleta_forcada_estacao', | |
121 | + DateTime(timezone=False)), | |
122 | + Column('te_nomes_curtos_modulos', String(255)), | |
123 | + Column('id_conta', Integer), | |
124 | + Column('te_debugging', String), | |
125 | + Column('te_ultimo_login', String(100)), | |
126 | + Column('dt_debug', String(8)), | |
127 | + extend_existing=True | |
128 | + ) | |
129 | +mapper(Computador, computador) | ... | ... |
1 | +++ a/wscserver/model/ComputadorColeta.py | |
... | ... | @@ -0,0 +1,61 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class ComputadorColeta(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'computador_coleta' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'computador_coleta' | |
18 | + id_computador_coleta = Column(Integer, primary_key=True, nullable=False) | |
19 | + id_computador = Column(Integer, ForeignKey('computador.id_computador')) | |
20 | + id_class = Column(Integer) | |
21 | + te_class_values = Column(String, nullable=False) | |
22 | + | |
23 | + def __init__(self, id_computador_coleta, id_computador, id_class, | |
24 | + te_class_values, dt_hr_inclusao): | |
25 | + """ | |
26 | + Metodo que chama as colunas | |
27 | + """ | |
28 | + self.id_computador_coleta = id_computador_coleta | |
29 | + self.id_computador = id_computador | |
30 | + self.id_class = id_class | |
31 | + self.te_class_values = te_class_values | |
32 | + | |
33 | + def __repr__(self): | |
34 | + """ | |
35 | + Metodo que passa a lista de parametros da classe | |
36 | + """ | |
37 | + return "<ComputadorColeta('%s, %s, %s, %s')>" %\ | |
38 | + (self.id_computador_coleta, | |
39 | + self.id_computador, | |
40 | + self.id_class, | |
41 | + self.te_class_values | |
42 | + ) | |
43 | + | |
44 | + | |
45 | +class ComputadorColetaContextFactory(SQLAlchemyORMContext): | |
46 | + entity = ComputadorColeta | |
47 | + | |
48 | + def session_factory(self): | |
49 | + return session | |
50 | + | |
51 | +computador_coleta = Table('computador_coleta', Base.metadata, | |
52 | + Column('id_computador_coleta', Integer, | |
53 | + primary_key=True, nullable=False), | |
54 | + Column('id_computador', Integer, | |
55 | + ForeignKey('computador.id_computador')), | |
56 | + Column('id_class', Integer), | |
57 | + Column('te_class_values', String, nullable=False), | |
58 | + extend_existing=True | |
59 | + ) | |
60 | + | |
61 | +mapper(ComputadorColeta, computador_coleta) | ... | ... |
1 | +++ a/wscserver/model/ComputadorColetaHistorico.py | |
... | ... | @@ -0,0 +1,72 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class ComputadorColetaHistorico(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'computador_coleta_historico' | |
14 | + | |
15 | + """ | |
16 | + __tablename__ = 'computador_coleta_historico' | |
17 | + id_computador_coleta_historico = Column(Integer, primary_key=True, | |
18 | + nullable=False) | |
19 | + id_computador_coleta = Column( | |
20 | + Integer, ForeignKey('computador_coleta.id_computador_coleta')) | |
21 | + id_computador = Column(Integer, ForeignKey('computador.id_computador')) | |
22 | + id_class_property = Column(Integer) | |
23 | + te_class_property_value = Column(String, nullable=False) | |
24 | + dt_hr_inclusao = Column(DateTime(timezone=False)) | |
25 | + | |
26 | + def __init__(self, id_computador_coleta_historico, id_computador_coleta, | |
27 | + id_computador, id_class_property, te_class_property_values, | |
28 | + dt_hr_inclusao): | |
29 | + """ | |
30 | + Metodo que chama as colunas | |
31 | + """ | |
32 | + self.id_computador_coleta_historico = id_computador_coleta_historico | |
33 | + self.id_computador_coleta = id_computador_coleta | |
34 | + self.id_computador = id_computador | |
35 | + self.id_class_property = id_class_property | |
36 | + self.te_class_property_value = te_class_property_value | |
37 | + self.dt_hr_inclusao = dt_hr_inclusao | |
38 | + | |
39 | + def __repr__(self): | |
40 | + """ | |
41 | + Metodo que passa a lista de parametros da classe | |
42 | + """ | |
43 | + return "<ComputadorColetaHistorico('%s, %s, %s, %s, %s, %s')>" %\ | |
44 | + (self.id_computador_coleta_historico, | |
45 | + self.id_computador_coleta, | |
46 | + self.id_computador, | |
47 | + self.id_class_property, | |
48 | + self.te_class_property_value, | |
49 | + self.dt_hr_inclusao | |
50 | + ) | |
51 | + | |
52 | + | |
53 | +class ComputadorColetaHistoricoContextFactory(SQLAlchemyORMContext): | |
54 | + entity = ComputadorColetaHistorico | |
55 | + | |
56 | + def session_factory(self): | |
57 | + return session | |
58 | + | |
59 | +computador_coleta_historico = Table( | |
60 | + 'computador_coleta_historico', Base.metadata, | |
61 | + Column('id_computador_coleta_historico', Integer, primary_key=True, | |
62 | + nullable=False), | |
63 | + Column('id_computador_coleta', Integer, ForeignKey( | |
64 | + 'computador_coleta.id_computador_coleta')), | |
65 | + Column('id_computador', Integer, ForeignKey('computador.id_computador')), | |
66 | + Column('id_class_property', Integer), | |
67 | + Column('te_class_property_value', String, nullable=False), | |
68 | + Column('dt_hr_inclusao', DateTime(timezone=False)), | |
69 | + extend_existing=True | |
70 | +) | |
71 | + | |
72 | +mapper(ComputadorColetaHistorico, computador_coleta_historico) | ... | ... |
1 | +++ a/wscserver/model/DescricaoColunaComputador.py | |
... | ... | @@ -0,0 +1,63 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class DescricaoColunaComputador(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'descricao_coluna_computador' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'descricao_coluna_computador' | |
18 | + te_source = Column(String(100), primary_key=True, nullable=False) | |
19 | + te_target = Column(String(100), primary_key=True, nullable=False) | |
20 | + te_description = Column(String(100), nullable=False) | |
21 | + cs_condicao_pesquisa = Column(String(1), nullable=False) | |
22 | + | |
23 | + def __init__(self, te_source, te_target, te_description, | |
24 | + cs_condicao_pesquisa): | |
25 | + """ | |
26 | + Metodo que chama as colunas | |
27 | + """ | |
28 | + self.te_source = te_source | |
29 | + self.te_target = te_target | |
30 | + self.te_description = te_description | |
31 | + self.cs_condicao_pesquisa = cs_condicao_pesquisa | |
32 | + | |
33 | + def __repr__(self): | |
34 | + """ | |
35 | + Metodo que passa a lista de parametros da classe | |
36 | + """ | |
37 | + return "<DescricaoColunaComputador('%s, %s, %s, %s')>" %\ | |
38 | + (self.te_source, | |
39 | + self.te_target, | |
40 | + self.te_description, | |
41 | + self.cs_condicao_pesquisa | |
42 | + ) | |
43 | + | |
44 | + | |
45 | +class DescricaoColunaComputadorContextFactory(SQLAlchemyORMContext): | |
46 | + entity = DescricaoColunaComputador | |
47 | + | |
48 | + def session_factory(self): | |
49 | + return session | |
50 | + | |
51 | +descricao_coluna_computador = Table( | |
52 | + 'descricao_coluna_computador', Base.metadata, | |
53 | + Column('te_source', String(100), | |
54 | + primary_key=True, nullable=False), | |
55 | + Column('te_target', String(100), | |
56 | + primary_key=True, nullable=False), | |
57 | + Column('te_description', String(100), | |
58 | + nullable=False), | |
59 | + Column('cs_condicao_pesquisa', String(1), | |
60 | + nullable=False), | |
61 | + extend_existing=True | |
62 | +) | |
63 | +mapper(DescricaoColunaComputador, descricao_coluna_computador) | ... | ... |
1 | +++ a/wscserver/model/Patrimonio.py | |
... | ... | @@ -0,0 +1,107 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class Patrimonio(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'patrimonio' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'patrimonio' | |
18 | + id_patrimonio = Column(Integer, primary_key=True, nullable=False) | |
19 | + id_usuario = Column(Integer) | |
20 | + id_unid_organizacional_nivel1a = Column(Integer) | |
21 | + id_computador = Column(Integer, ForeignKey('computador.id_computador')) | |
22 | + id_unid_organizacional_nivel2 = Column(Integer) | |
23 | + dt_hr_alteracao = Column(DateTime(timezone=False)) | |
24 | + te_localizacao_complementar = Column(String(100)) | |
25 | + te_info_patrimonio1 = Column(String(20)) | |
26 | + te_info_patrimonio2 = Column(String(20)) | |
27 | + te_info_patrimonio3 = Column(String(20)) | |
28 | + te_info_patrimonio4 = Column(String(20)) | |
29 | + te_info_patrimonio5 = Column(String(20)) | |
30 | + te_info_patrimonio6 = Column(String(20)) | |
31 | + id_unid_organizacional_nivel1 = Column(Integer, nullable=False) | |
32 | + | |
33 | + def __init__(self, id_patrimonio, id_usuario, | |
34 | + id_unid_organizacional_nivel1a, id_computador, | |
35 | + id_unid_organizacional_nivel2, dt_hr_alteracao, | |
36 | + te_localizacao_complementar, te_info_patrimonio1, | |
37 | + te_info_patrimonio2, te_info_patrimonio3, | |
38 | + te_info_patrimonio4, te_info_patrimonio5, | |
39 | + te_info_patrimonio6, id_unid_organizacional_nivel1): | |
40 | + """ | |
41 | + Metodo que chama as colunas | |
42 | + """ | |
43 | + self.id_patrimonio = id_patrimonio | |
44 | + self.id_usuario = id_usuario | |
45 | + self.id_unid_organizacional_nivel1a = id_unid_organizacional_nivel1a | |
46 | + self.id_computador = id_computador | |
47 | + self.id_unid_organizacional_nivel2 = id_unid_organizacional_nivel2 | |
48 | + self.dt_hr_alteracao = dt_hr_alteracao | |
49 | + self.te_localizacao_complementar = te_localizacao_complementar | |
50 | + self.te_info_patrimonio1 = te_info_patrimonio1 | |
51 | + self.te_info_patrimonio2 = te_info_patrimonio2 | |
52 | + self.te_info_patrimonio3 = te_info_patrimonio3 | |
53 | + self.te_info_patrimonio4 = te_info_patrimonio4 | |
54 | + self.te_info_patrimonio5 = te_info_patrimonio5 | |
55 | + self.te_info_patrimonio6 = te_info_patrimonio6 | |
56 | + self.id_unid_organizacional_nivel1 = id_unid_organizacional_nivel1 | |
57 | + | |
58 | + def __repr__(self): | |
59 | + """ | |
60 | + Metodo que passa a lista de parametros da classe | |
61 | + """ | |
62 | + return "<Patrimonio('%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,\ | |
63 | + %s, %s')>" % (self.id_patrimonio, | |
64 | + self.id_usuario, | |
65 | + self.id_unid_organizacional_nivel1a, | |
66 | + self.id_computador, | |
67 | + self.id_unid_organizacional_nivel2, | |
68 | + self.dt_hr_alteracao, | |
69 | + self.te_localizacao_complementar, | |
70 | + self.te_info_patrimonio1, | |
71 | + self.te_info_patrimonio2, | |
72 | + self.te_info_patrimonio3, | |
73 | + self.te_info_patrimonio4, | |
74 | + self.te_info_patrimonio5, | |
75 | + self.te_info_patrimonio6, | |
76 | + self.id_unid_organizacional_nivel1 | |
77 | + ) | |
78 | + | |
79 | + | |
80 | +class PatrimonioContextFactory(SQLAlchemyORMContext): | |
81 | + entity = Patrimonio | |
82 | + | |
83 | + def session_factory(self): | |
84 | + return session | |
85 | + | |
86 | +patrimonio = Table('patrimonio', Base.metadata, | |
87 | + Column('id_patrimonio', Integer, primary_key=True, | |
88 | + nullable=False), | |
89 | + Column('id_usuario', Integer), | |
90 | + Column('id_unid_organizacional_nivel1a', Integer), | |
91 | + Column('id_computador', Integer, | |
92 | + ForeignKey('computador.id_computador')), | |
93 | + Column('id_unid_organizacional_nivel2', Integer), | |
94 | + Column('dt_hr_alteracao', DateTime(timezone=False)), | |
95 | + Column('te_localizacao_complementar', String(100)), | |
96 | + Column('te_info_patrimonio1', String(20)), | |
97 | + Column('te_info_patrimonio2', String(20)), | |
98 | + Column('te_info_patrimonio3', String(20)), | |
99 | + Column('te_info_patrimonio4', String(20)), | |
100 | + Column('te_info_patrimonio5', String(20)), | |
101 | + Column('te_info_patrimonio6', String(20)), | |
102 | + Column('id_unid_organizacional_nivel1', | |
103 | + Integer, nullable=False), | |
104 | + extend_existing=True | |
105 | + ) | |
106 | + | |
107 | +mapper(Patrimonio, patrimonio) | ... | ... |
1 | +++ a/wscserver/model/Rede.py | |
... | ... | @@ -0,0 +1,159 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | +from sqlalchemy.orm import relationship, backref | |
9 | +from sqlalchemy.ext.declarative import declarative_base | |
10 | + | |
11 | + | |
12 | +class Rede(): | |
13 | + | |
14 | + """ | |
15 | + Classe que define a tabela 'rede' | |
16 | + | |
17 | + """ | |
18 | + | |
19 | + __tablename__ = 'rede' | |
20 | + id_rede = Column(Integer, primary_key=True, nullable=False) | |
21 | + id_local = Column(Integer) | |
22 | + id_servidor_autenticacao = Column(Integer) | |
23 | + te_ip_rede = Column(String(15), nullable=False) | |
24 | + nm_rede = Column(String(100)) | |
25 | + te_observacao = Column(String(100)) | |
26 | + nm_pessoa_contato1 = Column(String(50)) | |
27 | + nm_pessoa_contato2 = Column(String(50)) | |
28 | + nu_telefone1 = Column(String(11)) | |
29 | + te_email_contato2 = Column(String(50)) | |
30 | + nu_telefone2 = Column(String(11)) | |
31 | + te_email_contato1 = Column(String(50)) | |
32 | + te_serv_cacic = Column(String(60), nullable=False) | |
33 | + te_serv_updates = Column(String(60), nullable=False) | |
34 | + te_path_serv_updates = Column(String(255)) | |
35 | + nm_usuario_login_serv_updates = Column(String(20)) | |
36 | + te_senha_login_serv_updates = Column(String(20)) | |
37 | + nu_porta_serv_updates = Column(String(4)) | |
38 | + te_mascara_rede = Column(String(15)) | |
39 | + dt_verifica_updates = Column(DateTime) | |
40 | + nm_usuario_login_serv_updates_gerente = Column(String(20)) | |
41 | + te_senha_login_serv_updates_gerente = Column(String(20)) | |
42 | + nu_limite_ftp = Column(Integer, nullable=False) | |
43 | + cs_permitir_desativar_srcacic = Column(String(1), nullable=False) | |
44 | + te_debugging = Column(String) | |
45 | + dt_debug = Column(String(8)) | |
46 | + | |
47 | + def __init__(self, id_rede, id_local, id_servidor_autenticacao, | |
48 | + te_ip_rede, nm_rede, te_observacao, nm_pessoa_contato1, | |
49 | + nm_pessoa_contato2, nu_telefone1, te_email_contato2, | |
50 | + nu_telefone2, te_email_contato1, te_serv_cacic, | |
51 | + te_serv_updates, te_path_serv_updates, | |
52 | + nm_usuario_login_serv_updates, te_senha_login_serv_updates, | |
53 | + nu_porta_serv_updates, te_mascara_rede, dt_verifica_updates, | |
54 | + nm_usuario_login_serv_updates_gerente, | |
55 | + te_senha_login_serv_updates_gerente, | |
56 | + nu_limite_ftp, cs_permitir_desativar_srcacic, te_debugging, | |
57 | + dt_debug): | |
58 | + """ | |
59 | + Metodo que chama as colunas | |
60 | + """ | |
61 | + self.id_rede = id_rede | |
62 | + self.id_local = id_local | |
63 | + self.id_servidor_autenticacao = id_servidor_autenticacao | |
64 | + self.te_ip_rede = te_ip_rede | |
65 | + self.nm_rede = nm_rede | |
66 | + self.te_observacao = te_observacao | |
67 | + self.nm_pessoa_contato1 = nm_pessoa_contato1 | |
68 | + self.nm_pessoa_contato2 = nm_pessoa_contato2 | |
69 | + self.nu_telefone1 = nu_telefone1 | |
70 | + self.te_email_contato2 = te_email_contato2 | |
71 | + self.nu_telefone2 = nu_telefone2 | |
72 | + self.te_email_contato1 = te_email_contato1 | |
73 | + self.te_serv_cacic = te_serv_cacic | |
74 | + self.te_serv_updates = te_serv_updates | |
75 | + self.te_path_serv_updates = te_path_serv_updates | |
76 | + self.nm_usuario_login_serv_updates = nm_usuario_login_serv_updates | |
77 | + self.te_senha_login_serv_updates = te_senha_login_serv_updates | |
78 | + self.nu_porta_serv_updates = nu_porta_serv_updates | |
79 | + self.te_mascara_rede = te_mascara_rede | |
80 | + self.dt_verifica_updates = dt_verifica_updates | |
81 | + self.nm_usuario_login_serv_updates_gerente = nm_usuario_login_serv_updates_gerente | |
82 | + self.te_senha_login_serv_updates_gerente = te_senha_login_serv_updates_gerente | |
83 | + self.nu_limite_ftp = nu_limite_ftp | |
84 | + self.cs_permitir_desativar_srcacic = cs_permitir_desativar_srcacic | |
85 | + self.te_debugging = te_debugging | |
86 | + self.dt_debug = dt_debug | |
87 | + | |
88 | + def __repr__(self): | |
89 | + """ | |
90 | + Metodo que passa a lista de parametros da classe | |
91 | + """ | |
92 | + return "<Rede('%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s,\ | |
93 | + %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)>" %\ | |
94 | + (self.id_rede, | |
95 | + self.id_local, | |
96 | + self.id_servidor_autenticacao, | |
97 | + self.te_ip_rede, | |
98 | + self.nm_rede, | |
99 | + self.te_observacao, | |
100 | + self.nm_pessoa_contato1, | |
101 | + self.nm_pessoa_contato2, | |
102 | + self.nu_telefone1, | |
103 | + self.te_email_contato2, | |
104 | + self.nu_telefone2, | |
105 | + self.te_email_contato1, | |
106 | + self.te_serv_cacic, | |
107 | + self.te_serv_updates, | |
108 | + self.te_path_serv_updates, | |
109 | + self.nm_usuario_login_serv_updates, | |
110 | + self.te_senha_login_serv_updates, | |
111 | + self.nu_porta_serv_updates, | |
112 | + self.te_mascara_rede, | |
113 | + self.dt_verifica_updates, | |
114 | + self.nm_usuario_login_serv_updates_gerente, | |
115 | + self.te_senha_login_serv_updates_gerente, | |
116 | + self.nu_limite_ftp, | |
117 | + self.cs_permitir_desativar_srcacic, | |
118 | + self.te_debugging, | |
119 | + self.dt_debug | |
120 | + ) | |
121 | + | |
122 | + | |
123 | +class RedeContextFactory(SQLAlchemyORMContext): | |
124 | + entity = Rede | |
125 | + | |
126 | + def session_factory(self): | |
127 | + return session | |
128 | + | |
129 | +rede = Table('rede', Base.metadata, | |
130 | + Column('id_rede', Integer, primary_key=True, nullable=False), | |
131 | + Column('id_local', Integer), | |
132 | + Column('id_servidor_autenticacao', Integer), | |
133 | + Column('te_ip_rede', String(15), nullable=False), | |
134 | + Column('nm_rede', String(100)), | |
135 | + Column('te_observacao', String(100)), | |
136 | + Column('nm_pessoa_contato1', String(50)), | |
137 | + Column('nm_pessoa_contato2', String(50)), | |
138 | + Column('te_email_contato2', String(50)), | |
139 | + Column('nu_telefone2', String(11)), | |
140 | + Column('te_email_contato1', String(50)), | |
141 | + Column('te_serv_cacic', String(60), nullable=False), | |
142 | + Column('te_serv_updates', String(60), nullable=False), | |
143 | + Column('te_path_serv_updates', String(255)), | |
144 | + Column('nm_usuario_login_serv_updates', String(20)), | |
145 | + Column('te_senha_login_serv_updates', String(20)), | |
146 | + Column('nu_porta_serv_updates', String(4)), | |
147 | + Column('te_mascara_rede', String(15)), | |
148 | + Column('dt_verifica_updates', DateTime), | |
149 | + Column('nm_usuario_login_serv_updates_gerente', String(20)), | |
150 | + Column('te_senha_login_serv_updates_gerente', String(20)), | |
151 | + Column('nu_limite_ftp', Integer, nullable=False), | |
152 | + Column('cs_permitir_desativar_srcacic', String(1), | |
153 | + nullable=False), | |
154 | + Column('te_debugging', String), | |
155 | + Column('dt_debug', String(8)), | |
156 | + extend_existing=True | |
157 | + ) | |
158 | + | |
159 | +mapper(Rede, rede) | ... | ... |
1 | +++ a/wscserver/model/So.py | |
... | ... | @@ -0,0 +1,58 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class So(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'so' | |
14 | + | |
15 | + """ | |
16 | + __tablename__ = 'so' | |
17 | + id_so = Column(Integer, primary_key=True, nullable=False) | |
18 | + te_desc_so = Column(String(255)) | |
19 | + sg_so = Column(String(20)) | |
20 | + te_so = Column(String(50), nullable=False) | |
21 | + in_mswindows = Column(String(1), nullable=False) | |
22 | + | |
23 | + def __init__(self, id_so, te_desc_so, sg_so, te_so, in_mswindows): | |
24 | + """ | |
25 | + Metodo que chama as colunas | |
26 | + """ | |
27 | + self.id_so = id_so | |
28 | + self.te_desc_so = te_desc_so | |
29 | + self.sg_so = sg_so | |
30 | + self.te_so = te_so | |
31 | + self.in_mswindows = in_mswindows | |
32 | + | |
33 | + def __repr__(self): | |
34 | + """ | |
35 | + Metodo que passa a lista de parametros da classe | |
36 | + """ | |
37 | + return "<So('%s, %s, %s, %s, %s')>" % (self.id_so, self.te_desc_so, | |
38 | + self.sg_so, self.te_so, | |
39 | + self.in_mswindows | |
40 | + ) | |
41 | + | |
42 | + | |
43 | +class SoContextFactory(SQLAlchemyORMContext): | |
44 | + entity = So | |
45 | + | |
46 | + def session_factory(self): | |
47 | + return session | |
48 | + | |
49 | +so = Table('so', Base.metadata, | |
50 | + Column('id_so', Integer, primary_key=True, nullable=False), | |
51 | + Column('te_desc_so', String(255)), | |
52 | + Column('sg_so', String(20)), | |
53 | + Column('te_so', String(50), nullable=False), | |
54 | + Column('in_mswindows', String(1), nullable=False), | |
55 | + extend_existing=True | |
56 | + ) | |
57 | + | |
58 | +mapper(So, so) | ... | ... |
1 | +++ a/wscserver/model/Software.py | |
... | ... | @@ -0,0 +1,77 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class Software(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'software' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'software' | |
18 | + id_software = Column(Integer, primary_key=True, nullable=False) | |
19 | + id_tipo_software = Column(Integer) | |
20 | + nm_software = Column(String(150), nullable=False) | |
21 | + te_descricao_software = Column(String(255)) | |
22 | + qt_licenca = Column(Integer) | |
23 | + nr_midia = Column(String(10)) | |
24 | + te_local_midia = Column(String(30)) | |
25 | + te_obs = Column(String(200)) | |
26 | + | |
27 | + def __init__(self, id_software, id_tipo_software, nm_software, | |
28 | + te_descricao_software, qt_licenca, nr_midia, te_local_midia, | |
29 | + te_obs): | |
30 | + """ | |
31 | + Metodo que chama as colunas | |
32 | + """ | |
33 | + self.id_software = id_software | |
34 | + self.id_tipo_software = id_tipo_software | |
35 | + self.nm_software = nm_software | |
36 | + self.te_descricao_software = te_descricao_software | |
37 | + self.qt_licenca = qt_licenca | |
38 | + self.nr_midia = nr_midia | |
39 | + self.te_local_midia = te_local_midia | |
40 | + self.te_obs = te_obs | |
41 | + | |
42 | + def __repr__(self): | |
43 | + """ | |
44 | + Metodo que passa a lista de parametros da classe | |
45 | + """ | |
46 | + return "<Software('%s, %s, %s, %s,\ | |
47 | + %s, %s %s, %s,')>" % (self.id_software, | |
48 | + self.id_tipo_software, | |
49 | + self.nm_software, | |
50 | + self.te_descricao_software, | |
51 | + self.qt_licenca, | |
52 | + self.nr_midia, | |
53 | + self.te_local_midia, | |
54 | + self.te_obs | |
55 | + ) | |
56 | + | |
57 | + | |
58 | +class SoftwareContextFactory(SQLAlchemyORMContext): | |
59 | + entity = Software | |
60 | + | |
61 | + def session_factory(self): | |
62 | + return session | |
63 | + | |
64 | +software = Table('software', Base.metadata, | |
65 | + Column('id_software', Integer, primary_key=True, | |
66 | + nullable=False), | |
67 | + Column('id_tipo_software', Integer), | |
68 | + Column('nm_software', String(150), nullable=False), | |
69 | + Column('te_descricao_software', String(255)), | |
70 | + Column('qt_licenca', Integer), | |
71 | + Column('nr_midia', String(10)), | |
72 | + Column('te_local_midia', String(30)), | |
73 | + Column('te_obs', String(200)), | |
74 | + extend_existing=True | |
75 | + ) | |
76 | + | |
77 | +mapper(Software, software) | ... | ... |
1 | +++ a/wscserver/model/SoftwareEstacao.py | |
... | ... | @@ -0,0 +1,88 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table, ForeignKey | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class SoftwareEstacao(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'software_estacao' | |
14 | + | |
15 | + """ | |
16 | + | |
17 | + __tablename__ = 'software_estacao' | |
18 | + id_computador = Column(Integer, ForeignKey('computador.id_computador')) | |
19 | + id_software = Column(Integer, ForeignKey('software.id_software')) | |
20 | + id_aquisicao = Column(Integer) | |
21 | + nr_patrimonio = Column(String(20), primary_key=True, nullable=False) | |
22 | + dt_autorizacao = Column(DateTime) | |
23 | + dt_expiracao_instalacao = Column(DateTime) | |
24 | + id_aquisicao_particular = Column(Integer) | |
25 | + dt_desinstalacao = Column(DateTime) | |
26 | + te_observacao = Column(String(90)) | |
27 | + nr_patr_destino = Column(String(20)) | |
28 | + | |
29 | + def __init__(self, id_computador, id_software, id_aquisicao, | |
30 | + nr_patrimonio, dt_autorizacao, dt_expiracao_instalacao, | |
31 | + id_aquisicao_particular, dt_desinstalacao, te_observacao, | |
32 | + nr_patr_destino): | |
33 | + """ | |
34 | + Metodo que chama as colunas | |
35 | + """ | |
36 | + self.id_computador = id_computador | |
37 | + self.id_software = id_software | |
38 | + self.id_aquisicao = id_aquisicao | |
39 | + self.nr_patrimonio = nr_patrimonio | |
40 | + self.dt_autorizacao = dt_autorizacao | |
41 | + self.dt_expiracao_instalacao = dt_expiracao_instalacao | |
42 | + self.id_aquisicao_particular = id_aquisicao_particular | |
43 | + self.dt_desinstalacao = dt_desinstalacao | |
44 | + self.te_observacao = te_observacao | |
45 | + self.nr_patr_destino = nr_patr_destino | |
46 | + | |
47 | + def __repr__(self): | |
48 | + """ | |
49 | + Metodo que passa a lista de parametros da classe | |
50 | + """ | |
51 | + return "<SoftwareEstacao('%s, %s, %s, %s, %s, %s, %s, %s, %s,\ | |
52 | + %s')>" % (self.id_computador, | |
53 | + self.id_software, | |
54 | + self.id_aquisicao, | |
55 | + self.nr_patrimonio, | |
56 | + self.dt_autorizacao, | |
57 | + self.dt_expiracao_instalacao, | |
58 | + self.id_aquisicao_particular, | |
59 | + self.dt_desinstalacao, | |
60 | + self.te_observacao, | |
61 | + self.nr_patr_destino | |
62 | + ) | |
63 | + | |
64 | + | |
65 | +class SoftwareEstacaoContextFactory(SQLAlchemyORMContext): | |
66 | + entity = SoftwareEstacao | |
67 | + | |
68 | + def session_factory(self): | |
69 | + return session | |
70 | + | |
71 | +software_estacao = Table('software_estacao', Base.metadata, | |
72 | + Column('id_computador', Integer, | |
73 | + ForeignKey('computador.id_computador')), | |
74 | + Column('id_software', Integer, | |
75 | + ForeignKey('software.id_software')), | |
76 | + Column('id_aquisicao', Integer), | |
77 | + Column('nr_patrimonio', String(20), | |
78 | + primary_key=True, nullable=False), | |
79 | + Column('dt_autorizacao', Date), | |
80 | + Column('dt_expiracao_instalacao', Date), | |
81 | + Column('id_aquisicao_particular', Integer), | |
82 | + Column('dt_desinstalacao', Date), | |
83 | + Column('te_observacao', String(90)), | |
84 | + Column('nr_patr_destino', String(20)), | |
85 | + extend_existing=True | |
86 | + ) | |
87 | + | |
88 | +mapper(SoftwareEstacao, software_estacao) | ... | ... |
1 | +++ a/wscserver/model/TipoSoftware.py | |
... | ... | @@ -0,0 +1,50 @@ |
1 | +from pyramid_restler.model import SQLAlchemyORMContext | |
2 | + | |
3 | +from sqlalchemy import Table | |
4 | +from sqlalchemy.orm import mapper | |
5 | +from sqlalchemy.schema import Column | |
6 | +from sqlalchemy.types import * | |
7 | +from wscserver.model import Base, session | |
8 | + | |
9 | + | |
10 | +class TipoSoftware(): | |
11 | + | |
12 | + """ | |
13 | + Classe que define a tabela 'tipo_software' | |
14 | + | |
15 | + """ | |
16 | + __tablename__ = 'tipo_software' | |
17 | + id_tipo_software = Column(Integer, primary_key=True, nullable=False) | |
18 | + te_descricao_tipo_software = Column(String(30), nullable=False) | |
19 | + | |
20 | + def __init__(self, id_tipo_software, te_descricao_tipo_software): | |
21 | + """ | |
22 | + Metodo que chama as colunas | |
23 | + """ | |
24 | + self.id_tipo_software = id_tipo_software | |
25 | + self.te_descricao_tipo_software = te_descricao_tipo_software | |
26 | + | |
27 | + def __repr__(self): | |
28 | + """ | |
29 | + Metodo que passa a lista de parametros da classe | |
30 | + """ | |
31 | + return "<TipoSoftware('%s, %s')>" % (self.id_tipo_software, | |
32 | + self.te_descricao_tipo_software | |
33 | + ) | |
34 | + | |
35 | + | |
36 | +class TipoSoftwareContextFactory(SQLAlchemyORMContext): | |
37 | + entity = TipoSoftware | |
38 | + | |
39 | + def session_factory(self): | |
40 | + return session | |
41 | + | |
42 | +tipo_software = Table('tipo_software', Base.metadata, | |
43 | + Column('id_tipo_software', Integer, primary_key=True, | |
44 | + nullable=False), | |
45 | + Column('te_descricao_tipo_software', String(30), | |
46 | + nullable=False), | |
47 | + extend_existing=True | |
48 | + ) | |
49 | + | |
50 | +mapper(TipoSoftware, tipo_software) | ... | ... |
1 | +++ a/wscserver/model/__init__.py | |
... | ... | @@ -0,0 +1,19 @@ |
1 | +# from sqlalchemy import engine_from_config | |
2 | +from sqlalchemy.ext.declarative import declarative_base | |
3 | +from sqlalchemy.orm import scoped_session, sessionmaker | |
4 | +from sqlalchemy.engine import create_engine | |
5 | +from pyramid import config | |
6 | +from paste.deploy.loadwsgi import appconfig | |
7 | + | |
8 | +sqlalchemy_url = 'postgresql://rest:rest@localhost/cacic' | |
9 | +DBSession = scoped_session(sessionmaker()) | |
10 | +Base = declarative_base() | |
11 | +engine = create_engine(sqlalchemy_url) | |
12 | +Session = sessionmaker(bind=engine) | |
13 | +session = Session() | |
14 | + | |
15 | + | |
16 | +def initialize_sql(engine): | |
17 | + DBSession.configure(bind=engine) | |
18 | + Base.metadata.bind = engine | |
19 | + # Base.metadata.create_all(engine) | ... | ... |
1 | +++ a/wscserver/scripts/__init__.py | ... | ... |
1 | +++ a/wscserver/scripts/createzip.py | |
... | ... | @@ -0,0 +1,20 @@ |
1 | +import zipfile | |
2 | +import tempfile | |
3 | +import requests | |
4 | +import os | |
5 | + | |
6 | +def zipcoleta(): | |
7 | + """Recebe o json da coleta em um arquivo e zipa""" | |
8 | + coleta = requests.get('http://localhost/wscserver/rest/coleta') | |
9 | + | |
10 | + path = tempfile.gettempdir() | |
11 | + os.chdir(path) | |
12 | + f = open('coleta.json','w') | |
13 | + f.write(coleta.text) | |
14 | + arquivozip = 'coleta.zip' | |
15 | + with zipfile.ZipFile(arquivozip, 'w') as myzip: | |
16 | + myzip.write(f.name) | |
17 | + f.close() | |
18 | + os.remove('coleta.json') | |
19 | + filepath = os.path.abspath(arquivozip) | |
20 | + return filepath | ... | ... |
No preview for this file type
333 Bytes
203 Bytes
1 | +++ a/wscserver/static/ie6.css | |
... | ... | @@ -0,0 +1,8 @@ |
1 | +* html img, | |
2 | +* html .png{position:relative;behavior:expression((this.runtimeStyle.behavior="none")&&(this.pngSet?this.pngSet=true:(this.nodeName == "IMG" && this.src.toLowerCase().indexOf('.png')>-1?(this.runtimeStyle.backgroundImage = "none", | |
3 | +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.src + "',sizingMethod='image')", | |
4 | +this.src = "static/transparent.gif"):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace('url("','').replace('")',''), | |
5 | +this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this.origBg + "',sizingMethod='crop')", | |
6 | +this.runtimeStyle.backgroundImage = "none")),this.pngSet=true) | |
7 | +);} | |
8 | +#wrap{display:table;height:100%} | ... | ... |
1 | +++ a/wscserver/static/json_base.json | |
... | ... | @@ -0,0 +1,2047 @@ |
1 | +{ | |
2 | + "metadata":{ | |
3 | + "doc_extract":false, | |
4 | + "index_export":false, | |
5 | + "index_url":"", | |
6 | + "index_time":"0", | |
7 | + "extract_time":"0", | |
8 | + "name":"wmi", | |
9 | + "description":"Classes de coleta WMI do cacic", | |
10 | + "password":"w1f1t1d1", | |
11 | + "color":"#2d2d2d" | |
12 | + }, | |
13 | + "content":[ | |
14 | + { | |
15 | + "group":{ | |
16 | + "metadata":{ | |
17 | + "name":"Win32_BaseBoard", | |
18 | + "alias":"Win32_BaseBoard", | |
19 | + "description":"Win32_BaseBoard", | |
20 | + "multivalued":false | |
21 | + }, | |
22 | + "content":[ | |
23 | + { | |
24 | + "field":{ | |
25 | + "name":"ConfigOptions", | |
26 | + "alias":"ConfigOptions", | |
27 | + "description":"ConfigOptions", | |
28 | + "datatype":"Text", | |
29 | + "required":false, | |
30 | + "multivalued":false, | |
31 | + "indices":[ | |
32 | + "Textual" | |
33 | + ] | |
34 | + } | |
35 | + }, | |
36 | + { | |
37 | + "field":{ | |
38 | + "name":"Description", | |
39 | + "alias":"Description", | |
40 | + "description":"Description", | |
41 | + "datatype":"Text", | |
42 | + "required":false, | |
43 | + "multivalued":false, | |
44 | + "indices":[ | |
45 | + "Textual" | |
46 | + ] | |
47 | + } | |
48 | + }, | |
49 | + { | |
50 | + "field":{ | |
51 | + "name":"HostingBoard", | |
52 | + "alias":"HostingBoard", | |
53 | + "description":"HostingBoard", | |
54 | + "datatype":"Text", | |
55 | + "required":false, | |
56 | + "multivalued":false, | |
57 | + "indices":[ | |
58 | + "Textual" | |
59 | + ] | |
60 | + } | |
61 | + }, | |
62 | + { | |
63 | + "field":{ | |
64 | + "name":"Manufacturer", | |
65 | + "alias":"Manufacturer", | |
66 | + "description":"Manufacturer", | |
67 | + "datatype":"Text", | |
68 | + "required":false, | |
69 | + "multivalued":false, | |
70 | + "indices":[ | |
71 | + "Textual" | |
72 | + ] | |
73 | + } | |
74 | + }, | |
75 | + { | |
76 | + "field":{ | |
77 | + "name":"Name", | |
78 | + "alias":"Name", | |
79 | + "description":"Name", | |
80 | + "datatype":"Text", | |
81 | + "required":false, | |
82 | + "multivalued":false, | |
83 | + "indices":[ | |
84 | + "Textual" | |
85 | + ] | |
86 | + } | |
87 | + }, | |
88 | + { | |
89 | + "field":{ | |
90 | + "name":"Product", | |
91 | + "alias":"Product", | |
92 | + "description":"Product", | |
93 | + "datatype":"Text", | |
94 | + "required":false, | |
95 | + "multivalued":false, | |
96 | + "indices":[ | |
97 | + "Textual" | |
98 | + ] | |
99 | + } | |
100 | + }, | |
101 | + { | |
102 | + "field":{ | |
103 | + "name":"SerialNumber", | |
104 | + "alias":"SerialNumber", | |
105 | + "description":"SerialNumber", | |
106 | + "datatype":"Text", | |
107 | + "required":false, | |
108 | + "multivalued":false, | |
109 | + "indices":[ | |
110 | + "Textual" | |
111 | + ] | |
112 | + } | |
113 | + }, | |
114 | + { | |
115 | + "field":{ | |
116 | + "name":"Tag", | |
117 | + "alias":"Tag", | |
118 | + "description":"Tag", | |
119 | + "datatype":"Text", | |
120 | + "required":false, | |
121 | + "multivalued":false, | |
122 | + "indices":[ | |
123 | + "Textual" | |
124 | + ] | |
125 | + } | |
126 | + }, | |
127 | + { | |
128 | + "field":{ | |
129 | + "name":"Version", | |
130 | + "alias":"Version", | |
131 | + "description":"Version", | |
132 | + "datatype":"Text", | |
133 | + "required":false, | |
134 | + "multivalued":false, | |
135 | + "indices":[ | |
136 | + "Textual" | |
137 | + ] | |
138 | + } | |
139 | + } | |
140 | + ] | |
141 | + } | |
142 | + }, | |
143 | + { | |
144 | + "group":{ | |
145 | + "metadata":{ | |
146 | + "name":"Win32_BIOS", | |
147 | + "alias":"Win32_BIOS", | |
148 | + "description":"Win32_BIOS", | |
149 | + "multivalued":false | |
150 | + }, | |
151 | + "content":[ | |
152 | + { | |
153 | + "field":{ | |
154 | + "name":"BiosCharacteristics", | |
155 | + "alias":"BiosCharacteristics", | |
156 | + "description":"BiosCharacteristics", | |
157 | + "datatype":"Text", | |
158 | + "required":false, | |
159 | + "multivalued":false, | |
160 | + "indices":[ | |
161 | + "Textual" | |
162 | + ] | |
163 | + } | |
164 | + }, | |
165 | + { | |
166 | + "field":{ | |
167 | + "name":"BIOSVersion", | |
168 | + "alias":"BIOSVersion", | |
169 | + "description":"BIOSVersion", | |
170 | + "datatype":"Text", | |
171 | + "required":false, | |
172 | + "multivalued":false, | |
173 | + "indices":[ | |
174 | + "Textual" | |
175 | + ] | |
176 | + } | |
177 | + }, | |
178 | + { | |
179 | + "field":{ | |
180 | + "name":"Caption", | |
181 | + "alias":"Caption", | |
182 | + "description":"Caption", | |
183 | + "datatype":"Text", | |
184 | + "required":false, | |
185 | + "multivalued":false, | |
186 | + "indices":[ | |
187 | + "Textual" | |
188 | + ] | |
189 | + } | |
190 | + }, | |
191 | + { | |
192 | + "field":{ | |
193 | + "name":"Description", | |
194 | + "alias":"Description", | |
195 | + "description":"Description", | |
196 | + "datatype":"Text", | |
197 | + "required":false, | |
198 | + "multivalued":false, | |
199 | + "indices":[ | |
200 | + "Textual" | |
201 | + ] | |
202 | + } | |
203 | + }, | |
204 | + { | |
205 | + "field":{ | |
206 | + "name":"Manufacturer", | |
207 | + "alias":"Manufacturer", | |
208 | + "description":"Manufacturer", | |
209 | + "datatype":"Text", | |
210 | + "required":false, | |
211 | + "multivalued":false, | |
212 | + "indices":[ | |
213 | + "Textual" | |
214 | + ] | |
215 | + } | |
216 | + }, | |
217 | + { | |
218 | + "field":{ | |
219 | + "name":"Name", | |
220 | + "alias":"Name", | |
221 | + "description":"Name", | |
222 | + "datatype":"Text", | |
223 | + "required":false, | |
224 | + "multivalued":false, | |
225 | + "indices":[ | |
226 | + "Textual" | |
227 | + ] | |
228 | + } | |
229 | + }, | |
230 | + { | |
231 | + "field":{ | |
232 | + "name":"PrimaryBIOS", | |
233 | + "alias":"PrimaryBIOS", | |
234 | + "description":"PrimaryBIOS", | |
235 | + "datatype":"Text", | |
236 | + "required":false, | |
237 | + "multivalued":false, | |
238 | + "indices":[ | |
239 | + "Textual" | |
240 | + ] | |
241 | + } | |
242 | + }, | |
243 | + { | |
244 | + "field":{ | |
245 | + "name":"ReleaseDate", | |
246 | + "alias":"ReleaseDate", | |
247 | + "description":"ReleaseDate", | |
248 | + "datatype":"Text", | |
249 | + "required":false, | |
250 | + "multivalued":false, | |
251 | + "indices":[ | |
252 | + "Textual" | |
253 | + ] | |
254 | + } | |
255 | + }, | |
256 | + { | |
257 | + "field":{ | |
258 | + "name":"SerialNumber", | |
259 | + "alias":"SerialNumber", | |
260 | + "description":"SerialNumber", | |
261 | + "datatype":"Text", | |
262 | + "required":false, | |
263 | + "multivalued":false, | |
264 | + "indices":[ | |
265 | + "Textual" | |
266 | + ] | |
267 | + } | |
268 | + }, | |
269 | + { | |
270 | + "field":{ | |
271 | + "name":"SMBIOSBIOSVersion", | |
272 | + "alias":"SMBIOSBIOSVersion", | |
273 | + "description":"SMBIOSBIOSVersion", | |
274 | + "datatype":"Text", | |
275 | + "required":false, | |
276 | + "multivalued":false, | |
277 | + "indices":[ | |
278 | + "Textual" | |
279 | + ] | |
280 | + } | |
281 | + }, | |
282 | + { | |
283 | + "field":{ | |
284 | + "name":"SMBIOSMajorVersion", | |
285 | + "alias":"SMBIOSMajorVersion", | |
286 | + "description":"SMBIOSMajorVersion", | |
287 | + "datatype":"Text", | |
288 | + "required":false, | |
289 | + "multivalued":false, | |
290 | + "indices":[ | |
291 | + "Textual" | |
292 | + ] | |
293 | + } | |
294 | + }, | |
295 | + { | |
296 | + "field":{ | |
297 | + "name":"SMBIOSMinorVersion", | |
298 | + "alias":"SMBIOSMinorVersion", | |
299 | + "description":"SMBIOSMinorVersion", | |
300 | + "datatype":"Text", | |
301 | + "required":false, | |
302 | + "multivalued":false, | |
303 | + "indices":[ | |
304 | + "Textual" | |
305 | + ] | |
306 | + } | |
307 | + }, | |
308 | + { | |
309 | + "field":{ | |
310 | + "name":"SoftwareElementID", | |
311 | + "alias":"SoftwareElementID", | |
312 | + "description":"SoftwareElementID", | |
313 | + "datatype":"Text", | |
314 | + "required":false, | |
315 | + "multivalued":false, | |
316 | + "indices":[ | |
317 | + "Textual" | |
318 | + ] | |
319 | + } | |
320 | + }, | |
321 | + { | |
322 | + "field":{ | |
323 | + "name":"Version", | |
324 | + "alias":"Version", | |
325 | + "description":"Version", | |
326 | + "datatype":"Text", | |
327 | + "required":false, | |
328 | + "multivalued":false, | |
329 | + "indices":[ | |
330 | + "Textual" | |
331 | + ] | |
332 | + } | |
333 | + } | |
334 | + ] | |
335 | + } | |
336 | + }, | |
337 | + { | |
338 | + "group":{ | |
339 | + "metadata":{ | |
340 | + "name":"Win32_KeyBoard", | |
341 | + "alias":"Win32_KeyBoard", | |
342 | + "description":"Win32_KeyBoard", | |
343 | + "multivalued":false | |
344 | + }, | |
345 | + "content":[ | |
346 | + { | |
347 | + "field":{ | |
348 | + "name":"Caption", | |
349 | + "alias":"Caption", | |
350 | + "description":"Caption", | |
351 | + "datatype":"Text", | |
352 | + "required":false, | |
353 | + "multivalued":false, | |
354 | + "indices":[ | |
355 | + "Textual" | |
356 | + ] | |
357 | + } | |
358 | + }, | |
359 | + { | |
360 | + "field":{ | |
361 | + "name":"Description", | |
362 | + "alias":"Description", | |
363 | + "description":"Description", | |
364 | + "datatype":"Text", | |
365 | + "required":false, | |
366 | + "multivalued":false, | |
367 | + "indices":[ | |
368 | + "Textual" | |
369 | + ] | |
370 | + } | |
371 | + }, | |
372 | + { | |
373 | + "field":{ | |
374 | + "name":"Name", | |
375 | + "alias":"Name", | |
376 | + "description":"Name", | |
377 | + "datatype":"Text", | |
378 | + "required":false, | |
379 | + "multivalued":false, | |
380 | + "indices":[ | |
381 | + "Textual" | |
382 | + ] | |
383 | + } | |
384 | + } | |
385 | + ] | |
386 | + } | |
387 | + }, | |
388 | + { | |
389 | + "group":{ | |
390 | + "metadata":{ | |
391 | + "name":"Win32_MemoryDevice", | |
392 | + "alias":"Win32_MemoryDevice", | |
393 | + "description":"Win32_MemoryDevice", | |
394 | + "multivalued":false | |
395 | + }, | |
396 | + "content":[ | |
397 | + { | |
398 | + "field":{ | |
399 | + "name":"Access", | |
400 | + "alias":"Access", | |
401 | + "description":"Access", | |
402 | + "datatype":"Text", | |
403 | + "required":false, | |
404 | + "multivalued":false, | |
405 | + "indices":[ | |
406 | + "Textual" | |
407 | + ] | |
408 | + } | |
409 | + }, | |
410 | + { | |
411 | + "field":{ | |
412 | + "name":"Availability", | |
413 | + "alias":"Availability", | |
414 | + "description":"Availability", | |
415 | + "datatype":"Text", | |
416 | + "required":false, | |
417 | + "multivalued":false, | |
418 | + "indices":[ | |
419 | + "Textual" | |
420 | + ] | |
421 | + } | |
422 | + }, | |
423 | + { | |
424 | + "field":{ | |
425 | + "name":"BlockSize", | |
426 | + "alias":"BlockSize", | |
427 | + "description":"BlockSize", | |
428 | + "datatype":"Text", | |
429 | + "required":false, | |
430 | + "multivalued":false, | |
431 | + "indices":[ | |
432 | + "Textual" | |
433 | + ] | |
434 | + } | |
435 | + }, | |
436 | + { | |
437 | + "field":{ | |
438 | + "name":"Caption", | |
439 | + "alias":"Caption", | |
440 | + "description":"Caption", | |
441 | + "datatype":"Text", | |
442 | + "required":false, | |
443 | + "multivalued":false, | |
444 | + "indices":[ | |
445 | + "Textual" | |
446 | + ] | |
447 | + } | |
448 | + }, | |
449 | + { | |
450 | + "field":{ | |
451 | + "name":"Description", | |
452 | + "alias":"Description", | |
453 | + "description":"Description", | |
454 | + "datatype":"Text", | |
455 | + "required":false, | |
456 | + "multivalued":false, | |
457 | + "indices":[ | |
458 | + "Textual" | |
459 | + ] | |
460 | + } | |
461 | + }, | |
462 | + { | |
463 | + "field":{ | |
464 | + "name":"DeviceID", | |
465 | + "alias":"DeviceID", | |
466 | + "description":"DeviceID", | |
467 | + "datatype":"Text", | |
468 | + "required":false, | |
469 | + "multivalued":false, | |
470 | + "indices":[ | |
471 | + "Textual" | |
472 | + ] | |
473 | + } | |
474 | + }, | |
475 | + { | |
476 | + "field":{ | |
477 | + "name":"EndingAddress", | |
478 | + "alias":"EndingAddress", | |
479 | + "description":"EndingAddress", | |
480 | + "datatype":"Text", | |
481 | + "required":false, | |
482 | + "multivalued":false, | |
483 | + "indices":[ | |
484 | + "Textual" | |
485 | + ] | |
486 | + } | |
487 | + }, | |
488 | + { | |
489 | + "field":{ | |
490 | + "name":"InstallDate", | |
491 | + "alias":"InstallDate", | |
492 | + "description":"InstallDate", | |
493 | + "datatype":"Text", | |
494 | + "required":false, | |
495 | + "multivalued":false, | |
496 | + "indices":[ | |
497 | + "Textual" | |
498 | + ] | |
499 | + } | |
500 | + }, | |
501 | + { | |
502 | + "field":{ | |
503 | + "name":"Name", | |
504 | + "alias":"Name", | |
505 | + "description":"Name", | |
506 | + "datatype":"Text", | |
507 | + "required":false, | |
508 | + "multivalued":false, | |
509 | + "indices":[ | |
510 | + "Textual" | |
511 | + ] | |
512 | + } | |
513 | + }, | |
514 | + { | |
515 | + "field":{ | |
516 | + "name":"NumberOfBlocks", | |
517 | + "alias":"NumberOfBlocks", | |
518 | + "description":"NumberOfBlocks", | |
519 | + "datatype":"Text", | |
520 | + "required":false, | |
521 | + "multivalued":false, | |
522 | + "indices":[ | |
523 | + "Textual" | |
524 | + ] | |
525 | + } | |
526 | + }, | |
527 | + { | |
528 | + "field":{ | |
529 | + "name":"PNPDeviceID", | |
530 | + "alias":"PNPDeviceID", | |
531 | + "description":"PNPDeviceID", | |
532 | + "datatype":"Text", | |
533 | + "required":false, | |
534 | + "multivalued":false, | |
535 | + "indices":[ | |
536 | + "Textual" | |
537 | + ] | |
538 | + } | |
539 | + }, | |
540 | + { | |
541 | + "field":{ | |
542 | + "name":"Purpose", | |
543 | + "alias":"Purpose", | |
544 | + "description":"Purpose", | |
545 | + "datatype":"Text", | |
546 | + "required":false, | |
547 | + "multivalued":false, | |
548 | + "indices":[ | |
549 | + "Textual" | |
550 | + ] | |
551 | + } | |
552 | + }, | |
553 | + { | |
554 | + "field":{ | |
555 | + "name":"SystemLevelAddress", | |
556 | + "alias":"SystemLevelAddress", | |
557 | + "description":"SystemLevelAddress", | |
558 | + "datatype":"Text", | |
559 | + "required":false, | |
560 | + "multivalued":false, | |
561 | + "indices":[ | |
562 | + "Textual" | |
563 | + ] | |
564 | + } | |
565 | + }, | |
566 | + { | |
567 | + "field":{ | |
568 | + "name":"SystemName", | |
569 | + "alias":"SystemName", | |
570 | + "description":"SystemName", | |
571 | + "datatype":"Text", | |
572 | + "required":false, | |
573 | + "multivalued":false, | |
574 | + "indices":[ | |
575 | + "Textual" | |
576 | + ] | |
577 | + } | |
578 | + } | |
579 | + ] | |
580 | + } | |
581 | + }, | |
582 | + { | |
583 | + "group":{ | |
584 | + "metadata":{ | |
585 | + "name":"Win32_PhysicalMedia", | |
586 | + "alias":"Win32_PhysicalMedia", | |
587 | + "description":"Win32_PhysicalMedia", | |
588 | + "multivalued":false | |
589 | + }, | |
590 | + "content":[ | |
591 | + { | |
592 | + "field":{ | |
593 | + "name":"Capacity", | |
594 | + "alias":"Capacity", | |
595 | + "description":"Capacity", | |
596 | + "datatype":"Text", | |
597 | + "required":false, | |
598 | + "multivalued":false, | |
599 | + "indices":[ | |
600 | + "Textual" | |
601 | + ] | |
602 | + } | |
603 | + }, | |
604 | + { | |
605 | + "field":{ | |
606 | + "name":"Caption", | |
607 | + "alias":"Caption", | |
608 | + "description":"Caption", | |
609 | + "datatype":"Text", | |
610 | + "required":false, | |
611 | + "multivalued":false, | |
612 | + "indices":[ | |
613 | + "Textual" | |
614 | + ] | |
615 | + } | |
616 | + }, | |
617 | + { | |
618 | + "field":{ | |
619 | + "name":"Description", | |
620 | + "alias":"Description", | |
621 | + "description":"Description", | |
622 | + "datatype":"Text", | |
623 | + "required":false, | |
624 | + "multivalued":false, | |
625 | + "indices":[ | |
626 | + "Textual" | |
627 | + ] | |
628 | + } | |
629 | + }, | |
630 | + { | |
631 | + "field":{ | |
632 | + "name":"InstallDate", | |
633 | + "alias":"InstallDate", | |
634 | + "description":"InstallDate", | |
635 | + "datatype":"Text", | |
636 | + "required":false, | |
637 | + "multivalued":false, | |
638 | + "indices":[ | |
639 | + "Textual" | |
640 | + ] | |
641 | + } | |
642 | + }, | |
643 | + { | |
644 | + "field":{ | |
645 | + "name":"Manufacturer", | |
646 | + "alias":"Manufacturer", | |
647 | + "description":"Manufacturer", | |
648 | + "datatype":"Text", | |
649 | + "required":false, | |
650 | + "multivalued":false, | |
651 | + "indices":[ | |
652 | + "Textual" | |
653 | + ] | |
654 | + } | |
655 | + }, | |
656 | + { | |
657 | + "field":{ | |
658 | + "name":"MediaDescription", | |
659 | + "alias":"MediaDescription", | |
660 | + "description":"MediaDescription", | |
661 | + "datatype":"Text", | |
662 | + "required":false, | |
663 | + "multivalued":false, | |
664 | + "indices":[ | |
665 | + "Textual" | |
666 | + ] | |
667 | + } | |
668 | + }, | |
669 | + { | |
670 | + "field":{ | |
671 | + "name":"MediaType", | |
672 | + "alias":"MediaType", | |
673 | + "description":"MediaType", | |
674 | + "datatype":"Text", | |
675 | + "required":false, | |
676 | + "multivalued":false, | |
677 | + "indices":[ | |
678 | + "Textual" | |
679 | + ] | |
680 | + } | |
681 | + }, | |
682 | + { | |
683 | + "field":{ | |
684 | + "name":"Model", | |
685 | + "alias":"Model", | |
686 | + "description":"Model", | |
687 | + "datatype":"Text", | |
688 | + "required":false, | |
689 | + "multivalued":false, | |
690 | + "indices":[ | |
691 | + "Textual" | |
692 | + ] | |
693 | + } | |
694 | + }, | |
695 | + { | |
696 | + "field":{ | |
697 | + "name":"Name", | |
698 | + "alias":"Name", | |
699 | + "description":"Name", | |
700 | + "datatype":"Text", | |
701 | + "required":false, | |
702 | + "multivalued":false, | |
703 | + "indices":[ | |
704 | + "Textual" | |
705 | + ] | |
706 | + } | |
707 | + }, | |
708 | + { | |
709 | + "field":{ | |
710 | + "name":"OtherIdentifyingInfo", | |
711 | + "alias":"OtherIdentifyingInfo", | |
712 | + "description":"OtherIdentifyingInfo", | |
713 | + "datatype":"Text", | |
714 | + "required":false, | |
715 | + "multivalued":false, | |
716 | + "indices":[ | |
717 | + "Textual" | |
718 | + ] | |
719 | + } | |
720 | + }, | |
721 | + { | |
722 | + "field":{ | |
723 | + "name":"PartNumber", | |
724 | + "alias":"PartNumber", | |
725 | + "description":"PartNumber", | |
726 | + "datatype":"Text", | |
727 | + "required":false, | |
728 | + "multivalued":false, | |
729 | + "indices":[ | |
730 | + "Textual" | |
731 | + ] | |
732 | + } | |
733 | + }, | |
734 | + { | |
735 | + "field":{ | |
736 | + "name":"SerialNumber", | |
737 | + "alias":"SerialNumber", | |
738 | + "description":"SerialNumber", | |
739 | + "datatype":"Text", | |
740 | + "required":false, | |
741 | + "multivalued":false, | |
742 | + "indices":[ | |
743 | + "Textual" | |
744 | + ] | |
745 | + } | |
746 | + }, | |
747 | + { | |
748 | + "field":{ | |
749 | + "name":"SKU", | |
750 | + "alias":"SKU", | |
751 | + "description":"SKU", | |
752 | + "datatype":"Text", | |
753 | + "required":false, | |
754 | + "multivalued":false, | |
755 | + "indices":[ | |
756 | + "Textual" | |
757 | + ] | |
758 | + } | |
759 | + }, | |
760 | + { | |
761 | + "field":{ | |
762 | + "name":"Tag", | |
763 | + "alias":"Tag", | |
764 | + "description":"Tag", | |
765 | + "datatype":"Text", | |
766 | + "required":false, | |
767 | + "multivalued":false, | |
768 | + "indices":[ | |
769 | + "Textual" | |
770 | + ] | |
771 | + } | |
772 | + }, | |
773 | + { | |
774 | + "field":{ | |
775 | + "name":"Version", | |
776 | + "alias":"Version", | |
777 | + "description":"Version", | |
778 | + "datatype":"Text", | |
779 | + "required":false, | |
780 | + "multivalued":false, | |
781 | + "indices":[ | |
782 | + "Textual" | |
783 | + ] | |
784 | + } | |
785 | + } | |
786 | + ] | |
787 | + } | |
788 | + }, | |
789 | + { | |
790 | + "group":{ | |
791 | + "metadata":{ | |
792 | + "name":"Win32_PhysicalMemory", | |
793 | + "alias":"Win32_PhysicalMemory", | |
794 | + "description":"Win32_PhysicalMemory", | |
795 | + "multivalued":false | |
796 | + }, | |
797 | + "content":[ | |
798 | + { | |
799 | + "field":{ | |
800 | + "name":"BankLabel", | |
801 | + "alias":"BankLabel", | |
802 | + "description":"BankLabel", | |
803 | + "datatype":"Text", | |
804 | + "required":false, | |
805 | + "multivalued":false, | |
806 | + "indices":[ | |
807 | + "Textual" | |
808 | + ] | |
809 | + } | |
810 | + }, | |
811 | + { | |
812 | + "field":{ | |
813 | + "name":"Capacity", | |
814 | + "alias":"Capacity", | |
815 | + "description":"Capacity", | |
816 | + "datatype":"Text", | |
817 | + "required":false, | |
818 | + "multivalued":false, | |
819 | + "indices":[ | |
820 | + "Textual" | |
821 | + ] | |
822 | + } | |
823 | + }, | |
824 | + { | |
825 | + "field":{ | |
826 | + "name":"Caption", | |
827 | + "alias":"Caption", | |
828 | + "description":"Caption", | |
829 | + "datatype":"Text", | |
830 | + "required":false, | |
831 | + "multivalued":false, | |
832 | + "indices":[ | |
833 | + "Textual" | |
834 | + ] | |
835 | + } | |
836 | + }, | |
837 | + { | |
838 | + "field":{ | |
839 | + "name":"DataWidth", | |
840 | + "alias":"DataWidth", | |
841 | + "description":"DataWidth", | |
842 | + "datatype":"Text", | |
843 | + "required":false, | |
844 | + "multivalued":false, | |
845 | + "indices":[ | |
846 | + "Textual" | |
847 | + ] | |
848 | + } | |
849 | + }, | |
850 | + { | |
851 | + "field":{ | |
852 | + "name":"Description", | |
853 | + "alias":"Description", | |
854 | + "description":"Description", | |
855 | + "datatype":"Text", | |
856 | + "required":false, | |
857 | + "multivalued":false, | |
858 | + "indices":[ | |
859 | + "Textual" | |
860 | + ] | |
861 | + } | |
862 | + }, | |
863 | + { | |
864 | + "field":{ | |
865 | + "name":"DeviceLocator", | |
866 | + "alias":"DeviceLocator", | |
867 | + "description":"DeviceLocator", | |
868 | + "datatype":"Text", | |
869 | + "required":false, | |
870 | + "multivalued":false, | |
871 | + "indices":[ | |
872 | + "Textual" | |
873 | + ] | |
874 | + } | |
875 | + }, | |
876 | + { | |
877 | + "field":{ | |
878 | + "name":"FormFactor", | |
879 | + "alias":"FormFactor", | |
880 | + "description":"FormFactor", | |
881 | + "datatype":"Text", | |
882 | + "required":false, | |
883 | + "multivalued":false, | |
884 | + "indices":[ | |
885 | + "Textual" | |
886 | + ] | |
887 | + } | |
888 | + }, | |
889 | + { | |
890 | + "field":{ | |
891 | + "name":"InstallDate", | |
892 | + "alias":"InstallDate", | |
893 | + "description":"InstallDate", | |
894 | + "datatype":"Text", | |
895 | + "required":false, | |
896 | + "multivalued":false, | |
897 | + "indices":[ | |
898 | + "Textual" | |
899 | + ] | |
900 | + } | |
901 | + }, | |
902 | + { | |
903 | + "field":{ | |
904 | + "name":"InterleaveDataDepth", | |
905 | + "alias":"InterleaveDataDepth", | |
906 | + "description":"InterleaveDataDepth", | |
907 | + "datatype":"Text", | |
908 | + "required":false, | |
909 | + "multivalued":false, | |
910 | + "indices":[ | |
911 | + "Textual" | |
912 | + ] | |
913 | + } | |
914 | + }, | |
915 | + { | |
916 | + "field":{ | |
917 | + "name":"InterleavePosition", | |
918 | + "alias":"InterleavePosition", | |
919 | + "description":"InterleavePosition", | |
920 | + "datatype":"Text", | |
921 | + "required":false, | |
922 | + "multivalued":false, | |
923 | + "indices":[ | |
924 | + "Textual" | |
925 | + ] | |
926 | + } | |
927 | + }, | |
928 | + { | |
929 | + "field":{ | |
930 | + "name":"Manufacturer", | |
931 | + "alias":"Manufacturer", | |
932 | + "description":"Manufacturer", | |
933 | + "datatype":"Text", | |
934 | + "required":false, | |
935 | + "multivalued":false, | |
936 | + "indices":[ | |
937 | + "Textual" | |
938 | + ] | |
939 | + } | |
940 | + }, | |
941 | + { | |
942 | + "field":{ | |
943 | + "name":"MemoryType", | |
944 | + "alias":"MemoryType", | |
945 | + "description":"MemoryType", | |
946 | + "datatype":"Text", | |
947 | + "required":false, | |
948 | + "multivalued":false, | |
949 | + "indices":[ | |
950 | + "Textual" | |
951 | + ] | |
952 | + } | |
953 | + }, | |
954 | + { | |
955 | + "field":{ | |
956 | + "name":"Model", | |
957 | + "alias":"Model", | |
958 | + "description":"Model", | |
959 | + "datatype":"Text", | |
960 | + "required":false, | |
961 | + "multivalued":false, | |
962 | + "indices":[ | |
963 | + "Textual" | |
964 | + ] | |
965 | + } | |
966 | + }, | |
967 | + { | |
968 | + "field":{ | |
969 | + "name":"Name", | |
970 | + "alias":"Name", | |
971 | + "description":"Name", | |
972 | + "datatype":"Text", | |
973 | + "required":false, | |
974 | + "multivalued":false, | |
975 | + "indices":[ | |
976 | + "Textual" | |
977 | + ] | |
978 | + } | |
979 | + }, | |
980 | + { | |
981 | + "field":{ | |
982 | + "name":"OtherIdentifyingInfo", | |
983 | + "alias":"OtherIdentifyingInfo", | |
984 | + "description":"OtherIdentifyingInfo", | |
985 | + "datatype":"Text", | |
986 | + "required":false, | |
987 | + "multivalued":false, | |
988 | + "indices":[ | |
989 | + "Textual" | |
990 | + ] | |
991 | + } | |
992 | + }, | |
993 | + { | |
994 | + "field":{ | |
995 | + "name":"PartNumber", | |
996 | + "alias":"PartNumber", | |
997 | + "description":"PartNumber", | |
998 | + "datatype":"Text", | |
999 | + "required":false, | |
1000 | + "multivalued":false, | |
1001 | + "indices":[ | |
1002 | + "Textual" | |
1003 | + ] | |
1004 | + } | |
1005 | + }, | |
1006 | + { | |
1007 | + "field":{ | |
1008 | + "name":"PositionInRow", | |
1009 | + "alias":"PositionInRow", | |
1010 | + "description":"PositionInRow", | |
1011 | + "datatype":"Text", | |
1012 | + "required":false, | |
1013 | + "multivalued":false, | |
1014 | + "indices":[ | |
1015 | + "Textual" | |
1016 | + ] | |
1017 | + } | |
1018 | + }, | |
1019 | + { | |
1020 | + "field":{ | |
1021 | + "name":"SerialNumber", | |
1022 | + "alias":"SerialNumber", | |
1023 | + "description":"SerialNumber", | |
1024 | + "datatype":"Text", | |
1025 | + "required":false, | |
1026 | + "multivalued":false, | |
1027 | + "indices":[ | |
1028 | + "Textual" | |
1029 | + ] | |
1030 | + } | |
1031 | + }, | |
1032 | + { | |
1033 | + "field":{ | |
1034 | + "name":"SKU", | |
1035 | + "alias":"SKU", | |
1036 | + "description":"SKU", | |
1037 | + "datatype":"Text", | |
1038 | + "required":false, | |
1039 | + "multivalued":false, | |
1040 | + "indices":[ | |
1041 | + "Textual" | |
1042 | + ] | |
1043 | + } | |
1044 | + }, | |
1045 | + { | |
1046 | + "field":{ | |
1047 | + "name":"Speed", | |
1048 | + "alias":"Speed", | |
1049 | + "description":"Speed", | |
1050 | + "datatype":"Text", | |
1051 | + "required":false, | |
1052 | + "multivalued":false, | |
1053 | + "indices":[ | |
1054 | + "Textual" | |
1055 | + ] | |
1056 | + } | |
1057 | + }, | |
1058 | + { | |
1059 | + "field":{ | |
1060 | + "name":"Tag", | |
1061 | + "alias":"Tag", | |
1062 | + "description":"Tag", | |
1063 | + "datatype":"Text", | |
1064 | + "required":false, | |
1065 | + "multivalued":false, | |
1066 | + "indices":[ | |
1067 | + "Textual" | |
1068 | + ] | |
1069 | + } | |
1070 | + }, | |
1071 | + { | |
1072 | + "field":{ | |
1073 | + "name":"TotalWidth", | |
1074 | + "alias":"TotalWidth", | |
1075 | + "description":"TotalWidth", | |
1076 | + "datatype":"Text", | |
1077 | + "required":false, | |
1078 | + "multivalued":false, | |
1079 | + "indices":[ | |
1080 | + "Textual" | |
1081 | + ] | |
1082 | + } | |
1083 | + }, | |
1084 | + { | |
1085 | + "field":{ | |
1086 | + "name":"TypeDetail", | |
1087 | + "alias":"TypeDetail", | |
1088 | + "description":"TypeDetail", | |
1089 | + "datatype":"Text", | |
1090 | + "required":false, | |
1091 | + "multivalued":false, | |
1092 | + "indices":[ | |
1093 | + "Textual" | |
1094 | + ] | |
1095 | + } | |
1096 | + }, | |
1097 | + { | |
1098 | + "field":{ | |
1099 | + "name":"Version", | |
1100 | + "alias":"Version", | |
1101 | + "description":"Version", | |
1102 | + "datatype":"Text", | |
1103 | + "required":false, | |
1104 | + "multivalued":false, | |
1105 | + "indices":[ | |
1106 | + "Textual" | |
1107 | + ] | |
1108 | + } | |
1109 | + } | |
1110 | + ] | |
1111 | + } | |
1112 | + }, | |
1113 | + { | |
1114 | + "group":{ | |
1115 | + "metadata":{ | |
1116 | + "name":"Win32_PointingDevice", | |
1117 | + "alias":"Win32_PointingDevice", | |
1118 | + "description":"Win32_PointingDevice", | |
1119 | + "multivalued":false | |
1120 | + }, | |
1121 | + "content":[ | |
1122 | + { | |
1123 | + "field":{ | |
1124 | + "name":"Availability", | |
1125 | + "alias":"Availability", | |
1126 | + "description":"Availability", | |
1127 | + "datatype":"Text", | |
1128 | + "required":false, | |
1129 | + "multivalued":false, | |
1130 | + "indices":[ | |
1131 | + "Textual" | |
1132 | + ] | |
1133 | + } | |
1134 | + }, | |
1135 | + { | |
1136 | + "field":{ | |
1137 | + "name":"Caption", | |
1138 | + "alias":"Caption", | |
1139 | + "description":"Caption", | |
1140 | + "datatype":"Text", | |
1141 | + "required":false, | |
1142 | + "multivalued":false, | |
1143 | + "indices":[ | |
1144 | + "Textual" | |
1145 | + ] | |
1146 | + } | |
1147 | + }, | |
1148 | + { | |
1149 | + "field":{ | |
1150 | + "name":"Description", | |
1151 | + "alias":"Description", | |
1152 | + "description":"Description", | |
1153 | + "datatype":"Text", | |
1154 | + "required":false, | |
1155 | + "multivalued":false, | |
1156 | + "indices":[ | |
1157 | + "Textual" | |
1158 | + ] | |
1159 | + } | |
1160 | + }, | |
1161 | + { | |
1162 | + "field":{ | |
1163 | + "name":"InstallDate", | |
1164 | + "alias":"InstallDate", | |
1165 | + "description":"InstallDate", | |
1166 | + "datatype":"Text", | |
1167 | + "required":false, | |
1168 | + "multivalued":false, | |
1169 | + "indices":[ | |
1170 | + "Textual" | |
1171 | + ] | |
1172 | + } | |
1173 | + }, | |
1174 | + { | |
1175 | + "field":{ | |
1176 | + "name":"Manufacturer", | |
1177 | + "alias":"Manufacturer", | |
1178 | + "description":"Manufacturer", | |
1179 | + "datatype":"Text", | |
1180 | + "required":false, | |
1181 | + "multivalued":false, | |
1182 | + "indices":[ | |
1183 | + "Textual" | |
1184 | + ] | |
1185 | + } | |
1186 | + }, | |
1187 | + { | |
1188 | + "field":{ | |
1189 | + "name":"Name", | |
1190 | + "alias":"Name", | |
1191 | + "description":"Name", | |
1192 | + "datatype":"Text", | |
1193 | + "required":false, | |
1194 | + "multivalued":false, | |
1195 | + "indices":[ | |
1196 | + "Textual" | |
1197 | + ] | |
1198 | + } | |
1199 | + } | |
1200 | + ] | |
1201 | + } | |
1202 | + }, | |
1203 | + { | |
1204 | + "group":{ | |
1205 | + "metadata":{ | |
1206 | + "name":"Win32_Printer", | |
1207 | + "alias":"Win32_Printer", | |
1208 | + "description":"Win32_Printer", | |
1209 | + "multivalued":false | |
1210 | + }, | |
1211 | + "content":[ | |
1212 | + { | |
1213 | + "field":{ | |
1214 | + "name":"Attributes", | |
1215 | + "alias":"Attributes", | |
1216 | + "description":"Attributes", | |
1217 | + "datatype":"Text", | |
1218 | + "required":false, | |
1219 | + "multivalued":false, | |
1220 | + "indices":[ | |
1221 | + "Textual" | |
1222 | + ] | |
1223 | + } | |
1224 | + }, | |
1225 | + { | |
1226 | + "field":{ | |
1227 | + "name":"Availability", | |
1228 | + "alias":"Availability", | |
1229 | + "description":"Availability", | |
1230 | + "datatype":"Text", | |
1231 | + "required":false, | |
1232 | + "multivalued":false, | |
1233 | + "indices":[ | |
1234 | + "Textual" | |
1235 | + ] | |
1236 | + } | |
1237 | + }, | |
1238 | + { | |
1239 | + "field":{ | |
1240 | + "name":"Caption", | |
1241 | + "alias":"Caption", | |
1242 | + "description":"Caption", | |
1243 | + "datatype":"Text", | |
1244 | + "required":false, | |
1245 | + "multivalued":false, | |
1246 | + "indices":[ | |
1247 | + "Textual" | |
1248 | + ] | |
1249 | + } | |
1250 | + }, | |
1251 | + { | |
1252 | + "field":{ | |
1253 | + "name":"CharSetsSupported", | |
1254 | + "alias":"CharSetsSupported", | |
1255 | + "description":"CharSetsSupported", | |
1256 | + "datatype":"Text", | |
1257 | + "required":false, | |
1258 | + "multivalued":false, | |
1259 | + "indices":[ | |
1260 | + "Textual" | |
1261 | + ] | |
1262 | + } | |
1263 | + }, | |
1264 | + { | |
1265 | + "field":{ | |
1266 | + "name":"Comment", | |
1267 | + "alias":"Comment", | |
1268 | + "description":"Comment", | |
1269 | + "datatype":"Text", | |
1270 | + "required":false, | |
1271 | + "multivalued":false, | |
1272 | + "indices":[ | |
1273 | + "Textual" | |
1274 | + ] | |
1275 | + } | |
1276 | + }, | |
1277 | + { | |
1278 | + "field":{ | |
1279 | + "name":"CurrentCharSet", | |
1280 | + "alias":"CurrentCharSet", | |
1281 | + "description":"CurrentCharSet", | |
1282 | + "datatype":"Text", | |
1283 | + "required":false, | |
1284 | + "multivalued":false, | |
1285 | + "indices":[ | |
1286 | + "Textual" | |
1287 | + ] | |
1288 | + } | |
1289 | + }, | |
1290 | + { | |
1291 | + "field":{ | |
1292 | + "name":"Default", | |
1293 | + "alias":"Default", | |
1294 | + "description":"Default", | |
1295 | + "datatype":"Text", | |
1296 | + "required":false, | |
1297 | + "multivalued":false, | |
1298 | + "indices":[ | |
1299 | + "Textual" | |
1300 | + ] | |
1301 | + } | |
1302 | + }, | |
1303 | + { | |
1304 | + "field":{ | |
1305 | + "name":"Description", | |
1306 | + "alias":"Description", | |
1307 | + "description":"Description", | |
1308 | + "datatype":"Text", | |
1309 | + "required":false, | |
1310 | + "multivalued":false, | |
1311 | + "indices":[ | |
1312 | + "Textual" | |
1313 | + ] | |
1314 | + } | |
1315 | + }, | |
1316 | + { | |
1317 | + "field":{ | |
1318 | + "name":"DeviceID", | |
1319 | + "alias":"DeviceID", | |
1320 | + "description":"DeviceID", | |
1321 | + "datatype":"Text", | |
1322 | + "required":false, | |
1323 | + "multivalued":false, | |
1324 | + "indices":[ | |
1325 | + "Textual" | |
1326 | + ] | |
1327 | + } | |
1328 | + }, | |
1329 | + { | |
1330 | + "field":{ | |
1331 | + "name":"Direct", | |
1332 | + "alias":"Direct", | |
1333 | + "description":"Direct", | |
1334 | + "datatype":"Text", | |
1335 | + "required":false, | |
1336 | + "multivalued":false, | |
1337 | + "indices":[ | |
1338 | + "Textual" | |
1339 | + ] | |
1340 | + } | |
1341 | + }, | |
1342 | + { | |
1343 | + "field":{ | |
1344 | + "name":"DriverName", | |
1345 | + "alias":"DriverName", | |
1346 | + "description":"DriverName", | |
1347 | + "datatype":"Text", | |
1348 | + "required":false, | |
1349 | + "multivalued":false, | |
1350 | + "indices":[ | |
1351 | + "Textual" | |
1352 | + ] | |
1353 | + } | |
1354 | + }, | |
1355 | + { | |
1356 | + "field":{ | |
1357 | + "name":"HorizontalResolution", | |
1358 | + "alias":"HorizontalResolution", | |
1359 | + "description":"HorizontalResolution", | |
1360 | + "datatype":"Text", | |
1361 | + "required":false, | |
1362 | + "multivalued":false, | |
1363 | + "indices":[ | |
1364 | + "Textual" | |
1365 | + ] | |
1366 | + } | |
1367 | + }, | |
1368 | + { | |
1369 | + "field":{ | |
1370 | + "name":"InstallDate", | |
1371 | + "alias":"InstallDate", | |
1372 | + "description":"InstallDate", | |
1373 | + "datatype":"Text", | |
1374 | + "required":false, | |
1375 | + "multivalued":false, | |
1376 | + "indices":[ | |
1377 | + "Textual" | |
1378 | + ] | |
1379 | + } | |
1380 | + }, | |
1381 | + { | |
1382 | + "field":{ | |
1383 | + "name":"JobCountSinceLastReset", | |
1384 | + "alias":"JobCountSinceLastReset", | |
1385 | + "description":"JobCountSinceLastReset", | |
1386 | + "datatype":"Text", | |
1387 | + "required":false, | |
1388 | + "multivalued":false, | |
1389 | + "indices":[ | |
1390 | + "Textual" | |
1391 | + ] | |
1392 | + } | |
1393 | + }, | |
1394 | + { | |
1395 | + "field":{ | |
1396 | + "name":"KeepPrintedJobs", | |
1397 | + "alias":"KeepPrintedJobs", | |
1398 | + "description":"KeepPrintedJobs", | |
1399 | + "datatype":"Text", | |
1400 | + "required":false, | |
1401 | + "multivalued":false, | |
1402 | + "indices":[ | |
1403 | + "Textual" | |
1404 | + ] | |
1405 | + } | |
1406 | + }, | |
1407 | + { | |
1408 | + "field":{ | |
1409 | + "name":"LanguagesSupported", | |
1410 | + "alias":"LanguagesSupported", | |
1411 | + "description":"LanguagesSupported", | |
1412 | + "datatype":"Text", | |
1413 | + "required":false, | |
1414 | + "multivalued":false, | |
1415 | + "indices":[ | |
1416 | + "Textual" | |
1417 | + ] | |
1418 | + } | |
1419 | + }, | |
1420 | + { | |
1421 | + "field":{ | |
1422 | + "name":"Local", | |
1423 | + "alias":"Local", | |
1424 | + "description":"Local", | |
1425 | + "datatype":"Text", | |
1426 | + "required":false, | |
1427 | + "multivalued":false, | |
1428 | + "indices":[ | |
1429 | + "Textual" | |
1430 | + ] | |
1431 | + } | |
1432 | + }, | |
1433 | + { | |
1434 | + "field":{ | |
1435 | + "name":"Location", | |
1436 | + "alias":"Location", | |
1437 | + "description":"Location", | |
1438 | + "datatype":"Text", | |
1439 | + "required":false, | |
1440 | + "multivalued":false, | |
1441 | + "indices":[ | |
1442 | + "Textual" | |
1443 | + ] | |
1444 | + } | |
1445 | + }, | |
1446 | + { | |
1447 | + "field":{ | |
1448 | + "name":"MarkingTechnology", | |
1449 | + "alias":"MarkingTechnology", | |
1450 | + "description":"MarkingTechnology", | |
1451 | + "datatype":"Text", | |
1452 | + "required":false, | |
1453 | + "multivalued":false, | |
1454 | + "indices":[ | |
1455 | + "Textual" | |
1456 | + ] | |
1457 | + } | |
1458 | + }, | |
1459 | + { | |
1460 | + "field":{ | |
1461 | + "name":"MaxCopies", | |
1462 | + "alias":"MaxCopies", | |
1463 | + "description":"MaxCopies", | |
1464 | + "datatype":"Text", | |
1465 | + "required":false, | |
1466 | + "multivalued":false, | |
1467 | + "indices":[ | |
1468 | + "Textual" | |
1469 | + ] | |
1470 | + } | |
1471 | + }, | |
1472 | + { | |
1473 | + "field":{ | |
1474 | + "name":"MaxNumberUp", | |
1475 | + "alias":"MaxNumberUp", | |
1476 | + "description":"MaxNumberUp", | |
1477 | + "datatype":"Text", | |
1478 | + "required":false, | |
1479 | + "multivalued":false, | |
1480 | + "indices":[ | |
1481 | + "Textual" | |
1482 | + ] | |
1483 | + } | |
1484 | + }, | |
1485 | + { | |
1486 | + "field":{ | |
1487 | + "name":"MaxSizeSupported", | |
1488 | + "alias":"MaxSizeSupported", | |
1489 | + "description":"MaxSizeSupported", | |
1490 | + "datatype":"Text", | |
1491 | + "required":false, | |
1492 | + "multivalued":false, | |
1493 | + "indices":[ | |
1494 | + "Textual" | |
1495 | + ] | |
1496 | + } | |
1497 | + }, | |
1498 | + { | |
1499 | + "field":{ | |
1500 | + "name":"MimeTypesSupported", | |
1501 | + "alias":"MimeTypesSupported", | |
1502 | + "description":"MimeTypesSupported", | |
1503 | + "datatype":"Text", | |
1504 | + "required":false, | |
1505 | + "multivalued":false, | |
1506 | + "indices":[ | |
1507 | + "Textual" | |
1508 | + ] | |
1509 | + } | |
1510 | + }, | |
1511 | + { | |
1512 | + "field":{ | |
1513 | + "name":"Name", | |
1514 | + "alias":"Name", | |
1515 | + "description":"Name", | |
1516 | + "datatype":"Text", | |
1517 | + "required":false, | |
1518 | + "multivalued":false, | |
1519 | + "indices":[ | |
1520 | + "Textual" | |
1521 | + ] | |
1522 | + } | |
1523 | + }, | |
1524 | + { | |
1525 | + "field":{ | |
1526 | + "name":"Network", | |
1527 | + "alias":"Network", | |
1528 | + "description":"Network", | |
1529 | + "datatype":"Text", | |
1530 | + "required":false, | |
1531 | + "multivalued":false, | |
1532 | + "indices":[ | |
1533 | + "Textual" | |
1534 | + ] | |
1535 | + } | |
1536 | + }, | |
1537 | + { | |
1538 | + "field":{ | |
1539 | + "name":"PaperSizesSupported", | |
1540 | + "alias":"PaperSizesSupported", | |
1541 | + "description":"PaperSizesSupported", | |
1542 | + "datatype":"Text", | |
1543 | + "required":false, | |
1544 | + "multivalued":false, | |
1545 | + "indices":[ | |
1546 | + "Textual" | |
1547 | + ] | |
1548 | + } | |
1549 | + }, | |
1550 | + { | |
1551 | + "field":{ | |
1552 | + "name":"PaperTypesAvailable", | |
1553 | + "alias":"PaperTypesAvailable", | |
1554 | + "description":"PaperTypesAvailable", | |
1555 | + "datatype":"Text", | |
1556 | + "required":false, | |
1557 | + "multivalued":false, | |
1558 | + "indices":[ | |
1559 | + "Textual" | |
1560 | + ] | |
1561 | + } | |
1562 | + }, | |
1563 | + { | |
1564 | + "field":{ | |
1565 | + "name":"Parameters", | |
1566 | + "alias":"Parameters", | |
1567 | + "description":"Parameters", | |
1568 | + "datatype":"Text", | |
1569 | + "required":false, | |
1570 | + "multivalued":false, | |
1571 | + "indices":[ | |
1572 | + "Textual" | |
1573 | + ] | |
1574 | + } | |
1575 | + }, | |
1576 | + { | |
1577 | + "field":{ | |
1578 | + "name":"PNPDeviceID", | |
1579 | + "alias":"PNPDeviceID", | |
1580 | + "description":"PNPDeviceID", | |
1581 | + "datatype":"Text", | |
1582 | + "required":false, | |
1583 | + "multivalued":false, | |
1584 | + "indices":[ | |
1585 | + "Textual" | |
1586 | + ] | |
1587 | + } | |
1588 | + }, | |
1589 | + { | |
1590 | + "field":{ | |
1591 | + "name":"PortName", | |
1592 | + "alias":"PortName", | |
1593 | + "description":"PortName", | |
1594 | + "datatype":"Text", | |
1595 | + "required":false, | |
1596 | + "multivalued":false, | |
1597 | + "indices":[ | |
1598 | + "Textual" | |
1599 | + ] | |
1600 | + } | |
1601 | + }, | |
1602 | + { | |
1603 | + "field":{ | |
1604 | + "name":"PrintProcessor", | |
1605 | + "alias":"PrintProcessor", | |
1606 | + "description":"PrintProcessor", | |
1607 | + "datatype":"Text", | |
1608 | + "required":false, | |
1609 | + "multivalued":false, | |
1610 | + "indices":[ | |
1611 | + "Textual" | |
1612 | + ] | |
1613 | + } | |
1614 | + }, | |
1615 | + { | |
1616 | + "field":{ | |
1617 | + "name":"ServerName", | |
1618 | + "alias":"ServerName", | |
1619 | + "description":"ServerName", | |
1620 | + "datatype":"Text", | |
1621 | + "required":false, | |
1622 | + "multivalued":false, | |
1623 | + "indices":[ | |
1624 | + "Textual" | |
1625 | + ] | |
1626 | + } | |
1627 | + }, | |
1628 | + { | |
1629 | + "field":{ | |
1630 | + "name":"Shared", | |
1631 | + "alias":"Shared", | |
1632 | + "description":"Shared", | |
1633 | + "datatype":"Text", | |
1634 | + "required":false, | |
1635 | + "multivalued":false, | |
1636 | + "indices":[ | |
1637 | + "Textual" | |
1638 | + ] | |
1639 | + } | |
1640 | + }, | |
1641 | + { | |
1642 | + "field":{ | |
1643 | + "name":"ShareName", | |
1644 | + "alias":"ShareName", | |
1645 | + "description":"ShareName", | |
1646 | + "datatype":"Text", | |
1647 | + "required":false, | |
1648 | + "multivalued":false, | |
1649 | + "indices":[ | |
1650 | + "Textual" | |
1651 | + ] | |
1652 | + } | |
1653 | + }, | |
1654 | + { | |
1655 | + "field":{ | |
1656 | + "name":"SpoolEnabled", | |
1657 | + "alias":"SpoolEnabled", | |
1658 | + "description":"SpoolEnabled", | |
1659 | + "datatype":"Text", | |
1660 | + "required":false, | |
1661 | + "multivalued":false, | |
1662 | + "indices":[ | |
1663 | + "Textual" | |
1664 | + ] | |
1665 | + } | |
1666 | + }, | |
1667 | + { | |
1668 | + "field":{ | |
1669 | + "name":"SystemName", | |
1670 | + "alias":"SystemName", | |
1671 | + "description":"SystemName", | |
1672 | + "datatype":"Text", | |
1673 | + "required":false, | |
1674 | + "multivalued":false, | |
1675 | + "indices":[ | |
1676 | + "Textual" | |
1677 | + ] | |
1678 | + } | |
1679 | + }, | |
1680 | + { | |
1681 | + "field":{ | |
1682 | + "name":"VerticalResolution", | |
1683 | + "alias":"VerticalResolution", | |
1684 | + "description":"VerticalResolution", | |
1685 | + "datatype":"Text", | |
1686 | + "required":false, | |
1687 | + "multivalued":false, | |
1688 | + "indices":[ | |
1689 | + "Textual" | |
1690 | + ] | |
1691 | + } | |
1692 | + }, | |
1693 | + { | |
1694 | + "field":{ | |
1695 | + "name":"WorkOffline", | |
1696 | + "alias":"WorkOffline", | |
1697 | + "description":"WorkOffline", | |
1698 | + "datatype":"Text", | |
1699 | + "required":false, | |
1700 | + "multivalued":false, | |
1701 | + "indices":[ | |
1702 | + "Textual" | |
1703 | + ] | |
1704 | + } | |
1705 | + } | |
1706 | + ] | |
1707 | + } | |
1708 | + }, | |
1709 | + { | |
1710 | + "group":{ | |
1711 | + "metadata":{ | |
1712 | + "name":"Win32_Processor", | |
1713 | + "alias":"Win32_Processor", | |
1714 | + "description":"Win32_Processorr", | |
1715 | + "multivalued":false | |
1716 | + }, | |
1717 | + "content":[ | |
1718 | + { | |
1719 | + "field":{ | |
1720 | + "name":"AddressWidth", | |
1721 | + "alias":"AddressWidth", | |
1722 | + "description":"AddressWidth", | |
1723 | + "datatype":"Text", | |
1724 | + "required":false, | |
1725 | + "multivalued":false, | |
1726 | + "indices":[ | |
1727 | + "Textual" | |
1728 | + ] | |
1729 | + } | |
1730 | + }, | |
1731 | + { | |
1732 | + "field":{ | |
1733 | + "name":"Availability", | |
1734 | + "alias":"Availability", | |
1735 | + "description":"Availability", | |
1736 | + "datatype":"Text", | |
1737 | + "required":false, | |
1738 | + "multivalued":false, | |
1739 | + "indices":[ | |
1740 | + "Textual" | |
1741 | + ] | |
1742 | + } | |
1743 | + }, | |
1744 | + { | |
1745 | + "field":{ | |
1746 | + "name":"Architecture", | |
1747 | + "alias":"Architecture", | |
1748 | + "description":"Architecture", | |
1749 | + "datatype":"Text", | |
1750 | + "required":false, | |
1751 | + "multivalued":false, | |
1752 | + "indices":[ | |
1753 | + "Textual" | |
1754 | + ] | |
1755 | + } | |
1756 | + }, | |
1757 | + { | |
1758 | + "field":{ | |
1759 | + "name":"Caption", | |
1760 | + "alias":"Caption", | |
1761 | + "description":"Caption", | |
1762 | + "datatype":"Text", | |
1763 | + "required":false, | |
1764 | + "multivalued":false, | |
1765 | + "indices":[ | |
1766 | + "Textual" | |
1767 | + ] | |
1768 | + } | |
1769 | + }, | |
1770 | + { | |
1771 | + "field":{ | |
1772 | + "name":"DataWidth", | |
1773 | + "alias":"DataWidth", | |
1774 | + "description":"DataWidth", | |
1775 | + "datatype":"Text", | |
1776 | + "required":false, | |
1777 | + "multivalued":false, | |
1778 | + "indices":[ | |
1779 | + "Textual" | |
1780 | + ] | |
1781 | + } | |
1782 | + }, | |
1783 | + { | |
1784 | + "field":{ | |
1785 | + "name":"Description", | |
1786 | + "alias":"Description", | |
1787 | + "description":"Description", | |
1788 | + "datatype":"Text", | |
1789 | + "required":false, | |
1790 | + "multivalued":false, | |
1791 | + "indices":[ | |
1792 | + "Textual" | |
1793 | + ] | |
1794 | + } | |
1795 | + }, | |
1796 | + { | |
1797 | + "field":{ | |
1798 | + "name":"DeviceID", | |
1799 | + "alias":"DeviceID", | |
1800 | + "description":"DeviceID", | |
1801 | + "datatype":"Text", | |
1802 | + "required":false, | |
1803 | + "multivalued":false, | |
1804 | + "indices":[ | |
1805 | + "Textual" | |
1806 | + ] | |
1807 | + } | |
1808 | + }, | |
1809 | + { | |
1810 | + "field":{ | |
1811 | + "name":"ExtClock", | |
1812 | + "alias":"ExtClock", | |
1813 | + "description":"ExtClock", | |
1814 | + "datatype":"Text", | |
1815 | + "required":false, | |
1816 | + "multivalued":false, | |
1817 | + "indices":[ | |
1818 | + "Textual" | |
1819 | + ] | |
1820 | + } | |
1821 | + }, | |
1822 | + { | |
1823 | + "field":{ | |
1824 | + "name":"Family", | |
1825 | + "alias":"Family", | |
1826 | + "description":"Family", | |
1827 | + "datatype":"Text", | |
1828 | + "required":false, | |
1829 | + "multivalued":false, | |
1830 | + "indices":[ | |
1831 | + "Textual" | |
1832 | + ] | |
1833 | + } | |
1834 | + }, | |
1835 | + { | |
1836 | + "field":{ | |
1837 | + "name":"L2CacheSize", | |
1838 | + "alias":"L2CacheSize", | |
1839 | + "description":"L2CacheSize", | |
1840 | + "datatype":"Text", | |
1841 | + "required":false, | |
1842 | + "multivalued":false, | |
1843 | + "indices":[ | |
1844 | + "Textual" | |
1845 | + ] | |
1846 | + } | |
1847 | + }, | |
1848 | + { | |
1849 | + "field":{ | |
1850 | + "name":"L2CacheSpeed", | |
1851 | + "alias":"L2CacheSpeed", | |
1852 | + "description":"L2CacheSpeed", | |
1853 | + "datatype":"Text", | |
1854 | + "required":false, | |
1855 | + "multivalued":false, | |
1856 | + "indices":[ | |
1857 | + "Textual" | |
1858 | + ] | |
1859 | + } | |
1860 | + }, | |
1861 | + { | |
1862 | + "field":{ | |
1863 | + "name":"Level", | |
1864 | + "alias":"Level", | |
1865 | + "description":"Level", | |
1866 | + "datatype":"Text", | |
1867 | + "required":false, | |
1868 | + "multivalued":false, | |
1869 | + "indices":[ | |
1870 | + "Textual" | |
1871 | + ] | |
1872 | + } | |
1873 | + }, | |
1874 | + { | |
1875 | + "field":{ | |
1876 | + "name":"Manufacturer", | |
1877 | + "alias":"Manufacturer", | |
1878 | + "description":"Manufacturer", | |
1879 | + "datatype":"Text", | |
1880 | + "required":false, | |
1881 | + "multivalued":false, | |
1882 | + "indices":[ | |
1883 | + "Textual" | |
1884 | + ] | |
1885 | + } | |
1886 | + }, | |
1887 | + { | |
1888 | + "field":{ | |
1889 | + "name":"MaxClockSpeed", | |
1890 | + "alias":"MaxClockSpeed", | |
1891 | + "description":"MaxClockSpeed", | |
1892 | + "datatype":"Text", | |
1893 | + "required":false, | |
1894 | + "multivalued":false, | |
1895 | + "indices":[ | |
1896 | + "Textual" | |
1897 | + ] | |
1898 | + } | |
1899 | + }, | |
1900 | + { | |
1901 | + "field":{ | |
1902 | + "name":"Name", | |
1903 | + "alias":"Name", | |
1904 | + "description":"Name", | |
1905 | + "datatype":"Text", | |
1906 | + "required":false, | |
1907 | + "multivalued":false, | |
1908 | + "indices":[ | |
1909 | + "Textual" | |
1910 | + ] | |
1911 | + } | |
1912 | + }, | |
1913 | + { | |
1914 | + "field":{ | |
1915 | + "name":"NumberOfCores", | |
1916 | + "alias":"NumberOfCores", | |
1917 | + "description":"NumberOfCores", | |
1918 | + "datatype":"Text", | |
1919 | + "required":false, | |
1920 | + "multivalued":false, | |
1921 | + "indices":[ | |
1922 | + "Textual" | |
1923 | + ] | |
1924 | + } | |
1925 | + }, | |
1926 | + { | |
1927 | + "field":{ | |
1928 | + "name":"NumberOfLogicalProcessors", | |
1929 | + "alias":"NumberOfLogicalProcessors", | |
1930 | + "description":"NumberOfLogicalProcessors", | |
1931 | + "datatype":"Text", | |
1932 | + "required":false, | |
1933 | + "multivalued":false, | |
1934 | + "indices":[ | |
1935 | + "Textual" | |
1936 | + ] | |
1937 | + } | |
1938 | + }, | |
1939 | + { | |
1940 | + "field":{ | |
1941 | + "name":"ProcessorId", | |
1942 | + "alias":"ProcessorId", | |
1943 | + "description":"ProcessorId", | |
1944 | + "datatype":"Text", | |
1945 | + "required":false, | |
1946 | + "multivalued":false, | |
1947 | + "indices":[ | |
1948 | + "Textual" | |
1949 | + ] | |
1950 | + } | |
1951 | + }, | |
1952 | + { | |
1953 | + "field":{ | |
1954 | + "name":"ProcessorType", | |
1955 | + "alias":"ProcessorType", | |
1956 | + "description":"ProcessorType", | |
1957 | + "datatype":"Text", | |
1958 | + "required":false, | |
1959 | + "multivalued":false, | |
1960 | + "indices":[ | |
1961 | + "Textual" | |
1962 | + ] | |
1963 | + } | |
1964 | + }, | |
1965 | + { | |
1966 | + "field":{ | |
1967 | + "name":"Revision", | |
1968 | + "alias":"Revision", | |
1969 | + "description":"Revision", | |
1970 | + "datatype":"Text", | |
1971 | + "required":false, | |
1972 | + "multivalued":false, | |
1973 | + "indices":[ | |
1974 | + "Textual" | |
1975 | + ] | |
1976 | + } | |
1977 | + }, | |
1978 | + { | |
1979 | + "field":{ | |
1980 | + "name":"Role", | |
1981 | + "alias":"Role", | |
1982 | + "description":"Role", | |
1983 | + "datatype":"Text", | |
1984 | + "required":false, | |
1985 | + "multivalued":false, | |
1986 | + "indices":[ | |
1987 | + "Textual" | |
1988 | + ] | |
1989 | + } | |
1990 | + }, | |
1991 | + { | |
1992 | + "field":{ | |
1993 | + "name":"SocketDesignation", | |
1994 | + "alias":"SocketDesignation", | |
1995 | + "description":"SocketDesignation", | |
1996 | + "datatype":"Text", | |
1997 | + "required":false, | |
1998 | + "multivalued":false, | |
1999 | + "indices":[ | |
2000 | + "Textual" | |
2001 | + ] | |
2002 | + } | |
2003 | + }, | |
2004 | + { | |
2005 | + "field":{ | |
2006 | + "name":"SystemName", | |
2007 | + "alias":"SystemName", | |
2008 | + "description":"SystemName", | |
2009 | + "datatype":"Text", | |
2010 | + "required":false, | |
2011 | + "multivalued":false, | |
2012 | + "indices":[ | |
2013 | + "Textual" | |
2014 | + ] | |
2015 | + } | |
2016 | + }, | |
2017 | + { | |
2018 | + "field":{ | |
2019 | + "name":"UpgradeMethod", | |
2020 | + "alias":"UpgradeMethod", | |
2021 | + "description":"UpgradeMethod", | |
2022 | + "datatype":"Text", | |
2023 | + "required":false, | |
2024 | + "multivalued":false, | |
2025 | + "indices":[ | |
2026 | + "Textual" | |
2027 | + ] | |
2028 | + } | |
2029 | + }, | |
2030 | + { | |
2031 | + "field":{ | |
2032 | + "name":"Version", | |
2033 | + "alias":"Version", | |
2034 | + "description":"Version", | |
2035 | + "datatype":"Text", | |
2036 | + "required":false, | |
2037 | + "multivalued":false, | |
2038 | + "indices":[ | |
2039 | + "Textual" | |
2040 | + ] | |
2041 | + } | |
2042 | + } | |
2043 | + ] | |
2044 | + } | |
2045 | + } | |
2046 | + ] | |
2047 | +} | |
0 | 2048 | \ No newline at end of file | ... | ... |
2.73 KB
1 | +++ a/wscserver/static/pylons.css | |
... | ... | @@ -0,0 +1,372 @@ |
1 | +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td | |
2 | +{ | |
3 | + margin: 0; | |
4 | + padding: 0; | |
5 | + border: 0; | |
6 | + outline: 0; | |
7 | + font-size: 100%; /* 16px */ | |
8 | + vertical-align: baseline; | |
9 | + background: transparent; | |
10 | +} | |
11 | + | |
12 | +body | |
13 | +{ | |
14 | + line-height: 1; | |
15 | +} | |
16 | + | |
17 | +ol, ul | |
18 | +{ | |
19 | + list-style: none; | |
20 | +} | |
21 | + | |
22 | +blockquote, q | |
23 | +{ | |
24 | + quotes: none; | |
25 | +} | |
26 | + | |
27 | +blockquote:before, blockquote:after, q:before, q:after | |
28 | +{ | |
29 | + content: ''; | |
30 | + content: none; | |
31 | +} | |
32 | + | |
33 | +:focus | |
34 | +{ | |
35 | + outline: 0; | |
36 | +} | |
37 | + | |
38 | +ins | |
39 | +{ | |
40 | + text-decoration: none; | |
41 | +} | |
42 | + | |
43 | +del | |
44 | +{ | |
45 | + text-decoration: line-through; | |
46 | +} | |
47 | + | |
48 | +table | |
49 | +{ | |
50 | + border-collapse: collapse; | |
51 | + border-spacing: 0; | |
52 | +} | |
53 | + | |
54 | +sub | |
55 | +{ | |
56 | + vertical-align: sub; | |
57 | + font-size: smaller; | |
58 | + line-height: normal; | |
59 | +} | |
60 | + | |
61 | +sup | |
62 | +{ | |
63 | + vertical-align: super; | |
64 | + font-size: smaller; | |
65 | + line-height: normal; | |
66 | +} | |
67 | + | |
68 | +ul, menu, dir | |
69 | +{ | |
70 | + display: block; | |
71 | + list-style-type: disc; | |
72 | + margin: 1em 0; | |
73 | + padding-left: 40px; | |
74 | +} | |
75 | + | |
76 | +ol | |
77 | +{ | |
78 | + display: block; | |
79 | + list-style-type: decimal-leading-zero; | |
80 | + margin: 1em 0; | |
81 | + padding-left: 40px; | |
82 | +} | |
83 | + | |
84 | +li | |
85 | +{ | |
86 | + display: list-item; | |
87 | +} | |
88 | + | |
89 | +ul ul, ul ol, ul dir, ul menu, ul dl, ol ul, ol ol, ol dir, ol menu, ol dl, dir ul, dir ol, dir dir, dir menu, dir dl, menu ul, menu ol, menu dir, menu menu, menu dl, dl ul, dl ol, dl dir, dl menu, dl dl | |
90 | +{ | |
91 | + margin-top: 0; | |
92 | + margin-bottom: 0; | |
93 | +} | |
94 | + | |
95 | +ol ul, ul ul, menu ul, dir ul, ol menu, ul menu, menu menu, dir menu, ol dir, ul dir, menu dir, dir dir | |
96 | +{ | |
97 | + list-style-type: circle; | |
98 | +} | |
99 | + | |
100 | +ol ol ul, ol ul ul, ol menu ul, ol dir ul, ol ol menu, ol ul menu, ol menu menu, ol dir menu, ol ol dir, ol ul dir, ol menu dir, ol dir dir, ul ol ul, ul ul ul, ul menu ul, ul dir ul, ul ol menu, ul ul menu, ul menu menu, ul dir menu, ul ol dir, ul ul dir, ul menu dir, ul dir dir, menu ol ul, menu ul ul, menu menu ul, menu dir ul, menu ol menu, menu ul menu, menu menu menu, menu dir menu, menu ol dir, menu ul dir, menu menu dir, menu dir dir, dir ol ul, dir ul ul, dir menu ul, dir dir ul, dir ol menu, dir ul menu, dir menu menu, dir dir menu, dir ol dir, dir ul dir, dir menu dir, dir dir dir | |
101 | +{ | |
102 | + list-style-type: square; | |
103 | +} | |
104 | + | |
105 | +.hidden | |
106 | +{ | |
107 | + display: none; | |
108 | +} | |
109 | + | |
110 | +p | |
111 | +{ | |
112 | + line-height: 1.5em; | |
113 | +} | |
114 | + | |
115 | +h1 | |
116 | +{ | |
117 | + font-size: 1.75em; | |
118 | + line-height: 1.7em; | |
119 | + font-family: helvetica, verdana; | |
120 | +} | |
121 | + | |
122 | +h2 | |
123 | +{ | |
124 | + font-size: 1.5em; | |
125 | + line-height: 1.7em; | |
126 | + font-family: helvetica, verdana; | |
127 | +} | |
128 | + | |
129 | +h3 | |
130 | +{ | |
131 | + font-size: 1.25em; | |
132 | + line-height: 1.7em; | |
133 | + font-family: helvetica, verdana; | |
134 | +} | |
135 | + | |
136 | +h4 | |
137 | +{ | |
138 | + font-size: 1em; | |
139 | + line-height: 1.7em; | |
140 | + font-family: helvetica, verdana; | |
141 | +} | |
142 | + | |
143 | +html, body | |
144 | +{ | |
145 | + width: 100%; | |
146 | + height: 100%; | |
147 | +} | |
148 | + | |
149 | +body | |
150 | +{ | |
151 | + margin: 0; | |
152 | + padding: 0; | |
153 | + background-color: #fff; | |
154 | + position: relative; | |
155 | + font: 16px/24px NobileRegular, "Lucida Grande", Lucida, Verdana, sans-serif; | |
156 | +} | |
157 | + | |
158 | +a | |
159 | +{ | |
160 | + color: #1b61d6; | |
161 | + text-decoration: none; | |
162 | +} | |
163 | + | |
164 | +a:hover | |
165 | +{ | |
166 | + color: #e88f00; | |
167 | + text-decoration: underline; | |
168 | +} | |
169 | + | |
170 | +body h1, body h2, body h3, body h4, body h5, body h6 | |
171 | +{ | |
172 | + font-family: NeutonRegular, "Lucida Grande", Lucida, Verdana, sans-serif; | |
173 | + font-weight: 400; | |
174 | + color: #373839; | |
175 | + font-style: normal; | |
176 | +} | |
177 | + | |
178 | +#wrap | |
179 | +{ | |
180 | + min-height: 100%; | |
181 | +} | |
182 | + | |
183 | +#header, #footer | |
184 | +{ | |
185 | + width: 100%; | |
186 | + color: #fff; | |
187 | + height: 40px; | |
188 | + position: absolute; | |
189 | + text-align: center; | |
190 | + line-height: 40px; | |
191 | + overflow: hidden; | |
192 | + font-size: 12px; | |
193 | + vertical-align: middle; | |
194 | +} | |
195 | + | |
196 | +#header | |
197 | +{ | |
198 | + background: #000; | |
199 | + top: 0; | |
200 | + font-size: 14px; | |
201 | +} | |
202 | + | |
203 | +#footer | |
204 | +{ | |
205 | + bottom: 0; | |
206 | + background: #000 url(footerbg.png) repeat-x 0 top; | |
207 | + position: relative; | |
208 | + margin-top: -40px; | |
209 | + clear: both; | |
210 | +} | |
211 | + | |
212 | +.header, .footer | |
213 | +{ | |
214 | + width: 750px; | |
215 | + margin-right: auto; | |
216 | + margin-left: auto; | |
217 | +} | |
218 | + | |
219 | +.wrapper | |
220 | +{ | |
221 | + width: 100%; | |
222 | +} | |
223 | + | |
224 | +#top, #top-small, #bottom | |
225 | +{ | |
226 | + width: 100%; | |
227 | +} | |
228 | + | |
229 | +#top | |
230 | +{ | |
231 | + color: #000; | |
232 | + height: 230px; | |
233 | + background: #fff url(headerbg.png) repeat-x 0 top; | |
234 | + position: relative; | |
235 | +} | |
236 | + | |
237 | +#top-small | |
238 | +{ | |
239 | + color: #000; | |
240 | + height: 60px; | |
241 | + background: #fff url(headerbg.png) repeat-x 0 top; | |
242 | + position: relative; | |
243 | +} | |
244 | + | |
245 | +#bottom | |
246 | +{ | |
247 | + color: #222; | |
248 | + background-color: #fff; | |
249 | +} | |
250 | + | |
251 | +.top, .top-small, .middle, .bottom | |
252 | +{ | |
253 | + width: 750px; | |
254 | + margin-right: auto; | |
255 | + margin-left: auto; | |
256 | +} | |
257 | + | |
258 | +.top | |
259 | +{ | |
260 | + padding-top: 40px; | |
261 | +} | |
262 | + | |
263 | +.top-small | |
264 | +{ | |
265 | + padding-top: 10px; | |
266 | +} | |
267 | + | |
268 | +#middle | |
269 | +{ | |
270 | + width: 100%; | |
271 | + height: 100px; | |
272 | + background: url(middlebg.png) repeat-x; | |
273 | + border-top: 2px solid #fff; | |
274 | + border-bottom: 2px solid #b2b2b2; | |
275 | +} | |
276 | + | |
277 | +.app-welcome | |
278 | +{ | |
279 | + margin-top: 25px; | |
280 | +} | |
281 | + | |
282 | +.app-name | |
283 | +{ | |
284 | + color: #000; | |
285 | + font-weight: 700; | |
286 | +} | |
287 | + | |
288 | +.bottom | |
289 | +{ | |
290 | + padding-top: 50px; | |
291 | +} | |
292 | + | |
293 | +#left | |
294 | +{ | |
295 | + width: 350px; | |
296 | + float: left; | |
297 | + padding-right: 25px; | |
298 | +} | |
299 | + | |
300 | +#right | |
301 | +{ | |
302 | + width: 350px; | |
303 | + float: right; | |
304 | + padding-left: 25px; | |
305 | +} | |
306 | + | |
307 | +.align-left | |
308 | +{ | |
309 | + text-align: left; | |
310 | +} | |
311 | + | |
312 | +.align-right | |
313 | +{ | |
314 | + text-align: right; | |
315 | +} | |
316 | + | |
317 | +.align-center | |
318 | +{ | |
319 | + text-align: center; | |
320 | +} | |
321 | + | |
322 | +ul.links | |
323 | +{ | |
324 | + margin: 0; | |
325 | + padding: 0; | |
326 | +} | |
327 | + | |
328 | +ul.links li | |
329 | +{ | |
330 | + list-style-type: none; | |
331 | + font-size: 14px; | |
332 | +} | |
333 | + | |
334 | +form | |
335 | +{ | |
336 | + border-style: none; | |
337 | +} | |
338 | + | |
339 | +fieldset | |
340 | +{ | |
341 | + border-style: none; | |
342 | +} | |
343 | + | |
344 | +input | |
345 | +{ | |
346 | + color: #222; | |
347 | + border: 1px solid #ccc; | |
348 | + font-family: sans-serif; | |
349 | + font-size: 12px; | |
350 | + line-height: 16px; | |
351 | +} | |
352 | + | |
353 | +input[type=text], input[type=password] | |
354 | +{ | |
355 | + width: 205px; | |
356 | +} | |
357 | + | |
358 | +input[type=submit] | |
359 | +{ | |
360 | + background-color: #ddd; | |
361 | + font-weight: 700; | |
362 | +} | |
363 | + | |
364 | +/*Opera Fix*/ | |
365 | +body:before | |
366 | +{ | |
367 | + content: ""; | |
368 | + height: 100%; | |
369 | + float: left; | |
370 | + width: 0; | |
371 | + margin-top: -32767px; | |
372 | +} | ... | ... |
6.88 KB
32.3 KB
49 Bytes
1 | +++ a/wscserver/view/restfulview.py | |
... | ... | @@ -0,0 +1,82 @@ |
1 | +from pyramid_restler.view import RESTfulView | |
2 | +from collections import defaultdict | |
3 | +import json | |
4 | +import hashlib | |
5 | + | |
6 | +class CustomRESTfulView(RESTfulView): | |
7 | + | |
8 | + """ | |
9 | + Classe com parametros personalizados de view dos registros | |
10 | + para as classes WMI | |
11 | + """ | |
12 | + | |
13 | + def check_empty(self, classes, nome_classe): | |
14 | + # Ensure variable is defined | |
15 | + try: | |
16 | + classe = classes[nome_classe] | |
17 | + except KeyError: | |
18 | + classe = {} | |
19 | + return classe | |
20 | + | |
21 | + def render_json(self, value): | |
22 | + | |
23 | + dados_banco = json.loads(self.context.to_json(value, self.fields, | |
24 | + wrap=False)) | |
25 | + | |
26 | + saida = {} | |
27 | + for computador in dados_banco: | |
28 | + # Cria as chaves dos computadores | |
29 | + saida[computador['id_computador']] = {} | |
30 | + | |
31 | + for x in dados_banco: | |
32 | + # Cria as chaves de classes nos computadores | |
33 | + saida[x['id_computador']][x['nm_class_name']] = {} | |
34 | + | |
35 | + for x in dados_banco: | |
36 | + # cria as chaves de propriedades nas classes | |
37 | + saida[x['id_computador']]['data_coleta'] = x['dt_hr_inclusao'] | |
38 | + saida[x['id_computador']][x['nm_class_name']][ | |
39 | + x['nm_property_name']] = x['te_class_property_value'] | |
40 | + | |
41 | + results = [] | |
42 | + # Ordena os objetos json | |
43 | + for computador in saida: | |
44 | + # data_coleta = computador['dt_hr_inclusao'] <TODO> | |
45 | + classes = {} | |
46 | + for classe in saida[computador]: | |
47 | + if classe != 'data_coleta': | |
48 | + # Aqui estou nas classes | |
49 | + classes[classe] = saida[computador][classe] | |
50 | + | |
51 | + # Gera um hash para o id_computador | |
52 | + h = hashlib.sha256() | |
53 | + h.update(str(computador).encode('utf-8')) | |
54 | + computador = h.hexdigest() | |
55 | + | |
56 | + | |
57 | + results.append({ | |
58 | + 'id_reg': computador, | |
59 | + 'Win32_PhysicalMedia': [self.check_empty(classes, 'Win32_PhysicalMedia')], | |
60 | + 'Win32_ComputerSystem': [self.check_empty(classes, 'Win32_ComputerSystem')], | |
61 | + 'Win32_Keyboard': [self.check_empty(classes, 'Win32_Keyboard')], | |
62 | + 'Win32_NetworkAdapter': [self.check_empty(classes, 'Win32_NetworkAdapter')], | |
63 | + 'Win32_PointingDevice': [self.check_empty(classes, 'Win32_PointingDevice')], | |
64 | + 'Win32_MemoryDevice': [self.check_empty(classes, 'Win32_MemoryDevice')], | |
65 | + 'Win32_PhysicalMemory': [self.check_empty(classes, 'Win32_PhysicalMemory')], | |
66 | + 'Win32_BaseBoard': [self.check_empty(classes, 'Win32_BaseBoard')], | |
67 | + 'Win32_Printer': [self.check_empty(classes, 'Win32_Printer')], | |
68 | + 'Win32_Processor': [self.check_empty(classes, 'Win32_Processor')], | |
69 | + 'Win32_DesktopMonitor': [self.check_empty(classes, 'Win32_DesktopMonitor')], | |
70 | + 'Win32_BIOS': [self.check_empty(classes, 'Win32_BIOS')], | |
71 | + }) | |
72 | + | |
73 | + valores = { | |
74 | + 'results': results, | |
75 | + 'result_count': len(results) | |
76 | + } | |
77 | + | |
78 | + response_data = dict( | |
79 | + body=json.dumps(valores), | |
80 | + content_type='application/json' | |
81 | + ) | |
82 | + return response_data | ... | ... |
1 | +++ a/wscserver/views.py | |
... | ... | @@ -0,0 +1,12 @@ |
1 | +from pyramid.view import view_config | |
2 | +from pyramid.response import FileResponse | |
3 | +from wscserver.scripts.createzip import zipcoleta | |
4 | +import os | |
5 | + | |
6 | +@view_config(route_name='download') | |
7 | +def download(request): | |
8 | + filepath = zipcoleta() | |
9 | + # filesize = str(os.path.getsize(filepath)) | |
10 | + response = FileResponse(filepath,request=request, | |
11 | + content_type='application/zip') | |
12 | + return response | |
0 | 13 | \ No newline at end of file | ... | ... |