rumm 0.0.22 → 0.0.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (144) hide show
  1. checksums.yaml +14 -6
  2. data/.gitignore +2 -1
  3. data/app/controllers/attachments_controller.rb +21 -11
  4. data/app/controllers/containers_controller.rb +8 -2
  5. data/app/controllers/databases_controller.rb +7 -2
  6. data/app/controllers/files_controller.rb +13 -2
  7. data/app/controllers/instances_controller.rb +10 -4
  8. data/app/controllers/nodes_controller.rb +11 -5
  9. data/app/controllers/volumes_controller.rb +9 -5
  10. data/app/forms/attachments/attach_detach_show_form.rb +8 -0
  11. data/app/forms/containers/create_form.rb +5 -0
  12. data/app/forms/databases/create_form.rb +6 -0
  13. data/app/forms/files/create_form.rb +5 -0
  14. data/app/forms/files/download_form.rb +5 -0
  15. data/app/forms/instances/create_form.rb +11 -0
  16. data/app/forms/loadbalancers/create_form.rb +2 -2
  17. data/app/forms/nodes/create_form.rb +12 -0
  18. data/app/forms/users/create_form.rb +1 -1
  19. data/app/forms/volumes/create_form.rb +10 -0
  20. data/app/help/create_attachment_on_server.txt +14 -0
  21. data/app/help/create_container.txt +1 -0
  22. data/app/help/{create_database.txt → create_database_on_dbinstance.txt} +3 -3
  23. data/app/help/create_dbinstance.txt +3 -3
  24. data/app/help/create_file_in_container.txt +14 -0
  25. data/app/help/create_node_on_loadbalancer.txt +17 -0
  26. data/app/help/create_server.txt +4 -4
  27. data/app/help/{create_user.txt → create_user_on_dbinstance.txt} +0 -0
  28. data/app/help/create_volume.txt +4 -2
  29. data/app/help/destroy_attachment_on_server.txt +14 -0
  30. data/app/help/{destroy_database.txt → destroy_database_on_dbinstance.txt} +0 -0
  31. data/app/help/{destroy_file.txt → destroy_file_in_container.txt} +0 -0
  32. data/app/help/{destroy_node.txt → destroy_node_on_loadbalancer.txt} +0 -0
  33. data/app/help/destroy_user_on_dbinstance.txt +15 -0
  34. data/app/help/download_file_in_container.txt +15 -0
  35. data/app/help/routes.rb +4 -3
  36. data/app/help/show_attachment_on_server.txt +14 -0
  37. data/app/help/{show_attachments.txt → show_attachments_on_server.txt} +0 -0
  38. data/app/help/{show_database.txt → show_database_on_dbinstance.txt} +0 -0
  39. data/app/help/{show_databases.txt → show_databases_on_dbinstance.txt} +0 -0
  40. data/app/help/{show_file.txt → show_file_in_container.txt} +0 -0
  41. data/app/help/{show_files.txt → show_files_in_container.txt} +0 -0
  42. data/app/help/{show_node.txt → show_node_in_loadbalancer.txt} +0 -0
  43. data/app/help/show_user_on_dbinstance.txt +15 -0
  44. data/app/help/{show_users.txt → show_users_on_dbinstance.txt} +0 -0
  45. data/app/providers/compute_provider.rb +2 -1
  46. data/app/providers/containers_provider.rb +2 -1
  47. data/app/providers/databases_provider.rb +2 -1
  48. data/app/providers/instances_provider.rb +2 -1
  49. data/app/providers/loadbalancers_provider.rb +2 -1
  50. data/app/providers/nodes_provider.rb +2 -1
  51. data/app/providers/volumes_provider.rb +2 -1
  52. data/app/routes.rb +5 -4
  53. data/app/views/attachments/attach.txt.erb +4 -1
  54. data/app/views/attachments/detach.txt.erb +1 -1
  55. data/app/views/attachments/index.txt.erb +10 -2
  56. data/app/views/attachments/show.txt.erb +3 -1
  57. data/app/views/containers/create.txt.erb +1 -1
  58. data/app/views/containers/destroy.txt.erb +1 -1
  59. data/app/views/containers/index.txt.erb +7 -1
  60. data/app/views/databases/create.txt.erb +1 -1
  61. data/app/views/databases/destroy.txt.erb +1 -1
  62. data/app/views/databases/index.txt.erb +2 -1
  63. data/app/views/files/create.txt.erb +1 -2
  64. data/app/views/files/destroy.txt.erb +1 -1
  65. data/app/views/files/download.txt.erb +1 -1
  66. data/app/views/files/index.txt.erb +9 -1
  67. data/app/views/files/show.txt.erb +2 -1
  68. data/app/views/instances/create.txt.erb +1 -1
  69. data/app/views/instances/destroy.txt.erb +1 -1
  70. data/app/views/instances/index.txt.erb +2 -1
  71. data/app/views/instances/show.txt.erb +4 -1
  72. data/app/views/loadbalancers/create.txt.erb +1 -1
  73. data/app/views/loadbalancers/destroy.txt.erb +1 -1
  74. data/app/views/loadbalancers/index.txt.erb +1 -0
  75. data/app/views/nodes/create.txt.erb +1 -1
  76. data/app/views/nodes/destroy.txt.erb +1 -1
  77. data/app/views/nodes/index.txt.erb +7 -2
  78. data/app/views/nodes/show.txt.erb +6 -1
  79. data/app/views/users/index.txt.erb +4 -3
  80. data/app/views/volumes/create.txt.erb +1 -1
  81. data/app/views/volumes/destroy.txt.erb +1 -1
  82. data/app/views/volumes/index.txt.erb +8 -1
  83. data/app/views/volumes/show.txt.erb +7 -1
  84. data/lib/rumm/version.rb +1 -1
  85. data/rumm.gemspec +3 -3
  86. data/spec/features/attachments_spec.rb +33 -0
  87. data/spec/features/containers_spec.rb +30 -0
  88. data/spec/features/databases_spec.rb +29 -0
  89. data/spec/features/dbinstances_spec.rb +30 -0
  90. data/spec/features/files_spec.rb +50 -0
  91. data/spec/features/help_spec.rb +2 -2
  92. data/spec/features/loadbalancers_spec.rb +30 -0
  93. data/spec/features/login_spec.rb +21 -17
  94. data/spec/features/nodes_spec.rb +35 -0
  95. data/spec/features/servers_spec.rb +7 -13
  96. data/spec/features/volumes_spec.rb +29 -0
  97. data/spec/fixtures/cassettes/attachments/create.yml +305 -0
  98. data/spec/fixtures/cassettes/attachments/destroy.yml +342 -0
  99. data/spec/fixtures/cassettes/attachments/show-all.yml +145 -0
  100. data/spec/fixtures/cassettes/attachments/show.yml +309 -0
  101. data/spec/fixtures/cassettes/authentication/successful-login.yml +78 -0
  102. data/spec/fixtures/cassettes/{unsuccessful-login.yml → authentication/unsuccessful-login.yml} +3 -3
  103. data/spec/fixtures/cassettes/containers/create.yml +212 -0
  104. data/spec/fixtures/cassettes/containers/destroy.yml +211 -0
  105. data/spec/fixtures/cassettes/containers/show-all.yml +92 -0
  106. data/spec/fixtures/cassettes/containers/show.yml +92 -0
  107. data/spec/fixtures/cassettes/databases/create.yml +171 -0
  108. data/spec/fixtures/cassettes/databases/destroy.yml +206 -0
  109. data/spec/fixtures/cassettes/databases/show-all.yml +171 -0
  110. data/spec/fixtures/cassettes/databases/show.yml +171 -0
  111. data/spec/fixtures/cassettes/files/create.yml +129 -0
  112. data/spec/fixtures/cassettes/files/destroy.yml +166 -0
  113. data/spec/fixtures/cassettes/files/download.yml +132 -0
  114. data/spec/fixtures/cassettes/files/show-all.yml +175 -0
  115. data/spec/fixtures/cassettes/files/show.yml +133 -0
  116. data/spec/fixtures/cassettes/instances/create.yml +87 -0
  117. data/spec/fixtures/cassettes/instances/destroy.yml +128 -0
  118. data/spec/fixtures/cassettes/instances/show-all.yml +87 -0
  119. data/spec/fixtures/cassettes/instances/show.yml +128 -0
  120. data/spec/fixtures/cassettes/loadbalancers/create.yml +81 -0
  121. data/spec/fixtures/cassettes/loadbalancers/destroy.yml +114 -0
  122. data/spec/fixtures/cassettes/loadbalancers/show-all.yml +81 -0
  123. data/spec/fixtures/cassettes/loadbalancers/show.yml +81 -0
  124. data/spec/fixtures/cassettes/nodes/create.yml +159 -0
  125. data/spec/fixtures/cassettes/nodes/destroy.yml +192 -0
  126. data/spec/fixtures/cassettes/nodes/show-all.yml +159 -0
  127. data/spec/fixtures/cassettes/nodes/show.yml +159 -0
  128. data/spec/fixtures/cassettes/{create-server.yml → servers/create.yml} +2452 -3032
  129. data/spec/fixtures/cassettes/servers/destroy.yml +130 -0
  130. data/spec/fixtures/cassettes/servers/show-all.yml +81 -0
  131. data/spec/fixtures/cassettes/servers/show.yml +183 -0
  132. data/spec/fixtures/cassettes/volumes/create.yml +83 -0
  133. data/spec/fixtures/cassettes/volumes/destroy.yml +114 -0
  134. data/spec/fixtures/cassettes/volumes/show-all.yml +83 -0
  135. data/spec/fixtures/cassettes/volumes/show.yml +83 -0
  136. data/spec/spec_helper.rb +37 -7
  137. metadata +135 -62
  138. data/app/help/attach_volume.txt +0 -15
  139. data/app/help/create_node.txt +0 -14
  140. data/app/help/detach_volume.txt +0 -15
  141. data/spec/fixtures/cassettes/destroy-server.yml +0 -130
  142. data/spec/fixtures/cassettes/show-server.yml +0 -183
  143. data/spec/fixtures/cassettes/show-servers.yml +0 -81
  144. data/spec/fixtures/cassettes/successful-login.yml +0 -78
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f22e1d300f41259fb41cf025ec307c54f085721f
4
- data.tar.gz: f8b7f55420594715eabf95a79de2618e15d07395
5
- SHA512:
6
- metadata.gz: 2fc311104ba0b6212b14799692362c6457091b44e0913ee5cd77e4e457cc284c24a79834a1f7233173078490e9c06877cf6cef0a6faab504823f31eb10cec1ee
7
- data.tar.gz: 320fc0ff3e01760fbc05fc08a5562449c54651441a2ceb8339bebe1d011339c2e6135ec45d5577ec3160436f2af6785d1ddb4ab95df6a3f01907f07e1502e32c
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NGFlNzA2ZWMyM2RmMjBkZWNlZTk5MzVmMzRkNjFmMGVkNGZiNjQ4Mw==
5
+ data.tar.gz: !binary |-
6
+ NWIwMWU3MjNhNjAxYTQ5MDVkNmNjMmMwM2MwYTBkZDkzZDk5ZDI2Zg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ NzljYjhkYTc1ZDg3ZDNhZGI0NDMyNWNjOTIyN2I1M2JkNWU4NDY1OTI4NzI4
10
+ ZjU0NzMwMzk3ZTA5MDQ4NzViNThjNTQwZTQ2ZWUzNmNjYTFiNzliNGE3N2U0
11
+ MTkwM2U1ZDgwMTg0NjA2YjQ3NjczMTQ1OWNiOWVlODYzZDlkZmY=
12
+ data.tar.gz: !binary |-
13
+ MzgyNGNjMmIxYzRkOTZlM2EwYmQ1YWE3Y2FmMmIyNzZmOTYzOTUxM2MyZjNl
14
+ MDZiMDlmOWRlYmVhZTIzN2QxN2JjOWVkOTQ3ZGZjYjc2N2JmOTQxMGFjN2E1
15
+ ZTNkOWRjZmM1ZDNmMDRjODE3Y2I2ZTgyY2RlMjYyMWI4MjZhNjI=
data/.gitignore CHANGED
@@ -15,4 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
- .idea/
18
+ .idea/
19
+ test
@@ -1,39 +1,49 @@
1
1
  class AttachmentsController < MVCLI::Controller
2
2
  requires :compute
3
3
  requires :volumes
4
+ requires :command
4
5
 
5
6
  def index
6
7
  #Maybe it would be best to give better information about the
7
8
  #attachments?
8
9
  #Maybe list the volume information rather than attachment info
10
+
9
11
  server.attachments.all
10
12
  end
11
13
 
12
14
  def attach
13
- server.attach_volume volume
15
+ form = get_form Attachments::AttachDetachShowForm
16
+
17
+ server.attach_volume form.volume
14
18
  end
15
19
 
16
20
  def detach
17
- id = volume.id
18
- attachment(id).detach
21
+ form = get_form Attachments::AttachDetachShowForm
22
+
23
+ attachment( form.volume).detach
19
24
  end
20
25
 
21
26
  def show
22
- id = volume.id
23
- attachment id
27
+ form = get_form Attachments::AttachDetachShowForm
28
+
29
+ attachment(form.volume)
24
30
  end
25
31
 
26
32
  private
27
33
 
28
- def volume
29
- volumes.all.find {|v| v.display_name == params[:id]} or fail Fog::Errors::NotFound
34
+ def server
35
+ compute.servers.all.find {|server| server.name == params[:server_id]} or fail Fog::Errors::NotFound
30
36
  end
31
37
 
32
- def server
33
- compute.servers.all.find {|s| s.name == params[:server_id]} or fail Fog::Errors::NotFound
38
+ def get_form template
39
+ argv = MVCLI::Argv.new command.argv
40
+ form = template.new argv.options
41
+ form.validate!
42
+
43
+ form
34
44
  end
35
45
 
36
- def attachment vol_id
37
- server.attachments.find {|a| a.volume_id == vol_id} or fail Fog::Errors::NotFound
46
+ def attachment volume
47
+ server.attachments.find {|attachments| attachments.volume_id == volume.id} or fail Fog::Errors::NotFound
38
48
  end
39
49
  end
@@ -1,15 +1,21 @@
1
1
  class ContainersController < MVCLI::Controller
2
2
  requires :containers
3
- requires :naming
3
+ requires :command
4
4
 
5
5
  def index
6
6
  containers.all
7
7
  end
8
8
 
9
9
  def create
10
+ template = Containers::CreateForm
11
+ argv = MVCLI::Argv.new command.argv
12
+ form = template.new argv.options
13
+ form.validate!
14
+
10
15
  options = {
11
- key: naming.generate_name(nil, nil)
16
+ key: form.name
12
17
  }
18
+
13
19
  containers.create options
14
20
  end
15
21
 
@@ -1,7 +1,7 @@
1
1
  class DatabasesController < MVCLI::Controller
2
2
  requires :instances
3
3
  requires :databases
4
- requires :naming
4
+ requires :command
5
5
 
6
6
  def index
7
7
  d = databases
@@ -16,9 +16,14 @@ class DatabasesController < MVCLI::Controller
16
16
  end
17
17
 
18
18
  def create
19
+ template = Databases::CreateForm
20
+ argv = MVCLI::Argv.new command.argv
21
+ form = template.new argv.options
22
+ form.validate!
23
+
19
24
  d = databases
20
25
  d.instance = instance
21
- d.create ({name: naming.generate_name("d", "b")})
26
+ d.create ({name: form.name})
22
27
  end
23
28
 
24
29
  def destroy
@@ -1,14 +1,20 @@
1
1
  class FilesController < MVCLI::Controller
2
2
  requires :containers
3
+ requires :command
3
4
 
4
5
  def index
5
6
  container.all
6
7
  end
7
8
 
8
9
  def create
10
+ template = Files::CreateForm
11
+ argv = MVCLI::Argv.new command.argv
12
+ form = template.new argv.options
13
+ form.validate!
14
+
9
15
  options = {
10
16
  :key => params[:id],
11
- :body => File.open(File.expand_path "nouns.txt")
17
+ :body => form.file.to_s
12
18
  }
13
19
  container.create options
14
20
  end
@@ -22,7 +28,12 @@ class FilesController < MVCLI::Controller
22
28
  end
23
29
 
24
30
  def download
25
- File.open((File.expand_path "download-" + params[:id]), 'w') do | f |
31
+ template = Files::DownloadForm
32
+ argv = MVCLI::Argv.new command.argv
33
+ form = template.new argv.options
34
+ form.validate!
35
+
36
+ File.open(form.destination.to_s, 'w') do | f |
26
37
  container.get(params[:id]) do | data, remaining, content_length |
27
38
  f.syswrite data
28
39
  end
@@ -1,7 +1,7 @@
1
1
  class InstancesController < MVCLI::Controller
2
2
 
3
3
  requires :instances
4
- requires :naming
4
+ requires :command
5
5
 
6
6
  def index
7
7
  instances.all
@@ -12,10 +12,16 @@ class InstancesController < MVCLI::Controller
12
12
  end
13
13
 
14
14
  def create
15
+ template = Instances::CreateForm
16
+ argv = MVCLI::Argv.new command.argv
17
+ form = template.new argv.options
18
+ form.validate!
19
+
20
+ #How expansive do we want these command line options to be?
15
21
  options = {
16
- name: naming.generate_name('d', 'i'),
17
- flavor_id: 1,
18
- volume_size: 1,
22
+ name: form.name,
23
+ flavor_id: form.flavor,
24
+ volume_size: form.size
19
25
  }
20
26
  instances.create options
21
27
  end
@@ -1,6 +1,7 @@
1
1
  class NodesController < MVCLI::Controller
2
2
  requires :loadbalancers
3
3
  requires :nodes
4
+ requires :command
4
5
 
5
6
  def index
6
7
  n = nodes
@@ -15,13 +16,18 @@ class NodesController < MVCLI::Controller
15
16
  end
16
17
 
17
18
  def create
19
+ template = Nodes::CreateForm
20
+ argv = MVCLI::Argv.new command.argv
21
+ form = template.new argv.options
22
+ form.validate!
23
+
18
24
  n = nodes
19
25
  n.load_balancer = load_balancer
20
26
  options = {
21
- address: params[:ip_address],
22
- #address: "198.61.221.220",
23
- condition: "ENABLED",
24
- port: 80
27
+ address: form.address,
28
+ condition: form.condition,
29
+ port: form.port,
30
+ type: form.type
25
31
  }
26
32
  n.create options
27
33
  end
@@ -30,7 +36,7 @@ class NodesController < MVCLI::Controller
30
36
  n = nodes
31
37
  n.load_balancer = load_balancer
32
38
  find_node_in(n).destroy
33
- :id
39
+ params[:id]
34
40
  end
35
41
 
36
42
  private
@@ -1,7 +1,6 @@
1
1
  class VolumesController < MVCLI::Controller
2
- requires :compute
3
2
  requires :volumes
4
- requires :naming
3
+ requires :command
5
4
 
6
5
  def index
7
6
  volumes.all
@@ -12,10 +11,15 @@ class VolumesController < MVCLI::Controller
12
11
  end
13
12
 
14
13
  def create
14
+ template = Volumes::CreateForm
15
+ argv = MVCLI::Argv.new command.argv
16
+ form = template.new argv.options
17
+ form.validate!
18
+
15
19
  options = {
16
- display_name: naming.generate_name(nil, nil),
17
- volume_type: "SATA",
18
- size: 100
20
+ display_name: form.name,
21
+ volume_type: form.type,
22
+ size: form.size
19
23
  }
20
24
  volumes.create options
21
25
  end
@@ -0,0 +1,8 @@
1
+ class Attachments::AttachDetachShowForm < MVCLI::Form
2
+ require "fog"
3
+
4
+ requires :volumes
5
+ requires :compute
6
+
7
+ input :volume, Fog::Volume, required: true, decode: ->(s) { volumes.all.find {|v| v.display_name == s} or fail Fog::Errors::NotFound}
8
+ end
@@ -0,0 +1,5 @@
1
+ class Containers::CreateForm < MVCLI::Form
2
+ requires :naming
3
+
4
+ input :name, String, default: ->() { naming.generate_name 'c', 'c' }
5
+ end
@@ -0,0 +1,6 @@
1
+ class Databases::CreateForm < MVCLI::Form
2
+ requires :naming
3
+
4
+ input :name, String, default: ->() {naming.generate_name 'd', 'b'}
5
+
6
+ end
@@ -0,0 +1,5 @@
1
+ class Files::CreateForm < MVCLI::Form
2
+ input :file, Pathname, required: true, decode: ->(s) {Pathname(s)}
3
+
4
+ validates(:file, "File location must lead to a file") {|file| file.exist? }
5
+ end
@@ -0,0 +1,5 @@
1
+ class Files::DownloadForm < MVCLI::Form
2
+ input :destination, Pathname, required: true, decode: ->(s) {Pathname(s)}
3
+
4
+ validates(:destination, "File location must lead to an empty file") {|file| !File.exists? file}
5
+ end
@@ -0,0 +1,11 @@
1
+ class Instances::CreateForm < MVCLI::Form
2
+ requires :naming
3
+
4
+ input :name, String, default: ->() { naming.generate_name 'd', 'i' }
5
+ input :flavor, Integer, default: 1
6
+ input :size, Integer, default: 1
7
+
8
+ validates(:flavor, "must be between 1 and 6") { |id| (1..6) === id }
9
+
10
+ validates(:size, "must be between 1 and 150") { |size| (1..150) === size }
11
+ end
@@ -17,12 +17,12 @@ class Loadbalancers::CreateForm < MVCLI::Form
17
17
  input :type, String, default: 'PRIMARY', decode: :upcase
18
18
  input :condition, String, default: 'ENABLED', decode: :upcase
19
19
 
20
- validates(:port, "port must be between 0 and 65,535") {|port| port >= 0 && port <= 65535}
20
+ validates(:port, "must be between 0 and 65,535") {|port| port >= 0 && port <= 65535}
21
21
  validates(:type, "invalid type") {|type| ['PRIMARY', 'SECONDARY'].member? type}
22
22
  validates(:condition, "invalid condition") {|c| ['ENABLED', 'DISABLED'].member? c}
23
23
  end
24
24
 
25
- validates(:port, "port must be between 0 and 65,535") {|port| port >=0 && port < 65535}
25
+ validates(:port, "must be between 0 and 65,535") {|port| port >=0 && port < 65535}
26
26
 
27
27
  validates(:nodes, "at least one node must be enabled", each: false) { |nodes|
28
28
  nodes.any? {|n| n.condition == 'ENABLED'}
@@ -0,0 +1,12 @@
1
+ require "ipaddr"
2
+
3
+ class Nodes::CreateForm < MVCLI::Form
4
+ input :address, String, required: true, decode: ->(s) { URI('').hostname = s }
5
+ input :port, Integer, default: 80, decode: ->(s) {Integer s}
6
+ input :type, String, default: 'PRIMARY', decode: :upcase
7
+ input :condition, String, default: 'ENABLED', decode: :upcase
8
+
9
+ validates(:port, "must be between 0 and 65,535") {|port| port >= 0 && port <= 65535}
10
+ validates(:type, "invalid type") {|type| ['PRIMARY', 'SECONDARY'].member? type}
11
+ validates(:condition, "invalid condition") {|c| ['ENABLED', 'DISABLED'].member? c}
12
+ end
@@ -4,7 +4,7 @@ class Users::CreateForm < MVCLI::Form
4
4
  input :databases, [Map], required: true, decode: ->(s) {{name: s}}
5
5
  input :host, String
6
6
 
7
- validates(:host, "host must be a valid ip address or %") {|host|
7
+ validates(:host, "must be a valid ip address or %") {|host|
8
8
  host == "%" or IPAddr.new(host) rescue nil
9
9
  }
10
10
  end
@@ -0,0 +1,10 @@
1
+ class Volumes::CreateForm < MVCLI::Form
2
+ requires :naming
3
+
4
+ input :name, String, default: ->() { naming.generate_name 'nil', 'nil' }
5
+ input :type, String, default: "SATA"
6
+ input :size, Integer, default: 100
7
+
8
+ validates(:type, "must either be SATA or SSD"){ |type| type == "SATA" or "SSD" }
9
+ validates(:size, "must be between 100 and 1024"){ |size| (100..1024) === size }
10
+ end
@@ -0,0 +1,14 @@
1
+ Usage:
2
+ rumm create attachment on server SERVER_ID
3
+
4
+ Options:
5
+ -v, --volume STRING # Name of the volume to attach
6
+
7
+ Arguments:
8
+ SERVER_ID: STRING # The name of the server the volume is to be attached to
9
+
10
+ Description:
11
+ Attaches the specified volume to the named server.
12
+
13
+ Examples:
14
+ rumm create attachment on server superordinate-struthioniformes --volume colorful-caterpillar
@@ -2,6 +2,7 @@ Usage:
2
2
  rumm create container
3
3
 
4
4
  Options:
5
+ -n, --name STRING # Name to give the new container
5
6
  none
6
7
 
7
8
  Arguments:
@@ -1,15 +1,15 @@
1
1
  Usage:
2
- rumm create database on dbinstance INSTANCE_ID
2
+ rumm create database on dbinstance INSTANCE_ID [--name STRING]
3
3
 
4
4
  Options:
5
- none
5
+ -n, --name STRING # Name to give the new database
6
6
 
7
7
  Arguments:
8
8
  INSTANCE_ID: STRING # Name of the DB instance on which to create the database
9
9
 
10
10
  Description:
11
11
  Creates a new database on the specified DB instance. The name of the
12
- database will be automatically generated.
12
+ database will be automatically generated if none is provided.
13
13
 
14
14
  Examples:
15
15
  rumm create database on dbinstance departmental-ichthyologist
@@ -1,15 +1,15 @@
1
1
  Usage:
2
- rumm create dbinstance
2
+ rumm create dbinstance [--name STRING]
3
3
 
4
4
  Options:
5
- none
5
+ -n, --name STRING # Name to give the new server
6
6
 
7
7
  Arguments:
8
8
  none
9
9
 
10
10
  Description:
11
11
  Creates a new DB instance. A name for the DB instance will be
12
- automatically generated.
12
+ automatically generated if one is not provided.
13
13
 
14
14
  Examples:
15
15
  rumm create dbinstance
@@ -0,0 +1,14 @@
1
+ Usage:
2
+ rumm create file in container CONTAINER_ID [--file PATHNAME]
3
+
4
+ Options:
5
+ --file: PATHNAME # Path to the file
6
+
7
+ Arguments:
8
+ CONTAINER_ID: STRING # Name of the container to store the file
9
+
10
+ Description:
11
+ Uploads the specified file to the specified container.
12
+
13
+ Examples:
14
+ rumm create file on container colorful-cat