nuri 0.5.4 → 0.5.5

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 (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
- }