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标志将在尝试放置 存储桶/键的文件内容:

    文件是否存在?
  1. 文件是否有效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}

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
具有多用户OU和多访问CNs的java Spring LDAP身份验证   java分配的变量神秘地变为null   java比较两个表或文本文件,并用行号和列输出差异   java如何在同一构建目录中设置netbeans中的文件路径?   java如何在avro模式中定义byte[]和LocalDateTime?   java在多个活动和片段中使用相同的微调器。实施它的最佳方式是什么?   java使用OOPS扩展已编写的类   java如何在特定于文件的基础上禁用Eclipse中的编译器警告?   java将字符串转换为日期的格式不正确   Java文件从一台服务器复制到另一台服务器   java Jacksonal和JacksonApperasl的最新jar版本是什么?   java如何在使用selenium chrome web驱动程序时禁用chrome中的身份验证提示   java是什么。推荐人和推荐人。Eclipse工作区中的元数据以及它们是否应该在设备之间同步?   java我应该把sqlite db文件放在哪里,这样我的jar就可以访问它了?这对连接字符串有何影响?   java如何在选择单元格时设置JTable标题背景色   java Cassandra 2 Hector:复合行键上的范围切片查询返回空行   java方法注释继承   Python字节对象与java   java Android和从sqlite数据库加载listview