saltstack mysql模块_SaltStack工具中MySQL的模块返回值问题解决
由于管理系統(tǒng)中對mysql管理的開發(fā)中用到了saltstack集成的mysql模塊其中一個主要的功能是 mysql.query
官方文檔中的兩個示例:
salt.modules.mysql.query(database, query, **connection_args)
Run an arbitrary SQL query and return the results or the number of affected rows.
CLI Example:
salt '*' mysql.query mydb "UPDATE mytable set myfield=1 limit 1"
Return data:
{'query time': {'human': '39.0ms', 'raw': '0.03899'}, 'rows affected': 1L}
CLI Example:
salt '*' mysql.query mydb "SELECT id,name,cash from users limit 3"
Return data:
{'columns': ('id', 'name', 'cash'),
'query time': {'human': '1.0ms', 'raw': '0.001'},
'results': ((1L, 'User 1', Decimal('110.000000')),
(2L, 'User 2', Decimal('215.636756')),
(3L, 'User 3', Decimal('0.040000'))),
'rows returned': 3L}
我測試的一個示例:
salt www.pyadmin.com mysql.query salt "explain select * from salt_events"
www.pyadmin.com:
----------
query time:
----------
human:
14.0ms
raw:
0.01402
rows affected:
1
觀察官方的和我測試的輸出顯示結(jié)果來看只有 SELECT 語句顯示了希望的結(jié)果。
那么我要顯示 explain的結(jié)果呢? 查看了好多遍官方的文檔也沒有頭緒,只好從源代碼入手了
首先找到這個相關(guān)的模塊--mysql
主要位置在 ?/usr/local/lib/python2.7/dist-packages/salt/modules/mysql.py
注意:有的系統(tǒng)是在?site-packages 文件夾下
編輯這個文件找到如下位置:
ret?=?{}
ret['query?time']?=?{'human':?elapsed_h,?'raw':?str(round(elapsed,?5))}
select_keywords?=?["SELECT",?"SHOW",?"DESC"]
select_query?=?False
for?keyword?in?select_keywords:
if?query.upper().strip().startswith(keyword):
select_query?=?True
break
if?select_query:
ret['rows?returned']?=?affected
columns?=?()
for?column?in?cur.description:
columns?+=?(column[0],)
ret['columns']?=?columns
ret['results']?=?results
return?ret
else:
ret['rows?affected']?=?affected
return?ret
在字典里面增加 ?“EXPLAIN” 這樣一個元素
select_keywords?=?["SELECT",?"SHOW",?"DESC",?"EXPLAIN"]
然后我們在來查看一下執(zhí)行結(jié)果的輸出:
www.pyadmin.com:
----------
columns:
- id
- select_type
- table
- partitions
- type
- possible_keys
- key
- key_len
- ref
- rows
- filtered
- Extra
query time:
----------
human:
0.24s
raw:
0.23805
results:
|_
- 1
- SIMPLE
- salt_events
- None
- ALL
- None
- None
- None
- None
- 3707
- 100.00
- None
rows returned:
1
和修改之前的輸出結(jié)果對比多了results 這一項。
本文轉(zhuǎn)自andylhz 51CTO博客,原文鏈接:http://blog.51cto.com/andylhz2009/1951339,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的saltstack mysql模块_SaltStack工具中MySQL的模块返回值问题解决的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语言input和if els
- 下一篇: mysql7种join连接_mysql