Riak工具
riak_cli_tool的Python项目详细描述
这是一个与riak交互的帮助脚本。
在开始使用此实用程序之前,您应该知道它是为 不仅与Riak交互,还与Riak的特定实例交互 支持Enstratius云管理软件套件。
这里有一些可用的方法,例如--elevate-api-key没有 意思是在安装RIAK以支持 Enstratius云管理软件套件。
当这个脚本是为了与支持Enstratius的Riak交互时, Enstratius或Dell绝不支持脚本本身 软件。
警告语
使用此脚本违反了john文森特在其 RIAK概述。自行承担风险。
安装
sudo easy_install riak-cli-tool
或
sudo pip install riak-cli-tool
二级指数
enstratius大量使用二级指标。这张纸条应该是 查找、保存和利用现有二次索引更新桶 有它们的内容。
这不是很好的测试。
配置文件
没有。您需要在您的个人资料中添加导出声明:
exportriak_host='127.0.0.1'
在尝试使用该实用程序之前,请确保它是源代码。
端口设置为8098。
命令
列出所有桶
这通常是个坏主意。
es-riak --list-buckets {"buckets": ["content_template", "configuration_management_system", "frontend_configuration"]}
列出bucket中的所有键
这通常是个坏主意。
es-riak --list-keys -b content_template {"keys": ["passwordChangeSubject", "optimusEngineEmail", "changeAccountData_en"]}
显示存储桶的内容
es-riak --show -b frontend_configuration -k 1{"SCHEMA_VERSION": "0", "autoProvisionUsers": "true", "defaultAuthenticationMethod": "NATIVE", "defaultGroupIds": [], "forceDefaultAuthentication": "true", "forceDeny": [], "masterNetworkId": 999, "systemName": "Enstratius"}
将存储桶/密钥的内容保存到文件:
es-riak --save save_file.json -b frontend_configuration -k 1
Saved contents of:
http://172.16.243.131:8098/buckets/frontend_configuration/keys/1
to
save_file.json
检查保存文件的内容:
cat save_file.json | python -mjson.tool {"SCHEMA_VERSION": "0", "autoProvisionUsers": "true", "defaultAuthenticationMethod": "NATIVE", "defaultGroupIds": [], "forceDefaultAuthentication": "true", "forceDeny": [], "masterNetworkId": 1, "systemName": "Enstratius"}
通过传入json文件来更新bucket/key的内容
es-riak --update -b frontend_configuration -k 1 -i input.json Valid JSON updating! Saved contents of: http://172.16.243.131:8098/buckets/frontend_configuration/keys/1 to input.json.original Done. To view your changes, call: es-riak --show -b frontend_configuration -k 1
其中文件input.json包含内容:
cat input.json | python -mjson.tool {"SCHEMA_VERSION": "0", "autoProvisionUsers": "true", "defaultAuthenticationMethod": "NATIVE", "defaultGroupIds": [], "forceDefaultAuthentication": "true", "forceDeny": [], "masterNetworkId": 999, "systemName": "Enstratius"}
更新后的存储桶内容:
es-riak --show -b frontend_configuration -k 1{"SCHEMA_VERSION": "0", "autoProvisionUsers": "true", "defaultAuthenticationMethod": "NATIVE", "defaultGroupIds": [], "forceDefaultAuthentication": "true", "forceDeny": [], "masterNetworkId": 999, "systemName": "Enstratius"}
对桶/钥匙进行“放置”
一个简单的旧“put”不同于更新,因为没有保存 在放入 传递给bucket/key的文件的内容。
以上,如果有给定桶/密钥的存在内容, 如果-b frontend_configuration-k 1和对该组合进行put,则 现有内容将立即被覆盖。
要将文件内容放入bucket/key,请执行如下调用:
es-riak --put -b frontend_configuration -k 1 -i input.json
input.json的内容可能是:
{"SCHEMA_VERSION":"0","autoProvisionUsers":"true","defaultAuthenticationMethod":"NATIVE","forceDefaultAuthentication":"true","masterNetworkId":1,"systemName":"Enstratius Hosted","systemReplyEmail":"systemreplyemail@enstratius.com","systemSupportEmail":"systemsupportemail@enstratius.com","systemSupportUrl":"http://system.support.url.com","systemUserConsoleUrl":"https://system.user.console.url/test"}
--put标志将在尝试放置 存储桶/键的文件内容:
-
文件是否存在?
- 文件是否有效json?
So be it.
Valid JSON
Putting the contents of
input.json
to
http://127.0.0.1:8098/buckets/frontend_configuration/keys/1
Done.
To view the results of this action, call:
es-riak --show -b frontend_configuration -k 1
验证输入json文件
有效的json:
es-riak --validate -i input.json Valid JSON
无效的json:
es-riak --validate -i invalid.txt Invalid JSON
其中invalid.txt的内容为:
{"SCHEMA_VERSION": "0", "autoProvisionUsers": "true", "defaultAuthenticationMethod": "NATIVE", "defaultGroupIds": [], "forceDefaultAuthentication": "true", "forceDeny": [], "masterNetworkId": 999, "systemName": }
提升api密钥
可以使用此实用程序将API密钥提升为“系统”密钥。
es-riak --elevate-api-key -b api_key -k <your_api_access_key>
这类交互的示例如下:
es-riak --show -b api_key -k DJFLPQSDJAUHLMLPDJIO {"SCHEMA_VERSION": "0", "accessKey": "DJFLPQSDJAUHLMLPDJIO", "activationTimestamp": 1368202730181, "billingAccount": 52901, "customer": 51400, "description": "test key", "encryption": "TWO", "name": "Test", "network": 50069, "secretKey": "ee235a772d0def0b069d6364cda6a34e8d6d9eca6afcd94d37770e12c6d6d735df9a75fb64bd0a1cb18911a7ed4744fb"}
没有必要先发出show命令,我这样做只是为了突出不同之处。
使用此信息发出命令:
es-riak --elevate-api-key -b api_key -k DJFLPQSDJAUHLMLPDJIO
此命令将没有输出。
提升后的桶内容:
es-riak --show -b api_key -k DJFLPQSDJAUHLMLPDJIO {"SCHEMA_VERSION": "0", "accessKey": "DJFLPQSDJAUHLMLPDJIO", "activationTimestamp": 1368202730181, "billingAccount": 52901, "customer": 51400, "customerManagementKey": true, "description": "test key", "encryption": "TWO", "name": "Test", "network": 50069, "secretKey": "ee235a772d0def0b069d6364cda6a34e8d6d9eca6afcd94d37770e12c6d6d735df9a75fb64bd0a1cb18911a7ed4744fb", "systemManagementKey": true}