forj 0.0.24 → 0.0.25
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +10 -8
- data/bin/forj +2 -1
- data/lib/boot.rb +11 -8
- data/lib/connection.rb +3 -2
- data/lib/down.rb +3 -2
- data/lib/log.rb +7 -4
- data/lib/network.rb +3 -1
- data/lib/repositories.rb +3 -8
- data/lib/security.rb +3 -2
- data/lib/yaml_parse.rb +1 -0
- data/spec/connection_spec.rb +1 -0
- data/spec/repositories_spec.rb +1 -0
- metadata +33 -11
data/Gemfile
CHANGED
@@ -15,13 +15,15 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
source '
|
18
|
+
source 'https://rubygems.org'
|
19
19
|
|
20
|
-
gem '
|
21
|
-
gem '
|
22
|
-
gem '
|
20
|
+
gem 'mime-types','1.25.1'
|
21
|
+
gem 'excon','0.33.0'
|
22
|
+
gem 'json'
|
23
|
+
gem 'nokogiri','1.5.11'
|
24
|
+
gem 'fog', '1.19.0'
|
23
25
|
gem 'git', '>=1.2.7'
|
24
|
-
gem '
|
25
|
-
gem '
|
26
|
-
gem '
|
27
|
-
gem '
|
26
|
+
gem 'rainbow'
|
27
|
+
gem 'rbx-require-relative', '~> 0.0.7'
|
28
|
+
gem 'thor', '~>0.16.0'
|
29
|
+
gem 'hpcloud', '~> 2.0.8'
|
data/bin/forj
CHANGED
@@ -15,8 +15,9 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require '
|
18
|
+
require 'rubygems'
|
19
19
|
require 'require_relative'
|
20
|
+
require 'thor'
|
20
21
|
|
21
22
|
require_relative '../lib/boot.rb'
|
22
23
|
include Boot
|
data/lib/boot.rb
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
+
require 'rubygems'
|
18
19
|
require 'require_relative'
|
19
20
|
|
20
21
|
require_relative 'network.rb'
|
@@ -36,16 +37,18 @@ include Helpers
|
|
36
37
|
module Boot
|
37
38
|
def boot(blueprint, cloud_provider, name, build_config_dir, branch, test = false)
|
38
39
|
begin
|
39
|
-
initial_msg =
|
40
|
-
|
40
|
+
initial_msg = 'booting %s on %s' % [blueprint , cloud_provider]
|
41
|
+
|
41
42
|
Logging.info(initial_msg)
|
42
43
|
puts (initial_msg)
|
43
44
|
|
44
45
|
forj_dir = File.expand_path(File.dirname(__FILE__))
|
45
46
|
Dir.chdir(forj_dir)
|
46
|
-
definitions = YamlParse.get_values('
|
47
|
+
definitions = YamlParse.get_values('catalog.yaml')
|
48
|
+
|
49
|
+
maestro_url = definitions['default']['maestro']
|
47
50
|
|
48
|
-
Repositories.clone_repo
|
51
|
+
Repositories.clone_repo(maestro_url)
|
49
52
|
|
50
53
|
network = Network.create_network(name)
|
51
54
|
subnet = Network.create_subnet(network.id, name)
|
@@ -72,11 +75,11 @@ module Boot
|
|
72
75
|
Dir.chdir(build_path)
|
73
76
|
|
74
77
|
if build_config_dir
|
75
|
-
command =
|
78
|
+
command = 'bin/build.sh --build_ID maestro.%s --box-name maestro --build-conf-dir %s --build-config box-13.5 --gitBranch %s' % [name,build_config_dir, branch]
|
76
79
|
elsif blueprint != 'redstone'
|
77
|
-
command =
|
80
|
+
command = 'bin/build.sh --build_ID %s --box-name maestro --build-conf-dir ~/.forj/maestro/build/conf --build-config box --blueprint %s' % [name, blueprint]
|
78
81
|
else
|
79
|
-
command =
|
82
|
+
command = 'bin/build.sh --build_ID %s --box-name maestro --build-conf-dir ~/.forj/maestro/build/conf --build-config box' % [name]
|
80
83
|
end
|
81
84
|
|
82
85
|
Kernel.system(command)
|
@@ -90,7 +93,7 @@ module Boot
|
|
90
93
|
end
|
91
94
|
|
92
95
|
rescue SystemExit, Interrupt
|
93
|
-
msg =
|
96
|
+
msg = '%s interrupted by user' % [name]
|
94
97
|
puts msg
|
95
98
|
Logging.info(msg)
|
96
99
|
rescue StandardError => e
|
data/lib/connection.rb
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
+
require 'rubygems'
|
18
19
|
require 'fog'
|
19
20
|
require 'require_relative'
|
20
21
|
|
@@ -60,7 +61,7 @@ end
|
|
60
61
|
|
61
62
|
def get_credentials
|
62
63
|
home = File.expand_path('~')
|
63
|
-
creds =
|
64
|
+
creds = '%s/.hpcloud/accounts/hp' % [home]
|
64
65
|
template = YAML.load_file(creds)
|
65
66
|
credentials = Hash.new
|
66
67
|
|
@@ -71,7 +72,7 @@ def get_credentials
|
|
71
72
|
credentials['tenant_id'] = template[:credentials][:tenant_id]
|
72
73
|
credentials['availability_zone'] = template[:regions][:compute]
|
73
74
|
rescue => e
|
74
|
-
puts
|
75
|
+
puts 'your credentials are not configured, delete the file %s and run forj setup again' % [creds]
|
75
76
|
Logging.error(e.message)
|
76
77
|
end
|
77
78
|
credentials
|
data/lib/down.rb
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
+
require 'rubygems'
|
18
19
|
require 'require_relative'
|
19
20
|
|
20
21
|
require_relative 'network.rb'
|
@@ -31,9 +32,9 @@ module Down
|
|
31
32
|
def down(name)
|
32
33
|
begin
|
33
34
|
|
34
|
-
puts
|
35
|
+
puts 'deleting %s...' % [name]
|
35
36
|
|
36
|
-
definitions = YamlParse::get_values('
|
37
|
+
definitions = YamlParse::get_values('catalog.yaml')
|
37
38
|
|
38
39
|
# get the subnet
|
39
40
|
subnet = Network::get_subnet(name)
|
data/lib/log.rb
CHANGED
@@ -18,6 +18,7 @@
|
|
18
18
|
|
19
19
|
# create a forj.log file in ~/.hpcloud/forj.log
|
20
20
|
|
21
|
+
require 'rubygems'
|
21
22
|
require 'logger'
|
22
23
|
|
23
24
|
require 'require_relative'
|
@@ -31,9 +32,10 @@ include Helpers
|
|
31
32
|
module Logging
|
32
33
|
def info(message)
|
33
34
|
home = Helpers.get_home_path
|
34
|
-
|
35
|
+
d = '%s/.forj/' % [home]
|
36
|
+
Helpers.create_directory(d)
|
35
37
|
|
36
|
-
log =
|
38
|
+
log = '%s/.forj/forj.log' % [home]
|
37
39
|
log = Logger.new(log)
|
38
40
|
log.level = Logger::DEBUG
|
39
41
|
|
@@ -46,9 +48,10 @@ module Logging
|
|
46
48
|
|
47
49
|
def error(message)
|
48
50
|
home = Helpers.get_home_path
|
49
|
-
|
51
|
+
d = '%s/.forj/' % [home]
|
52
|
+
Helpers.create_directory(d)
|
50
53
|
|
51
|
-
log =
|
54
|
+
log = '%s/.forj/forj.log' % [home]
|
52
55
|
log = Logger.new(log)
|
53
56
|
log.level = Logger::ERROR
|
54
57
|
|
data/lib/network.rb
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
+
require 'rubygems'
|
18
19
|
require 'require_relative'
|
19
20
|
|
20
21
|
require_relative 'connection.rb'
|
@@ -28,7 +29,8 @@ include Logging
|
|
28
29
|
module Network
|
29
30
|
def create_network(name)
|
30
31
|
begin
|
31
|
-
|
32
|
+
info = 'creating network %s' % [name]
|
33
|
+
Logging.info(info)
|
32
34
|
Connection.network.networks.create(:name => name)
|
33
35
|
rescue => e
|
34
36
|
Logging.error(e.message)
|
data/lib/repositories.rb
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
+
require 'rubygems'
|
18
19
|
require 'git'
|
19
20
|
require 'fileutils'
|
20
21
|
require 'require_relative'
|
@@ -28,14 +29,8 @@ include Logging
|
|
28
29
|
# Repositories module
|
29
30
|
#
|
30
31
|
module Repositories
|
31
|
-
def clone_repo
|
32
|
-
|
32
|
+
def clone_repo(maestro_url)
|
33
33
|
current_dir = Dir.pwd
|
34
|
-
forj_dir = File.expand_path(File.dirname(__FILE__))
|
35
|
-
Dir.chdir(forj_dir)
|
36
|
-
|
37
|
-
definitions = YamlParse::get_values('../lib/catalog.yaml')
|
38
|
-
maestro_url = definitions['default']['maestro']
|
39
34
|
|
40
35
|
home = File.expand_path('~')
|
41
36
|
path = home + '/.forj/'
|
@@ -49,7 +44,7 @@ module Repositories
|
|
49
44
|
Git.clone(maestro_url, 'maestro', :path => path)
|
50
45
|
end
|
51
46
|
rescue => e
|
52
|
-
puts
|
47
|
+
puts 'Error while cloning the repo from %s' % [maestro_url]
|
53
48
|
puts 'If this error persist you could clone the repo manually in ~/.forj/'
|
54
49
|
Logging.error(e.message)
|
55
50
|
end
|
data/lib/security.rb
CHANGED
@@ -15,6 +15,7 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
+
require 'rubygems'
|
18
19
|
require 'require_relative'
|
19
20
|
|
20
21
|
require_relative 'connection.rb'
|
@@ -34,7 +35,7 @@ module SecurityGroup
|
|
34
35
|
if sec_groups.length >= 1
|
35
36
|
sec_group = sec_groups[0]
|
36
37
|
else
|
37
|
-
description =
|
38
|
+
description = 'Security group for blueprint %s' % [name]
|
38
39
|
Logging.info(description)
|
39
40
|
sec_group = Connection.network.security_groups.create(
|
40
41
|
:name => name,
|
@@ -67,7 +68,7 @@ module SecurityGroup
|
|
67
68
|
:remote_ip_prefix => '0.0.0.0/0'
|
68
69
|
)
|
69
70
|
rescue StandardError => e
|
70
|
-
msg =
|
71
|
+
msg = 'error creating the rule for port %s' % [port_min]
|
71
72
|
puts msg
|
72
73
|
Logging.error(e.message)
|
73
74
|
end
|
data/lib/yaml_parse.rb
CHANGED
data/spec/connection_spec.rb
CHANGED
data/spec/repositories_spec.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: forj
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2014-06-12 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
16
|
-
requirement: &
|
16
|
+
requirement: &10315720 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,32 @@ dependencies:
|
|
21
21
|
version: 0.16.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *10315720
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: nokogiri
|
27
|
+
requirement: &10314840 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.5.0
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *10314840
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: LibXML
|
38
|
+
requirement: &10313900 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 2.8.0
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *10313900
|
25
47
|
- !ruby/object:Gem::Dependency
|
26
48
|
name: fog
|
27
|
-
requirement: &
|
49
|
+
requirement: &10309980 !ruby/object:Gem::Requirement
|
28
50
|
none: false
|
29
51
|
requirements:
|
30
52
|
- - ! '>='
|
@@ -32,10 +54,10 @@ dependencies:
|
|
32
54
|
version: 1.22.1
|
33
55
|
type: :runtime
|
34
56
|
prerelease: false
|
35
|
-
version_requirements: *
|
57
|
+
version_requirements: *10309980
|
36
58
|
- !ruby/object:Gem::Dependency
|
37
59
|
name: hpcloud
|
38
|
-
requirement: &
|
60
|
+
requirement: &10309340 !ruby/object:Gem::Requirement
|
39
61
|
none: false
|
40
62
|
requirements:
|
41
63
|
- - ! '>='
|
@@ -43,10 +65,10 @@ dependencies:
|
|
43
65
|
version: 2.0.6
|
44
66
|
type: :runtime
|
45
67
|
prerelease: false
|
46
|
-
version_requirements: *
|
68
|
+
version_requirements: *10309340
|
47
69
|
- !ruby/object:Gem::Dependency
|
48
70
|
name: git
|
49
|
-
requirement: &
|
71
|
+
requirement: &10308560 !ruby/object:Gem::Requirement
|
50
72
|
none: false
|
51
73
|
requirements:
|
52
74
|
- - ! '>='
|
@@ -54,10 +76,10 @@ dependencies:
|
|
54
76
|
version: 1.2.7
|
55
77
|
type: :runtime
|
56
78
|
prerelease: false
|
57
|
-
version_requirements: *
|
79
|
+
version_requirements: *10308560
|
58
80
|
- !ruby/object:Gem::Dependency
|
59
81
|
name: rbx-require-relative
|
60
|
-
requirement: &
|
82
|
+
requirement: &10307680 !ruby/object:Gem::Requirement
|
61
83
|
none: false
|
62
84
|
requirements:
|
63
85
|
- - ! '>='
|
@@ -65,7 +87,7 @@ dependencies:
|
|
65
87
|
version: 0.0.9
|
66
88
|
type: :runtime
|
67
89
|
prerelease: false
|
68
|
-
version_requirements: *
|
90
|
+
version_requirements: *10307680
|
69
91
|
description: forj command line
|
70
92
|
email:
|
71
93
|
- forj@forj.io
|