rumm 0.0.22 → 0.0.23

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.
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