Skip to content

idcf/idcfcloud-cli

Repository files navigation

idcfcloud-cli

Installation

Note: requires Ruby 2.7.0 or higher.

Carry out the next command to initialize.

$ idcfcloud init

If you want each user to have their own configuration file, use the "--no-global" option and have the file created in the following:

~/.idcfcloud/config.ini

Install idcfcloud-cli by using the following command:

$ gem install idcfcloud

or

$ git clone [idcfcloud]
$ bundle install --path vendor/bundle

Usage

$ idcfcloud <serviceName> <command> [attributes] [option]

If you want to set more than one attribute, use the json form.

'{"ipaddress": "0.0.0.0", "port": 80}'

Or you can also define the GET or POST parameter in the JSON file and hand it using xargs.

cat [attributes file path] | echo -e "'"$(cat)"'" | xargs -L1 idcfcloud <serviceName> <command> [option]

Service Options

option alias default note
output o json Output formats (table/json/xml/csv)
profile default Switching profiles
api-key [Configuration file description] API Key
secret-key [Configuration file description] Secret Key
no-ssl Not using SSL
no-vssl Not using Verify SSL
json-path j Narrowing the data part of a return value using json-path
https://github.com/joshbuddy/jsonpath
fields f Limiting the return value to be displayed (applied only to the latest hash)
Punctuation: comma (",")
version [latest] The API version to be used

How to Narrow Down (Examples)

idcfcloud your list_billing_history --json-path '$.data[?(@.month=="2017-10")]' --fields month,billing_amount

ServiceName

Compute

ILB

DNS

Your

Autoscale

Common Features

versions

Get a supported API version.

$ idcfcloud your versions

Compute

http://docs.idcf.jp/cloud/api/

ILB

https://github.com/idcf/idcf-ilb-ruby

ILB Extend Commands

add server

$ idcfcloud ilb add_server_for_protocol <lb_id> <protocol> <protocol_port> <data> [option]
data type example note
ipaddress String 0.0.0.0 no cidr
port Numeric 80

delete server

$ idcfcloud ilb delete_server_for_protocol <lb_id> <protocol> <protocol_port> <data> [option]

check_job

$ idcfcloud ilb check_job <job_id>

sslalgorithms_ids

$ idcfcloud ilb sslalgorithms_ids

DNS

http://docs.idcf.jp/cloud/dns/#s_fid=4FEB16B56007BA5C-0BFB42ABA668ADA8

Your

http://docs.idcf.jp/cloud/billing/

Autoscale

https://idcf.jp/api-docs/apis/?id=docs_compute-autoscale_reference

Development && Test

Running the following test code is possible, but not recommended nor supported. Run only a code of a target.

🚨NOTE 🚨

  • Be sure to specify test/run_test.rb before the test target.
  • The test environment is not standalone. You need to apply for services and prepare your own environment. At least an ILB is required to pass all tests.
  • If you do not specify the region properly with the environment variable TEST_REGION (default: jp-east), the test will not pass.
$ TEST_REGION=your_region bundle exec ruby test/run_test.rb idcf/cli/controller/test_your.rb

In order to avoid collapsed setting in ILB, make sure you understand how things work before running a code.

environments

name description
TEST_REGION Region used in the test. (jp-east・jp-east-2・jp-east-3・jp-west)

Contributing

  1. Fork it ( https://github.com/idcf/idcfcloud-cli/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push the branch (git push origin my-new-feature)
  5. Create a new Pull Request