magellan-cli 0.8.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c7d893925c8fc3fd547592488118addd0fada70
4
- data.tar.gz: b3edf628a1b6574d0dcaba6f5f6fe5b4af7bf44a
3
+ metadata.gz: d237ca63be36c479c3d1efe64d2200e0acb8bac6
4
+ data.tar.gz: 753e9536a5ab579581839603c5d73a7f7762470a
5
5
  SHA512:
6
- metadata.gz: 5f35b29d379c475798dd215020796e8eb19ccee2ac429a9417470acc1b9fa97cb32083511c69ff8a23605ee17f35faf41c2b98468c6c12ad2b7bf73627ce9e33
7
- data.tar.gz: f00de5c3575a1c580aafc50f2b59e6c58ae08e8e4777b330c5af683c1c5f0232895d71188c43320d63bd270f2dbaa70f462a1269a6617bdfac52cffa9910ace6
6
+ metadata.gz: 2871fe33e13b493ba2302c34423dd9d628fb3f224e0deb420be698a789074e7d4bba23ed67ed08cb9a82f29ff29f32a4cd3ffc9788c4f7405f73c7b8e37b7e81
7
+ data.tar.gz: 7a4157af37faa12ee46b3d0b615e56cf454948edcf725eceb9a7521f5499b791da14db7f2db3e5e60edb193a2daa5670d9d574ac04f4b9a8e5b819b1b3f0b3ec
data/Gemfile CHANGED
@@ -7,6 +7,7 @@ group :development do
7
7
  gem "pry"
8
8
  gem "pry-byebug"
9
9
  gem "pry-stack_explorer"
10
- gem "simplecov"
10
+ gem 'simplecov' , require: false
11
+ gem 'simplecov-rcov', require: false
11
12
  gem "fuubar"
12
13
  end
data/Gemfile.lock CHANGED
@@ -1,12 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- magellan-cli (0.8.3)
4
+ magellan-cli (0.9.0)
5
5
  activesupport (~> 4.1.4)
6
6
  groovenauts-thor
7
7
  httpclient (~> 2.5)
8
8
  i18n
9
9
  libmagellan (~> 0.2.4)
10
+ logger_pipe (~> 0.3.1)
10
11
  nokogiri
11
12
  psych (>= 2.0.0, <= 2.0.8)
12
13
  text-table (~> 1.2.3)
@@ -14,7 +15,7 @@ PATH
14
15
  GEM
15
16
  remote: https://rubygems.org/
16
17
  specs:
17
- activesupport (4.1.12)
18
+ activesupport (4.1.13)
18
19
  i18n (~> 0.6, >= 0.6.9)
19
20
  json (~> 1.7, >= 1.7.7)
20
21
  minitest (~> 5.1)
@@ -32,6 +33,7 @@ GEM
32
33
  debugger-linecache (1.2.0)
33
34
  diff-lcs (1.2.5)
34
35
  docile (1.1.5)
36
+ extlib (0.9.16)
35
37
  faraday (0.9.1)
36
38
  multipart-post (>= 1.2, < 3)
37
39
  fuubar (2.0.0)
@@ -42,13 +44,14 @@ GEM
42
44
  i18n (0.7.0)
43
45
  json (1.8.3)
44
46
  jwt (1.5.1)
45
- libmagellan (0.2.4)
47
+ libmagellan (0.2.5)
46
48
  activesupport
47
49
  mqtt (~> 0.3.1)
48
- signet (~> 0.5.0)
50
+ signet (~> 0.6.0)
51
+ logger_pipe (0.3.1)
49
52
  method_source (0.8.2)
50
53
  mini_portile (0.6.2)
51
- minitest (5.8.0)
54
+ minitest (5.8.1)
52
55
  mqtt (0.3.1)
53
56
  multi_json (1.10.1)
54
57
  multipart-post (2.0.0)
@@ -79,16 +82,19 @@ GEM
79
82
  rspec-support (~> 3.0.0)
80
83
  rspec-support (3.0.4)
81
84
  ruby-progressbar (1.7.1)
82
- signet (0.5.1)
83
- addressable (>= 2.2.3)
84
- faraday (>= 0.9.0.rc5)
85
- jwt (>= 0.1.5)
86
- multi_json (>= 1.0.0)
85
+ signet (0.6.1)
86
+ addressable (~> 2.3)
87
+ extlib (~> 0.9)
88
+ faraday (~> 0.9)
89
+ jwt (~> 1.5)
90
+ multi_json (~> 1.10)
87
91
  simplecov (0.9.1)
88
92
  docile (~> 1.1.0)
89
93
  multi_json (~> 1.0)
90
94
  simplecov-html (~> 0.8.0)
91
95
  simplecov-html (0.8.0)
96
+ simplecov-rcov (0.2.3)
97
+ simplecov (>= 0.4.1)
92
98
  slop (3.5.0)
93
99
  text-table (1.2.4)
94
100
  thread_safe (0.3.5)
@@ -108,6 +114,7 @@ DEPENDENCIES
108
114
  rake (~> 10.0)
109
115
  rspec
110
116
  simplecov
117
+ simplecov-rcov
111
118
 
112
119
  BUNDLED WITH
113
- 1.10.5
120
+ 1.10.6
@@ -1,6 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require "magellan/cli"
3
3
 
4
+ require 'httpclient/webagent-cookie' # it should be required before httpclient to prevent using http-cookie.gem
4
5
  require 'httpclient'
5
6
  require 'json'
6
7
  require 'uri'
@@ -8,7 +8,7 @@ en:
8
8
  ${HOME}/.config/magellan/magellan-cli
9
9
  You can specify your own configuration file path by setting environment variable
10
10
  MAGELLAN_CLI_CONFIG_FILE.
11
-
11
+
12
12
  !! migration from 0.4.0 and before !!
13
13
  magellan-cli 0.4.0 and before saves configuration file into `.magellan-cli'
14
14
  in current directory.
@@ -109,8 +109,8 @@ en:
109
109
  set_container_num: "Set the number of %{containers_name} for the selected %{image_name}"
110
110
  reload: "Reload the last selections"
111
111
  cmd_create:
112
- type: "-t development|staging|production. specify Stage Type"
113
- size: "-s micro|standard. specify Stage Size"
112
+ type: "-t development|staging|production specify Stage Type"
113
+ size: "-s micro|standard specify Stage Size"
114
114
  cmd_release_now:
115
115
  async: "-A async mode. release_now returns soon"
116
116
  interval: "-i polling interval(seconds)"
@@ -120,6 +120,47 @@ en:
120
120
  async: "-A async mode. release_now returns soon"
121
121
  interval: "-i polling interval(seconds)"
122
122
  timeout: "-t timeout(seconds)"
123
+ cloudsql_instance:
124
+ cmd:
125
+ create: "Create a new %{resource_name} by INSTANCE"
126
+ delete: "Delete the %{resource_name} by INSTANCE"
127
+ list: "Show list of the %{resource_name}"
128
+ cmd_create:
129
+ tier: "Tier of Cloud SQL instance. see also https://cloud.google.com/sql/pricing"
130
+ region: "Region where the Cloud SQL instance works"
131
+ activation-policy: "The activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE."
132
+ skip-assign-ip: "Specified unless the instance must be assigned an IP address."
133
+ authorized-networks: "The list of external networks that are allowed to connect to the instance. Specified in CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24)."
134
+ gce-zone: "The preferred Compute Engine zone (e.g. us-central1-a, us-central1-b, etc.)."
135
+ pricing-plan: "The pricing plan for this instance."
136
+ password: "The password for the root user."
137
+ account: "Google Cloud Platform user account to use for invocation."
138
+ log-http: "Log all HTTP server requests and responses to stderr."
139
+ project: "Google Cloud Platform project ID to use for this invocation."
140
+ trace-token: "Token used to route traces of service requests for investigation of issues."
141
+ user-output-enabled: "Print user intended output to the console."
142
+ verbosity: "Override the default verbosity for this command. This must be a standard logging verbosity level: [debug, info, warning, error, critical, none] (Default: [warning])."
143
+ aync: "Ignored even if it's given."
144
+ format: "Ignored even if it's given."
145
+ env_head: |
146
+ Set the following text to "Environment Variables" of your worker to access the database from your worker.
147
+ --------------------------------------------------
148
+ env_body: |
149
+ MYSQL_HOST: %{mysql_host}
150
+ MYSQL_PORT: %{mysql_port}
151
+ MYSQL_DATABASE: %{mysql_database}
152
+ MYSQL_USERNAME: %{mysql_username}
153
+ MYSQL_PASSWORD: %{mysql_password}
154
+ env_tail: |
155
+ --------------------------------------------------
156
+ (Modify the value for MYSQL_DATABASE if you need)
157
+ You need to use environment variables to get connection configurations like this: https://github.com/tengine/magellan-rails-example/blob/master/config/database.yml
158
+ messages:
159
+ starting_launch: "Now launching Cloud SQL instance. It will take a few minutes."
160
+ gcloud_not_found: |
161
+ gcloud command not found. Install Google Cloud SDK to use
162
+ magellan-cli cloudsql-instance command.
163
+ For more information see https://cloud.google.com/sdk/
123
164
  team:
124
165
  cmd:
125
166
  create: "Create a new %{resource_name} with NAME and ROLE"
@@ -6,7 +6,7 @@ ja:
6
6
  magellan-cli はログイン情報、リソースの選択状態などの情報を設定ファイルに保存します。
7
7
  設定ファイルのファイルパスは ${HOME}/.config/magellan/magellan-cli が用いられます。
8
8
  設定ファイルのファイルパスは環境変数 MAGELLAN_CLI_CONFIG_FILE で指定可能です。
9
-
9
+
10
10
  !! 0.4.0 からの移行について !!
11
11
  magellan-cli 0.4.0 までは設定ファイルとしてカレントディレクトリに .magellan-cli ファイルを
12
12
  作成していました。
@@ -108,7 +108,7 @@ ja:
108
108
  reload: "最後にselectされたものをロードし直します"
109
109
  cmd_create:
110
110
  type: "-t development|staging|production いずれかのTYPEを指定してください"
111
- size: "-s micro|standard. いずれがのSIZEを指定してください"
111
+ size: "-s micro|standard いずれかのSIZEを指定してください"
112
112
  cmd_release_now:
113
113
  async: "-A 非同期モード。リリースの終了を待たずにコマンドを終了します"
114
114
  interval: "-i 状態を取得する間隔を秒で指定します"
@@ -118,6 +118,48 @@ ja:
118
118
  async: "-A 非同期モード。リリースの終了を待たずにコマンドを終了します"
119
119
  interval: "-i 状態を取得する間隔を秒で指定します"
120
120
  timeout: "-t タイムアウトを秒で指定します"
121
+ cloudsql_instance:
122
+ cmd:
123
+ create: "INSTANCEを指定して%{resource_name}を登録します"
124
+ delete: "INSTANCEを指定して%{resource_name}を削除します"
125
+ list: "%{resource_name}の一覧を表示します"
126
+ cmd_create:
127
+ # それぞれの訳はDevelopers Consoleのものを使っています
128
+ tier: "Cloud SQLのインスタンスの階層。詳しくは https://cloud.google.com/sql/pricing を参照してください。"
129
+ region: "Cloud SQLのインスタンスを動かす地域"
130
+ activation-policy: "Cloud SQLのインスタンスを有効にするポリシー"
131
+ skip-assign-ip: "IPv4 アドレスを割り当てない"
132
+ authorized-networks: "承認済みネットワーク"
133
+ gce-zone: "希望する場所"
134
+ pricing-plan: "料金プラン"
135
+ password: "Cloud SQLのrootユーザのパスワード"
136
+ account: "GCPユーザアカウント"
137
+ log-http: "全てのHTTPのリクエストとレスポンスを標準エラー出力に出力します"
138
+ project: "GCPプロジェクト"
139
+ trace-token: "トレーストークン"
140
+ user-output-enabled: "コンソールにユーザを出力します"
141
+ verbosity: "ログレベル"
142
+ async: "指定しても無視されます"
143
+ format: "指定しても無視されます"
144
+ env_head: |
145
+ 起動したDBにWorkerから接続するためには、下記の設定を起動するWorkerの"Environment Variables"に設定してください
146
+ --------------------------------------------------
147
+ env_body: |
148
+ MYSQL_HOST: %{mysql_host}
149
+ MYSQL_PORT: %{mysql_port}
150
+ MYSQL_DATABASE: %{mysql_database}
151
+ MYSQL_USERNAME: %{mysql_username}
152
+ MYSQL_PASSWORD: %{mysql_password}
153
+ env_tail: |
154
+ --------------------------------------------------
155
+ (MYSQL_DATABASEの値は必要に応じて変更してください)
156
+ Workerには予め https://github.com/tengine/magellan-rails-example/blob/master/config/database.yml のように環境変数から接続先を取得する設定が必要です。
157
+ messages:
158
+ starting_launch: "Cloud SQLのインスタンスを起動しています。数分かかりますのでお待ち下さい。"
159
+ gcloud_not_found: |
160
+ gcloudコマンドが見つかりませんでした。
161
+ ご利用になるためにはGoogle Cloud SDKをインストールして頂く必要があります。
162
+ 詳しくはこちらをご覧ください。 https://cloud.google.com/sdk/
121
163
  team:
122
164
  cmd:
123
165
  create: "NAMEとROLEを指定して%{resource_name}を登録します"
@@ -24,6 +24,7 @@ module Magellan
24
24
  autoload :Container , "magellan/cli/resources/container"
25
25
 
26
26
  autoload :Cloudsql, "magellan/cli/resources/cloudsql"
27
+ autoload :CloudsqlInstance, "magellan/cli/resources/cloudsql_instance"
27
28
 
28
29
  autoload :Deletable, "magellan/cli/resources/deletable"
29
30
 
@@ -41,6 +42,7 @@ module Magellan
41
42
  "Image" => "image",
42
43
  "Container" => "container",
43
44
  "Cloudsql" => "cloudsql",
45
+ "CloudsqlInstance" => "cloudsql_instance",
44
46
  }
45
47
 
46
48
  class << self
@@ -51,7 +53,7 @@ module Magellan
51
53
  def dependants_on(klass)
52
54
  name = klass.name.split(/::/).last
53
55
  res_name = MAPPING[name] or raise "unknown class named #{klass.name}"
54
- concrete_classes.select{|c| c.resource_dependency && !!c.resource_dependency[res_name] }
56
+ concrete_classes.select{|c| c.respond_to?(:resource_dependency) &&c.resource_dependency && !!c.resource_dependency[res_name] }
55
57
  end
56
58
  end
57
59
 
@@ -0,0 +1,156 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "magellan/cli/resources"
3
+
4
+ require 'logger'
5
+ require 'securerandom'
6
+
7
+ require 'logger_pipe'
8
+ require 'text-table'
9
+
10
+ module Magellan
11
+ module Cli
12
+ module Resources
13
+
14
+ class CloudsqlInstance < ::Magellan::Cli::Base
15
+
16
+ desc "create INSTANCE", I18n.t(:create, scope: [:resources, :cloudsql_instance, :cmd], resource_name: "CloudSQL instance")
17
+ OPTIONS = {
18
+ create: {
19
+ "tier" => {type: :string , default: "D0" , enum: %w[D0 D1 D2 D4 D8 D16 D32]},
20
+ "region" => {type: :string , default: "asia-east1"},
21
+ "activation-policy" => {type: :string , default: "ON_DEMAND" , enum: %w[ALWAYS NEVER ON_DEMAND]},
22
+ "skip-assign-ip" => {type: :boolean },
23
+ "authorized-networks" => {type: :string , default: "0.0.0.0/0" },
24
+ "gce-zone" => {type: :string , default: "asia-east1-c"},
25
+ "pricing-plan" => {type: :string , default: "PER_USE" , enum: %w[PACKAGE PER_USE]},
26
+ },
27
+ password: {
28
+ "password" => {aliases: "-p", type: :string},
29
+ },
30
+ common: {
31
+ "account" => {type: :string},
32
+ "log-http" => {type: :boolean},
33
+ "project" => {type: :string},
34
+ "trace-token" => {type: :string},
35
+ "user-output-enabled" => {type: :boolean},
36
+ "verbosity" => {type: :string, default: "info", enum: %w[debug info warning error critical none]},
37
+ },
38
+ removed: {"async" => {type: :boolean}},
39
+ overwritten: { "format" => {type: :string, default: "json"}, }
40
+ }
41
+ CREATE_OPTION_SCOPE = [:resources, :cloudsql_instance, :cmd_create]
42
+ OPTIONS.each do |cmd, options|
43
+ options.each do |name, hash|
44
+ method_option(name, {desc: I18n.t(name, scope: CREATE_OPTION_SCOPE)}.update(hash))
45
+ end
46
+ end
47
+ def create(instance, *args)
48
+ $stderr.puts(I18n.t(:starting_launch, scope: [:resources, :cloudsql_instance, :messages]))
49
+ options["format"] = "json"
50
+ create_args = build_args(options, [:common, :create])
51
+ create_args << "--assign-ip" unless options["skip-assign-ip"]
52
+ res1_text = gcloud("sql instances create #{instance}", create_args + args)
53
+ res1 = res1_text.nil? ? nil : JSON.parse(res1_text)
54
+
55
+ # p res1
56
+ # res1
57
+ # {
58
+ # "currentDiskSize"=>"281069967", "databaseVersion"=>"MYSQL_5_6", "etag"=>"\"wEP3hMpsWqL85yYiZI8N_zVwr4g/MQ\"",
59
+ # "instance"=>"magellan-cli-testdbi03", "instanceType"=>"CLOUDSQL_INSTANCE",
60
+ # "ipAddresses"=>[{"ipAddress"=>"173.194.229.107"}],
61
+ # "ipv6Address"=>"2001:4860:4864:1:fb5a:76f:71c1:f2f3",
62
+ # "kind"=>"sql#instance", "maxDiskSize"=>"268435456000", "project"=>"scenic-doodad-617",
63
+ # "region"=>"asia-east1",
64
+ # "serverCaCert"=>{...},
65
+ # "settings"=>{
66
+ # "activationPolicy"=>"ON_DEMAND",
67
+ # "backupConfiguration"=>[{"binaryLogEnabled"=>false, "enabled"=>false, "id"=>"2057f912-faf7-4a5d-a16d-c5a12a9dceca", "kind"=>"sql#backupConfiguration", "startTime"=>"23:00"}],
68
+ # "ipConfiguration"=>{"authorizedNetworks"=>["0.0.0.0/0"], "enabled"=>true, "kind"=>"sql#ipConfiguration"},
69
+ # "kind"=>"sql#settings",
70
+ # "locationPreference"=>{"kind"=>"sql#locationPreference", "zone"=>"asia-east1-c"},
71
+ # "pricingPlan"=>"PACKAGE", "replicationType"=>"SYNCHRONOUS", "settingsVersion"=>"1",
72
+ # "tier"=>"D0"
73
+ # },
74
+ # "state"=>"RUNNABLE"
75
+ # }
76
+
77
+ # % gcloud sql instances create magellan-cli-testdbi06 --tier=D0 --region=asia-east1 --activation-policy=ON_DEMAND --authorized-networks=0.0.0.0/0 --gce-zone=asia-east1-c --verbosity=debug --assign-ip
78
+ # DEBUG: Running gcloud.sql.instances.create with Namespace(__calliope_internal_deepest_parser=ArgumentParser(prog='gcloud.sql.instances.create', usage=None, description='Creates a new Cloud SQL instance.', version=None, formatter_class=<class 'argparse.HelpFormatter'>, conflict_handler='error', add_help=False), account=None, activation_policy='ON_DEMAND', api_version=None, assign_ip=True, async=False, authorized_gae_apps=[], authorized_networks=['0.0.0.0/0'], backup=True, backup_start_time=None, cmd_func=<bound method Command.Run of <googlecloudsdk.calliope.backend.Command object at 0x10767cc50>>, command_path=['gcloud', 'sql', 'instances', 'create'], configuration=None, database_flags=None, database_version='MYSQL_5_6', document=None, enable_bin_log=None, follow_gae_app=None, format=None, gce_zone='asia-east1-c', h=None, help=None, http_timeout=None, instance='magellan-cli-testdbi06', log_http=None, master_instance_name=None, pricing_plan='PER_USE', project=None, quiet=None, region='asia-east1', replication=None, require_ssl=None, tier='D0', trace_email=None, trace_log=False, trace_token=None, user_output_enabled=None, verbosity='debug', version=None).
79
+ # Creating Cloud SQL instance...done.
80
+ # Created [https://www.googleapis.com/sql/v1beta3/projects/scenic-doodad-617/instances/magellan-cli-testdbi06].
81
+ # DEBUG: Explict Display.
82
+ # NAME REGION TIER ADDRESS STATUS
83
+ # magellan-cli-testdbi06 asia-east1 D0 173.194.249.189 RUNNABLE
84
+
85
+ host = res1['ipAddresses'].first['ipAddress']
86
+ t = Text::Table.new
87
+ t.head = %w[NAME REGION TIER ADDRESS STATUS]
88
+ t.rows = [[res1['instance'], res1['region'], res1['settings']['tier'], host, res1['state']]]
89
+ $stderr.puts t.to_s
90
+
91
+ pw_options = options.dup
92
+ pw_options["password"] ||= SecureRandom.hex(8)
93
+ pw_args = build_args(pw_options, [:common, :password])
94
+ res2 = gcloud("sql instances set-root-password #{instance}", pw_args)
95
+ # res2.inspect #=> []
96
+ $stderr.puts "\e[32mCOMPLETE\e[0m"
97
+
98
+ $stderr.puts I18n.t(:env_head, scope: CREATE_OPTION_SCOPE)
99
+ env_options = {
100
+ scope: CREATE_OPTION_SCOPE,
101
+ mysql_host: host,
102
+ mysql_port: 3306,
103
+ mysql_database: "#{instance}_production",
104
+ mysql_username: "root",
105
+ mysql_password: pw_options["password"],
106
+ }
107
+ $stdout.puts I18n.t(:env_body, env_options)
108
+ $stderr.puts I18n.t(:env_tail, scope: CREATE_OPTION_SCOPE)
109
+ end
110
+
111
+ desc "delete INSTANCE", I18n.t(:delete, scope: [:resources, :cloudsql_instance, :cmd], resource_name: "CloudSQL instance")
112
+ def delete(instance, *args)
113
+ check_gcloud_command
114
+ system("gcloud sql instances delete #{instance} #{args.join(' ')} 2>&1")
115
+ end
116
+
117
+ desc "list", I18n.t(:list, scope: [:resources, :cloudsql_instance, :cmd], resource_name: "CloudSQL instance")
118
+ def list(*args)
119
+ check_gcloud_command
120
+ system("gcloud sql instances list #{args.join(' ')} 2>&1")
121
+ end
122
+
123
+ no_commands do
124
+ def logger
125
+ unless @logger
126
+ @logger = Logger.new($stderr)
127
+ @logger.level = verbose? ? Logger::INFO : Logger::WARN
128
+ end
129
+ @logger
130
+ end
131
+
132
+ def build_args(options, commands)
133
+ opts = options.dup
134
+ OPTIONS[:removed].keys.each{|k| opts.delete(k)}
135
+ cmd_keys = (commands + [:overwritten]).map{|cmd| OPTIONS[cmd].keys }.flatten
136
+ opts.delete_if{|k,_| !cmd_keys.include?(k)}
137
+ opts.map{|k,v| "--#{k}=#{v}"}
138
+ end
139
+
140
+ def gcloud(subcommand, arguments)
141
+ check_gcloud_command
142
+ cmd = "gcloud #{subcommand} #{arguments.join(' ')}"
143
+ LoggerPipe.run(logger, cmd, dry_run: dryrun?, returns: :stdout, logging: :stderr)
144
+ end
145
+
146
+ def check_gcloud_command
147
+ return true unless `which gcloud`.empty?
148
+ $stderr.puts("\e[31m%s\e[0m" % I18n.t(:gcloud_not_found, scope: [:resources, :cloudsql_instance, :messages]))
149
+ exit(1)
150
+ end
151
+ end
152
+
153
+ end
154
+ end
155
+ end
156
+ end
@@ -1,5 +1,5 @@
1
1
  module Magellan
2
2
  module Cli
3
- VERSION = "0.8.3"
3
+ VERSION = "0.9.0"
4
4
  end
5
5
  end
data/magellan-cli.gemspec CHANGED
@@ -26,6 +26,7 @@ Gem::Specification.new do |spec|
26
26
  spec.add_runtime_dependency "i18n"
27
27
  spec.add_runtime_dependency "psych", ">= 2.0.0", "<= 2.0.8"
28
28
  spec.add_runtime_dependency "libmagellan", "~> 0.2.4"
29
+ spec.add_runtime_dependency "logger_pipe", "~> 0.3.1"
29
30
 
30
31
  spec.add_development_dependency "bundler", "~> 1.6"
31
32
  spec.add_development_dependency "rake", "~> 10.0"
@@ -83,8 +83,10 @@ magellan-cli stage create NAME [-t development|staging|production]
83
83
 
84
84
  ```text
85
85
  Options:
86
- [-t=T] # -t development|staging|production. specify Stage Type
86
+ [-t=T] # -t development|staging|production specify Stage Type
87
87
  # Default: development
88
+ [-s=S] # -s micro|standard specify Stage Size
89
+ # Default: micro
88
90
 
89
91
  ```
90
92
 
@@ -83,8 +83,10 @@ magellan-cli stage create NAME [-t development|staging|production]
83
83
 
84
84
  ```text
85
85
  Options:
86
- [-t=T] # -t development|staging|production いづれかのTYPEを指定してください
86
+ [-t=T] # -t development|staging|production いずれかのTYPEを指定してください
87
87
  # Default: development
88
+ [-s=S] # -s micro|standard いずれかのSIZEを指定してください
89
+ # Default: micro
88
90
 
89
91
  ```
90
92
 
data/spec/spec_helper.rb CHANGED
@@ -2,7 +2,12 @@ require "pry"
2
2
 
3
3
  if ENV["COVERAGE"] =~ /true|yes|on|1/i
4
4
  require "simplecov"
5
- SimpleCov.start :rails
5
+ require 'simplecov-rcov'
6
+ SimpleCov.formatters = [
7
+ SimpleCov::Formatter::HTMLFormatter,
8
+ SimpleCov::Formatter::RcovFormatter
9
+ ]
10
+ SimpleCov.start
6
11
  end
7
12
 
8
13
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magellan-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.3
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - akm2000
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-13 00:00:00.000000000 Z
11
+ date: 2015-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httpclient
@@ -128,6 +128,20 @@ dependencies:
128
128
  - - "~>"
129
129
  - !ruby/object:Gem::Version
130
130
  version: 0.2.4
131
+ - !ruby/object:Gem::Dependency
132
+ name: logger_pipe
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 0.3.1
138
+ type: :runtime
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 0.3.1
131
145
  - !ruby/object:Gem::Dependency
132
146
  name: bundler
133
147
  requirement: !ruby/object:Gem::Requirement
@@ -209,6 +223,7 @@ files:
209
223
  - lib/magellan/cli/resources/base.rb
210
224
  - lib/magellan/cli/resources/client_version.rb
211
225
  - lib/magellan/cli/resources/cloudsql.rb
226
+ - lib/magellan/cli/resources/cloudsql_instance.rb
212
227
  - lib/magellan/cli/resources/container.rb
213
228
  - lib/magellan/cli/resources/deletable.rb
214
229
  - lib/magellan/cli/resources/image.rb
@@ -294,7 +309,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
309
  version: '0'
295
310
  requirements: []
296
311
  rubyforge_project:
297
- rubygems_version: 2.4.5
312
+ rubygems_version: 2.4.5.1
298
313
  signing_key:
299
314
  specification_version: 4
300
315
  summary: commandline tools for magellanic cloud service.