forj 0.0.24 → 0.0.25
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.
- 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
|