nuri 0.5.4 → 0.5.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -3
  3. data/VERSION +1 -1
  4. data/bin/nuri +10 -7
  5. data/nuri.gemspec +17 -17
  6. metadata +19 -94
  7. data/examples/.gitignore +0 -4
  8. data/examples/bonfire.sfp +0 -87
  9. data/examples/bonfire/epcc.sfp +0 -43
  10. data/examples/bonfire/epcc0.sfp +0 -49
  11. data/examples/bonfire/epcc2.sfp +0 -52
  12. data/examples/bonfire/epcc2a.sfp +0 -25
  13. data/examples/bonfire/inria.sfp +0 -72
  14. data/examples/bonfire/inria0.sfp +0 -49
  15. data/examples/bonfire/inria2.sfp +0 -71
  16. data/examples/bonfire/inria2a.sfp +0 -44
  17. data/examples/bonfire/inria2b.sfp +0 -54
  18. data/examples/bonfire/inria2c.sfp +0 -62
  19. data/examples/bonfire/inria2d.sfp +0 -71
  20. data/examples/bonfire/inria2e.sfp +0 -80
  21. data/examples/bonfire/main.sfp +0 -33
  22. data/examples/bonfire/old/bonfire-1-1-1.sfp +0 -76
  23. data/examples/bonfire/old/bonfire-1-10-1.sfp +0 -77
  24. data/examples/bonfire/old/bonfire-1-2-1.sfp +0 -58
  25. data/examples/bonfire/old/bonfire-1-3-1.sfp +0 -61
  26. data/examples/bonfire/old/bonfire-1-4-1.sfp +0 -64
  27. data/examples/bonfire/old/bonfire-1-5-1.sfp +0 -67
  28. data/examples/bonfire/old/bonfire-1-6-1.sfp +0 -82
  29. data/examples/bonfire/old/bonfire-1-7-1.sfp +0 -82
  30. data/examples/bonfire/old/bonfire-1-8-1.sfp +0 -79
  31. data/examples/bonfire/old/bonfire-1-9-1.sfp +0 -83
  32. data/examples/bonfire/old/wp-test1a.sfp +0 -38
  33. data/examples/bonfire/old/wp-test1b.sfp +0 -18
  34. data/examples/bonfire/old/wp-test1c.sfp +0 -7
  35. data/examples/bonfire/old/wp-test2.sfp +0 -47
  36. data/examples/bonfire/old3/bonfire-epcc.sfp +0 -57
  37. data/examples/bonfire/old3/bonfire-inria.sfp +0 -72
  38. data/examples/bonfire/old3/bonfire-master.sfp +0 -18
  39. data/examples/bonfire/old3/bonfire.sfp +0 -23
  40. data/examples/bonfire/old3/bonfire2.sfp +0 -49
  41. data/examples/bonfire/old3/bonfire3.sfp +0 -76
  42. data/examples/bonfire/old3/bonfire4.sfp +0 -78
  43. data/examples/bonfire/old3/bonfire5.sfp +0 -34
  44. data/examples/bonfire/old3/bonfire5b.sfp +0 -84
  45. data/examples/bonfire/old3/hpvm6.sfp +0 -22
  46. data/examples/bonfire/old3/model.json +0 -1
  47. data/examples/bonfire/old3/test0.sfp +0 -16
  48. data/examples/bonfire/old3/test1.sfp +0 -5
  49. data/examples/bonfire/old3/test10.sfp +0 -5
  50. data/examples/bonfire/old3/test2.sfp +0 -18
  51. data/examples/bonfire/old3/test3.sfp +0 -10
  52. data/examples/bonfire/old3/test4.sfp +0 -11
  53. data/examples/bonfire/old3/test5.sfp +0 -18
  54. data/examples/bonfire/old3/test6.sfp +0 -19
  55. data/examples/bonfire/old3/test7.sfp +0 -34
  56. data/examples/bonfire/old3/test8.sfp +0 -5
  57. data/examples/bonfire/old3/test9.sfp +0 -16
  58. data/examples/bonfire/old3/wordpress-test-cluster.sfp +0 -38
  59. data/examples/bonfire/old3/wordpress-test.sfp +0 -22
  60. data/examples/bonfire/old3/wp-test-2.sfp +0 -49
  61. data/examples/bonfire/test.sfp +0 -13
  62. data/examples/hadoop1.sfp +0 -21
  63. data/examples/hadoop2.sfp +0 -21
  64. data/examples/hpcloud.sfp +0 -18
  65. data/examples/mockcloud/apache2.sfp +0 -14
  66. data/examples/mockcloud/generator.rb +0 -22
  67. data/examples/mockcloud/generator.rb.bak +0 -66
  68. data/examples/mockcloud/hadoop2.sfp.template +0 -25
  69. data/examples/mockcloud/ping.rb +0 -38
  70. data/examples/mockcloud/run.rb +0 -17
  71. data/examples/openstack/openstack-hadoop1-cluster.sfp +0 -37
  72. data/examples/openstack/openstack-hadoop2-cluster.sfp +0 -39
  73. data/examples/test.inc +0 -0
  74. data/examples/test.sfp +0 -11
  75. data/examples/v2/apache.sfp +0 -30
  76. data/examples/v2/aptpackage.sfp +0 -6
  77. data/examples/v2/mock1.sfp +0 -12
  78. data/examples/v2/package.sfp +0 -22
  79. data/examples/v2/service.sfp +0 -94
  80. data/examples/v2/tarpackage.sfp +0 -5
  81. data/examples/wordpress.sfp +0 -41
@@ -1,21 +0,0 @@
1
- include "modules/vm/vm.sfp"
2
- include "modules/hpcloud/hpcloud.sfp"
3
- include "modules/hadoop1/hadoop1.sfp"
4
- proxy isa Node {
5
- sfpAddress is "localhost"
6
- hpcloud isa HPCloud {
7
- vm_ssh_key_name = "nurikey"
8
- }
9
- }
10
- master isa VM {
11
- in_cloud is proxy.hpcloud
12
- hadoop isa Hadoop1Master
13
- }
14
- slave1 isa VM {
15
- in_cloud is proxy.hpcloud
16
- hadoop isa Hadoop1Slave {
17
- master is master.hadoop
18
- }
19
- }
20
- slave2 extends slave1
21
- slave3 extends slave1
@@ -1,21 +0,0 @@
1
- include "modules/vm/vm.sfp"
2
- include "modules/hpcloud/hpcloud.sfp"
3
- include "modules/hadoop2/hadoop2.sfp"
4
- proxy isa Node {
5
- sfpAddress is "localhost"
6
- hpcloud isa HPCloud {
7
- vm_ssh_key_name = "nurikey"
8
- }
9
- }
10
- master isa VM {
11
- in_cloud is proxy.hpcloud
12
- hadoop isa Hadoop2Master
13
- }
14
- slave1 isa VM {
15
- in_cloud is proxy.hpcloud
16
- hadoop isa Hadoop2Slave {
17
- master is master.hadoop
18
- }
19
- }
20
- slave2 extends slave1
21
- slave3 extends slave1
@@ -1,18 +0,0 @@
1
- include "../modules/node/node.sfp"
2
- include "../modules/hpcloud/hpcloud.sfp"
3
- include "../modules/vm/vm.sfp"
4
- include "../modules/apache/apache.sfp"
5
-
6
- proxy isa Node {
7
- sfpAddress is "localhost"
8
- hpcloud isa HPCloud {
9
- key_name is "herry_key"
10
- }
11
- }
12
-
13
- vm1 isa VM {
14
- created = true
15
- apache isa Apache {
16
- running is true
17
- }
18
- }
@@ -1,14 +0,0 @@
1
- include "modules/node/node.sfp"
2
- include "modules/apache2/apache2.sfp"
3
- include "modules/vm/vm.sfp"
4
- include "modules/mockcloud/mockcloud.sfp"
5
-
6
- local isa Node {
7
- sfpAddress is "localhost"
8
- hpcloud isa MockCloud
9
- }
10
- vm1 isa VM {
11
- apache isa Apache2 {
12
- running is true
13
- }
14
- }
@@ -1,22 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'erb'
4
- require 'ostruct'
5
-
6
- class ErbBinding < OpenStruct
7
- def render(template)
8
- ERB.new(template).result(binding)
9
- end
10
- end
11
-
12
- if ARGV.length <= 0
13
- puts "Usage: generator.rb <template-file> [key=value]*"
14
- else
15
- template = File.read(ARGV.shift)
16
- data = {}
17
- ARGV.each do |arg|
18
- key, value = arg.split('=')
19
- data[key] = value
20
- end
21
- puts ErbBinding.new(data).render(template)
22
- end
@@ -1,66 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- def generate(number_apps)
4
- header = 'include "../modules/node/node.sfp"
5
- include "../modules/mockcloud/mockcloud.sfp"
6
- include "../modules/vm/vm.sfp"
7
- include "../modules/apache/apache.sfp"
8
- include "../modules/mysql/mysql.sfp"
9
- include "../modules/wordpresscluster/wordpresscluster.sfp"
10
-
11
- proxy isa Node {
12
- sfpAddress is "localhost"
13
- cloud isa MockCloud
14
- }
15
- '
16
- vmlb = 'vmlb isa VM {
17
- apache isa Apache {
18
- running is true
19
- is_load_balancer is true
20
- lb_members is (%members%)
21
- }
22
- }'
23
- vmapp = '%vmapp% isa VM {
24
- apache isa Apache {
25
- running is true
26
- }
27
- wp_web isa WordpressWeb {
28
- installed is true
29
- http is %vmapp%.apache
30
- database is vmdb.wp_db
31
- }
32
- }'
33
- vmdb = 'vmdb isa VM {
34
- mysql isa Mysql {
35
- running is true
36
- }
37
- wp_db isa WordpressDB {
38
- installed is true
39
- mysql is vmdb.mysql
40
- }
41
- }'
42
- output = ''
43
- members = ''
44
- global = "global {\n"
45
- 1.upto(number_apps) do |i|
46
- name = "vmapp#{i}"
47
- output += vmapp.gsub(/%vmapp%/, name) + "\n"
48
- members += "#{name},"
49
- global += "\tif vmlb.apache.running is true then #{name}.apache.running is true\n"
50
- global += "\tif #{name}.apache.running is true then vmdb.mysql.running is true\n"
51
- end
52
- global += "}\n"
53
- output = header +
54
- vmlb.sub(/%members%/, members.chop) + "\n" +
55
- output + vmdb + "\n" + global
56
- output
57
- end
58
-
59
- if $0 == __FILE__
60
- if ARGV[0] == 'help'
61
- puts "Usage: generator.rb [total-app-layer]"
62
- else
63
- number_apps = (ARGV.length > 0 ? ARGV[0].to_i : 3)
64
- puts generate(number_apps)
65
- end
66
- end
@@ -1,25 +0,0 @@
1
- /***
2
- *
3
- * Required parameters:
4
- * - total : number of slaves
5
- *
6
- */
7
-
8
- include "modules/vm/vm.sfp"
9
- include "modules/mockcloud/mockcloud.sfp"
10
- include "modules/hadoop2/hadoop2.sfp"
11
- proxy isa Node {
12
- sfpAddress is "localhost"
13
- cloud isa MockCloud
14
- }
15
- master isa VM {
16
- hadoop isa Hadoop2Master
17
- }
18
- slave1 isa VM {
19
- hadoop isa Hadoop2Slave {
20
- master is master.hadoop
21
- }
22
- }
23
- <% (2..total.to_i).each do |i| %>
24
- slave<%= i %> extends slave1
25
- <% end %>
@@ -1,38 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'net/http'
4
- require 'thread'
5
-
6
- len = 120
7
-
8
- def ping(address, port=1314)
9
- print "print #{address} "
10
- url = "http://#{address}:#{port}/sfpstate"
11
- uri = URI.parse(url)
12
- http = Net::HTTP.new(uri.host, uri.port)
13
- http.open_timeout = 2
14
- http.read_timeout = 5
15
- begin
16
- req = Net::HTTP::Get.new(uri.path)
17
- http.start
18
- http.request(req) { |res|
19
- puts "[#{res.code}] [OK]"
20
- }
21
- rescue Exception => e
22
- puts "[Failed] #{e}" #\n#{e.backtrace.join("\n")}"
23
- end
24
- end
25
-
26
- ping('hadoopmaster')
27
- finished = []
28
- (1..len).each do |i|
29
- # Thread.new {
30
- host = "hadoopslave#{i}"
31
- ping(host)
32
- finished << host
33
- # }
34
- end
35
-
36
- until finished.length >= len do
37
- sleep 1
38
- end
@@ -1,17 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- gen = "./generator.rb"
4
- nuri = "../bin/nuri -u -h -n -p -l -m"
5
- logdir = "mocktest"
6
-
7
- Dir.mkdir(logdir) if not File.exist?(logdir)
8
-
9
- 1.upto(6) do |i|
10
- logfile = "#{logdir}/mocktest.log.#{i}"
11
- sfpfile = "mocktest-#{i}.sfp"
12
- system("#{gen} #{i} > #{sfpfile}")
13
- print "Processing #{sfpfile}..."
14
- system("#{nuri} #{sfpfile} 1>#{logfile} 2>#{logfile}")
15
- system("mv #{sfpfile} #{logdir}")
16
- puts "[OK]"
17
- end
@@ -1,37 +0,0 @@
1
- include "modules/vm/vm.sfp"
2
- include "modules/openstack/openstack.sfp"
3
-
4
- proxy isa Node {
5
- sfpAddress is "localhost"
6
- herry isa OpenStack {
7
- // replace the value of OpenStack Identity's URL plus "/tokens/"
8
- auth_uri is "http://16.25.166.21:5000/v2.0/tokens/"
9
-
10
- // replace the value with your SSH key name, and then put
11
- // the private key (with name <key-name>.pem) in module's directory.
12
- vm_ssh_key_name is "nurikey"
13
-
14
- // an image that already has nuri agent
15
- vm_image is "8fe14786-5388-4787-8aaf-96feebfa8aae"
16
- }
17
- }
18
-
19
- include "modules/hadoop1/hadoop1.sfp"
20
-
21
- vm1 isa VM {
22
- hadoop isa Hadoop1Master {
23
- // replace this with the URL of hadoop1 tar package file
24
- source is "http://master.nuri.ext9.sup.hpl.hp.com/hadoop"
25
- }
26
- }
27
- vm2 isa VM {
28
- hadoop isa Hadoop1Slave {
29
- master is vm1.hadoop
30
- // replace this with the URL of hadoop1 tar package file
31
- source is "http://master.nuri.ext9.sup.hpl.hp.com/hadoop"
32
- }
33
- }
34
- vm3 extends vm2
35
- vm4 extends vm2
36
- vm5 extends vm2
37
- vm6 extends vm2
@@ -1,39 +0,0 @@
1
- include "modules/vm/vm.sfp"
2
- include "modules/openstack/openstack.sfp"
3
-
4
- proxy isa Node {
5
- sfpAddress is "localhost"
6
- herry isa OpenStack {
7
- auth_uri is "http://16.25.166.21:5000/v2.0/tokens/"
8
-
9
- // use m1.medium (id="2") flavor because Hadoop2 requires minimum 4GB of memory
10
- vm_flavor is "3"
11
-
12
- // - replace the value with your key name
13
- // - put the key file <key-name>.pem in module's directory
14
- vm_ssh_key_name is "nurikey"
15
-
16
- // a VM image that already has Nuri agent
17
- vm_image is "8fe14786-5388-4787-8aaf-96feebfa8aae"
18
- }
19
- }
20
-
21
- include "modules/hadoop2/hadoop2.sfp"
22
-
23
- vm1 isa VM {
24
- hadoop isa Hadoop2Master {
25
- // replace this with the URL of hadoop2 tar package file
26
- source is "http://master.nuri.ext9.sup.hpl.hp.com/hadoop"
27
- }
28
- }
29
- vm2 isa VM {
30
- hadoop isa Hadoop2Slave {
31
- master is vm1.hadoop
32
- // replace this with the URL of hadoop2 tar package file
33
- source is "http://master.nuri.ext9.sup.hpl.hp.com/hadoop"
34
- }
35
- }
36
- vm3 extends vm2
37
- vm4 extends vm2
38
- vm5 extends vm2
39
- vm6 extends vm2
File without changes
@@ -1,11 +0,0 @@
1
- include "test.inc"
2
- include "modules/node/node.sfp"
3
- include "modules/package/package.sfp"
4
-
5
- local isa Node {
6
- sfpAddress is "localhost"
7
-
8
- wget isa Package {
9
- package_name = "wget"
10
- }
11
- }
@@ -1,30 +0,0 @@
1
- include "service.sfp"
2
-
3
- schema Apache extends Service {
4
- package_name = "apache2"
5
- service_name = "apache2"
6
- installed = true
7
- running = true
8
- configured = true
9
-
10
- final port = 80
11
- final document_root = "/var/www"
12
- final modules isset String
13
- final server_name = ""
14
-
15
- // load balancer config
16
- final load_balancer = false
17
- final lb_members isset Node
18
- final lb_method = "byrequests" // byrequests, bytraffic, bybusyness
19
-
20
- sub configure {
21
- condition {
22
- this.installed = true
23
- this.running = false
24
- this.configured = false
25
- }
26
- effect {
27
- this.configured = true
28
- }
29
- }
30
- }
@@ -1,6 +0,0 @@
1
- include "package.sfp"
2
-
3
- schema AptPackage extends Package {
4
- final version = "latest"
5
- final source = "default"
6
- }
@@ -1,12 +0,0 @@
1
- include "../../modules/mockcloud/mockcloud.sfp"
2
- include "../../modules/vm/vm.sfp"
3
- include "apache.sfp"
4
-
5
- proxy isa Node {
6
- sfpAddress is "localhost"
7
- mockcloud isa MockCloud
8
- }
9
- vm1 isa VM {
10
- //apache isa Apache
11
- s isa Service
12
- }
@@ -1,22 +0,0 @@
1
- schema Package {
2
- installed = true
3
-
4
- final package_name = ""
5
- final version = ""
6
- final source = ""
7
-
8
- synchronized sub install {
9
- effect {
10
- this.installed = true
11
- }
12
- }
13
-
14
- synchronized sub uninstall {
15
- condition {
16
- this.installed = true
17
- }
18
- effect {
19
- this.installed = false
20
- }
21
- }
22
- }
@@ -1,94 +0,0 @@
1
- include "aptpackage.sfp"
2
-
3
- schema Service {
4
- running = true
5
- configured = true
6
-
7
- final service_name = ""
8
-
9
- sub start {
10
- condition {
11
- this.running != true
12
- this.configured = true
13
- }
14
- effect {
15
- this.running = true
16
- }
17
- }
18
-
19
- sub stop {
20
- condition {
21
- this.running = true
22
- }
23
- effect {
24
- this.running = false
25
- }
26
- }
27
-
28
- sub configure {
29
- condition {
30
- this.running = false
31
- }
32
- effect {
33
- this.configured = true
34
- }
35
- }
36
- }
37
-
38
- schema SysVService extends Service {
39
- final runlevel isset String
40
- }
41
-
42
- schema AptService extends AptPackage {
43
- synchronized sub install {
44
- condition {
45
- this.installed != true
46
- }
47
- effect {
48
- this.installed = true
49
- this.running = false
50
- this.configured = false
51
- }
52
- }
53
-
54
- synchronized sub uninstall {
55
- condition {
56
- this.running = false
57
- this.installed = true
58
- }
59
- effect {
60
- this.installed = false
61
- this.configured = true
62
- }
63
- }
64
-
65
- sub start {
66
- condition {
67
- this.running != true
68
- this.installed = true
69
- this.configured = true
70
- }
71
- effect {
72
- this.running = true
73
- }
74
- }
75
-
76
- sub stop {
77
- condition {
78
- this.running = true
79
- }
80
- effect {
81
- this.running = false
82
- }
83
- }
84
-
85
- sub configure {
86
- condition {
87
- this.installed = true
88
- this.running = false
89
- }
90
- effect {
91
- this.configured = true
92
- }
93
- }
94
- }