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.
- checksums.yaml +14 -6
- data/.gitignore +2 -1
- data/app/controllers/attachments_controller.rb +21 -11
- data/app/controllers/containers_controller.rb +8 -2
- data/app/controllers/databases_controller.rb +7 -2
- data/app/controllers/files_controller.rb +13 -2
- data/app/controllers/instances_controller.rb +10 -4
- data/app/controllers/nodes_controller.rb +11 -5
- data/app/controllers/volumes_controller.rb +9 -5
- data/app/forms/attachments/attach_detach_show_form.rb +8 -0
- data/app/forms/containers/create_form.rb +5 -0
- data/app/forms/databases/create_form.rb +6 -0
- data/app/forms/files/create_form.rb +5 -0
- data/app/forms/files/download_form.rb +5 -0
- data/app/forms/instances/create_form.rb +11 -0
- data/app/forms/loadbalancers/create_form.rb +2 -2
- data/app/forms/nodes/create_form.rb +12 -0
- data/app/forms/users/create_form.rb +1 -1
- data/app/forms/volumes/create_form.rb +10 -0
- data/app/help/create_attachment_on_server.txt +14 -0
- data/app/help/create_container.txt +1 -0
- data/app/help/{create_database.txt → create_database_on_dbinstance.txt} +3 -3
- data/app/help/create_dbinstance.txt +3 -3
- data/app/help/create_file_in_container.txt +14 -0
- data/app/help/create_node_on_loadbalancer.txt +17 -0
- data/app/help/create_server.txt +4 -4
- data/app/help/{create_user.txt → create_user_on_dbinstance.txt} +0 -0
- data/app/help/create_volume.txt +4 -2
- data/app/help/destroy_attachment_on_server.txt +14 -0
- data/app/help/{destroy_database.txt → destroy_database_on_dbinstance.txt} +0 -0
- data/app/help/{destroy_file.txt → destroy_file_in_container.txt} +0 -0
- data/app/help/{destroy_node.txt → destroy_node_on_loadbalancer.txt} +0 -0
- data/app/help/destroy_user_on_dbinstance.txt +15 -0
- data/app/help/download_file_in_container.txt +15 -0
- data/app/help/routes.rb +4 -3
- data/app/help/show_attachment_on_server.txt +14 -0
- data/app/help/{show_attachments.txt → show_attachments_on_server.txt} +0 -0
- data/app/help/{show_database.txt → show_database_on_dbinstance.txt} +0 -0
- data/app/help/{show_databases.txt → show_databases_on_dbinstance.txt} +0 -0
- data/app/help/{show_file.txt → show_file_in_container.txt} +0 -0
- data/app/help/{show_files.txt → show_files_in_container.txt} +0 -0
- data/app/help/{show_node.txt → show_node_in_loadbalancer.txt} +0 -0
- data/app/help/show_user_on_dbinstance.txt +15 -0
- data/app/help/{show_users.txt → show_users_on_dbinstance.txt} +0 -0
- data/app/providers/compute_provider.rb +2 -1
- data/app/providers/containers_provider.rb +2 -1
- data/app/providers/databases_provider.rb +2 -1
- data/app/providers/instances_provider.rb +2 -1
- data/app/providers/loadbalancers_provider.rb +2 -1
- data/app/providers/nodes_provider.rb +2 -1
- data/app/providers/volumes_provider.rb +2 -1
- data/app/routes.rb +5 -4
- data/app/views/attachments/attach.txt.erb +4 -1
- data/app/views/attachments/detach.txt.erb +1 -1
- data/app/views/attachments/index.txt.erb +10 -2
- data/app/views/attachments/show.txt.erb +3 -1
- data/app/views/containers/create.txt.erb +1 -1
- data/app/views/containers/destroy.txt.erb +1 -1
- data/app/views/containers/index.txt.erb +7 -1
- data/app/views/databases/create.txt.erb +1 -1
- data/app/views/databases/destroy.txt.erb +1 -1
- data/app/views/databases/index.txt.erb +2 -1
- data/app/views/files/create.txt.erb +1 -2
- data/app/views/files/destroy.txt.erb +1 -1
- data/app/views/files/download.txt.erb +1 -1
- data/app/views/files/index.txt.erb +9 -1
- data/app/views/files/show.txt.erb +2 -1
- data/app/views/instances/create.txt.erb +1 -1
- data/app/views/instances/destroy.txt.erb +1 -1
- data/app/views/instances/index.txt.erb +2 -1
- data/app/views/instances/show.txt.erb +4 -1
- data/app/views/loadbalancers/create.txt.erb +1 -1
- data/app/views/loadbalancers/destroy.txt.erb +1 -1
- data/app/views/loadbalancers/index.txt.erb +1 -0
- data/app/views/nodes/create.txt.erb +1 -1
- data/app/views/nodes/destroy.txt.erb +1 -1
- data/app/views/nodes/index.txt.erb +7 -2
- data/app/views/nodes/show.txt.erb +6 -1
- data/app/views/users/index.txt.erb +4 -3
- data/app/views/volumes/create.txt.erb +1 -1
- data/app/views/volumes/destroy.txt.erb +1 -1
- data/app/views/volumes/index.txt.erb +8 -1
- data/app/views/volumes/show.txt.erb +7 -1
- data/lib/rumm/version.rb +1 -1
- data/rumm.gemspec +3 -3
- data/spec/features/attachments_spec.rb +33 -0
- data/spec/features/containers_spec.rb +30 -0
- data/spec/features/databases_spec.rb +29 -0
- data/spec/features/dbinstances_spec.rb +30 -0
- data/spec/features/files_spec.rb +50 -0
- data/spec/features/help_spec.rb +2 -2
- data/spec/features/loadbalancers_spec.rb +30 -0
- data/spec/features/login_spec.rb +21 -17
- data/spec/features/nodes_spec.rb +35 -0
- data/spec/features/servers_spec.rb +7 -13
- data/spec/features/volumes_spec.rb +29 -0
- data/spec/fixtures/cassettes/attachments/create.yml +305 -0
- data/spec/fixtures/cassettes/attachments/destroy.yml +342 -0
- data/spec/fixtures/cassettes/attachments/show-all.yml +145 -0
- data/spec/fixtures/cassettes/attachments/show.yml +309 -0
- data/spec/fixtures/cassettes/authentication/successful-login.yml +78 -0
- data/spec/fixtures/cassettes/{unsuccessful-login.yml → authentication/unsuccessful-login.yml} +3 -3
- data/spec/fixtures/cassettes/containers/create.yml +212 -0
- data/spec/fixtures/cassettes/containers/destroy.yml +211 -0
- data/spec/fixtures/cassettes/containers/show-all.yml +92 -0
- data/spec/fixtures/cassettes/containers/show.yml +92 -0
- data/spec/fixtures/cassettes/databases/create.yml +171 -0
- data/spec/fixtures/cassettes/databases/destroy.yml +206 -0
- data/spec/fixtures/cassettes/databases/show-all.yml +171 -0
- data/spec/fixtures/cassettes/databases/show.yml +171 -0
- data/spec/fixtures/cassettes/files/create.yml +129 -0
- data/spec/fixtures/cassettes/files/destroy.yml +166 -0
- data/spec/fixtures/cassettes/files/download.yml +132 -0
- data/spec/fixtures/cassettes/files/show-all.yml +175 -0
- data/spec/fixtures/cassettes/files/show.yml +133 -0
- data/spec/fixtures/cassettes/instances/create.yml +87 -0
- data/spec/fixtures/cassettes/instances/destroy.yml +128 -0
- data/spec/fixtures/cassettes/instances/show-all.yml +87 -0
- data/spec/fixtures/cassettes/instances/show.yml +128 -0
- data/spec/fixtures/cassettes/loadbalancers/create.yml +81 -0
- data/spec/fixtures/cassettes/loadbalancers/destroy.yml +114 -0
- data/spec/fixtures/cassettes/loadbalancers/show-all.yml +81 -0
- data/spec/fixtures/cassettes/loadbalancers/show.yml +81 -0
- data/spec/fixtures/cassettes/nodes/create.yml +159 -0
- data/spec/fixtures/cassettes/nodes/destroy.yml +192 -0
- data/spec/fixtures/cassettes/nodes/show-all.yml +159 -0
- data/spec/fixtures/cassettes/nodes/show.yml +159 -0
- data/spec/fixtures/cassettes/{create-server.yml → servers/create.yml} +2452 -3032
- data/spec/fixtures/cassettes/servers/destroy.yml +130 -0
- data/spec/fixtures/cassettes/servers/show-all.yml +81 -0
- data/spec/fixtures/cassettes/servers/show.yml +183 -0
- data/spec/fixtures/cassettes/volumes/create.yml +83 -0
- data/spec/fixtures/cassettes/volumes/destroy.yml +114 -0
- data/spec/fixtures/cassettes/volumes/show-all.yml +83 -0
- data/spec/fixtures/cassettes/volumes/show.yml +83 -0
- data/spec/spec_helper.rb +37 -7
- metadata +135 -62
- data/app/help/attach_volume.txt +0 -15
- data/app/help/create_node.txt +0 -14
- data/app/help/detach_volume.txt +0 -15
- data/spec/fixtures/cassettes/destroy-server.yml +0 -130
- data/spec/fixtures/cassettes/show-server.yml +0 -183
- data/spec/fixtures/cassettes/show-servers.yml +0 -81
- data/spec/fixtures/cassettes/successful-login.yml +0 -78
checksums.yaml
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
@@ -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
|
-
|
|
15
|
+
form = get_form Attachments::AttachDetachShowForm
|
|
16
|
+
|
|
17
|
+
server.attach_volume form.volume
|
|
14
18
|
end
|
|
15
19
|
|
|
16
20
|
def detach
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
form = get_form Attachments::AttachDetachShowForm
|
|
22
|
+
|
|
23
|
+
attachment( form.volume).detach
|
|
19
24
|
end
|
|
20
25
|
|
|
21
26
|
def show
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
form = get_form Attachments::AttachDetachShowForm
|
|
28
|
+
|
|
29
|
+
attachment(form.volume)
|
|
24
30
|
end
|
|
25
31
|
|
|
26
32
|
private
|
|
27
33
|
|
|
28
|
-
def
|
|
29
|
-
|
|
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
|
|
33
|
-
|
|
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
|
|
37
|
-
server.attachments.find {|
|
|
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 :
|
|
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:
|
|
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 :
|
|
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:
|
|
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 =>
|
|
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
|
-
|
|
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 :
|
|
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:
|
|
17
|
-
flavor_id:
|
|
18
|
-
volume_size:
|
|
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:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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 :
|
|
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:
|
|
17
|
-
volume_type:
|
|
18
|
-
size:
|
|
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,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, "
|
|
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, "
|
|
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, "
|
|
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
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|