cfcm 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ notifications:
5
+ email: false
data/Gemfile CHANGED
@@ -1,3 +1,10 @@
1
- gem 'vmc', "0.4.0.beta.36"
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'cfoundry', '0.3.36'
2
4
  gem 'eventmachine', "0.12.10"
3
- gem 'rbvmomi', "1.5.1"
5
+ gem 'rbvmomi', "1.5.1"
6
+
7
+ group :test do
8
+ gem 'rake', '0.9.2.2'
9
+ gem 'rspec', '2.11.0'
10
+ end
@@ -1,67 +1,40 @@
1
1
  GEM
2
+ remote: https://rubygems.org/
2
3
  specs:
3
- addressable (2.2.6)
4
4
  builder (3.0.0)
5
- cfoundry (0.3.23)
5
+ cfoundry (0.3.36)
6
6
  multi_json (~> 1.3.6)
7
7
  rest-client (~> 1.6.1)
8
- rubyzip (~> 0.9.5)
9
- crack (0.3.1)
8
+ rubyzip (~> 0.9.9)
9
+ diff-lcs (1.1.3)
10
10
  eventmachine (0.12.10)
11
- interact (0.4.7)
12
- json_pure (1.6.7)
13
- manifests-vmc-plugin (0.4.3)
14
- cfoundry (~> 0.3.9)
15
11
  mime-types (1.19)
16
- mothership (0.0.14)
17
12
  multi_json (1.3.6)
18
13
  nokogiri (1.5.5)
19
14
  rake (0.9.2.2)
20
- rb-readline (0.4.2)
21
15
  rbvmomi (1.5.1)
22
16
  builder
23
17
  nokogiri (>= 1.4.1)
24
18
  trollop
25
19
  rest-client (1.6.7)
26
20
  mime-types (>= 1.16)
27
- rspec (1.3.2)
21
+ rspec (2.11.0)
22
+ rspec-core (~> 2.11.0)
23
+ rspec-expectations (~> 2.11.0)
24
+ rspec-mocks (~> 2.11.0)
25
+ rspec-core (2.11.1)
26
+ rspec-expectations (2.11.3)
27
+ diff-lcs (~> 1.1.3)
28
+ rspec-mocks (2.11.3)
28
29
  rubyzip (0.9.9)
29
- simplecov (0.6.4)
30
- multi_json (~> 1.0)
31
- simplecov-html (~> 0.5.3)
32
- simplecov-html (0.5.3)
33
- terminal-table (1.4.5)
34
30
  trollop (2.0)
35
- uuidtools (2.1.3)
36
- vmc (0.4.0.beta.36)
37
- addressable (~> 2.2.6)
38
- cfoundry (~> 0.3.23)
39
- interact (~> 0.4.0)
40
- interact (~> 0.4.7)
41
- json_pure (>= 1.5.1, < 1.7.0)
42
- json_pure (~> 1.6.5)
43
- manifests-vmc-plugin (~> 0.4.3)
44
- mothership (~> 0.0.14)
45
- multi_json (~> 1.3.6)
46
- rake
47
- rake
48
- rb-readline (~> 0.4.2)
49
- rest-client (>= 1.6.1, < 1.7.0)
50
- rspec
51
- rspec (~> 1.3.0)
52
- rubyzip (~> 0.9.4)
53
- simplecov
54
- terminal-table (~> 1.4.2)
55
- uuidtools (~> 2.1.0)
56
- webmock (~> 1.5.0)
57
- webmock (1.5.0)
58
- addressable (>= 2.2.2)
59
- crack (>= 0.1.7)
60
31
 
61
32
  PLATFORMS
62
33
  ruby
63
34
 
64
35
  DEPENDENCIES
36
+ cfoundry (= 0.3.36)
65
37
  eventmachine (= 0.12.10)
38
+ rake (= 0.9.2.2)
66
39
  rbvmomi (= 1.5.1)
67
- vmc (= 0.4.0.beta.36)
40
+ rspec (= 2.11.0)
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  #cloudfoundry-chaos-monkey
2
2
 
3
+ [![Build Status](https://secure.travis-ci.org/BrianMMcClain/cloudfoundry-chaos-monkey.png)](http://travis-ci.org/BrianMMcClain/cloudfoundry-chaos-monkey)
4
+
3
5
  Chaos Monkey style service for Cloud Foundry
4
6
 
5
7
  ##Using Cloud Foundry Chaos Monkey
data/Rakefile CHANGED
@@ -1,2 +1,7 @@
1
1
  #!/usr/bin/env rake
2
- require "bundler/gem_tasks"
2
+ require "bundler/gem_tasks"
3
+ require 'rspec/core/rake_task'
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ task :default => :spec
@@ -16,5 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.version = CFCM::VERSION
17
17
 
18
18
  gem.add_dependency "thor"
19
- gem.add_dependency "vmc"
19
+ gem.add_dependency "cfoundry"
20
20
  end
@@ -1,12 +1,12 @@
1
- require 'vmc'
1
+ require 'cfoundry'
2
2
 
3
3
  module CFCM
4
4
  module CF
5
5
  class Session
6
6
  def initialize(target, username, password)
7
7
  begin
8
- @client = VMC::Client.new(target)
9
- @client.login(username, password)
8
+ @client = CFoundry::V1::Client.new(target)
9
+ @client.login({:username => username, :password => password})
10
10
  rescue
11
11
  #puts "Could not login!"
12
12
  #TODO: Handle error
@@ -15,7 +15,7 @@ module CFCM
15
15
  end
16
16
 
17
17
  def is_logged_in
18
- return @client.auth_token != nil
18
+ return @client.logged_in?
19
19
  end
20
20
 
21
21
  def get_app(app_name)
@@ -25,14 +25,7 @@ module CFCM
25
25
  return
26
26
  end
27
27
 
28
- @client.apps.each do |app|
29
- if app[:name] == app_name
30
- return app
31
- end
32
- end
33
-
34
- #puts "Application Not Found"
35
- #TODO: Handle error
28
+ return @client.app_by_name(app_name)
36
29
  return nil
37
30
  end
38
31
 
@@ -61,22 +54,22 @@ module CFCM
61
54
 
62
55
  remaining_memory = self.remaining_memory
63
56
  app = self.get_app(app_name)
64
- app_memory = app[:resources][:memory]
57
+ app_memory = app.memory
65
58
 
66
59
  max_new_instances = (remaining_memory / app_memory).floor
67
60
  return max_new_instances
68
61
  end
69
62
 
70
63
  def add_instance(app)
71
- app[:instances] += 1
72
- @client.update_app(app[:name], app)
73
- return app
64
+ app.total_instances += 1
65
+ app.update!
66
+ return self.get_app(app.name)
74
67
  end
75
68
 
76
69
  def remove_instance(app)
77
- app[:instances] -= 1
78
- @client.update_app(app[:name], app)
79
- return app
70
+ app.total_instances -= 1
71
+ app.update!
72
+ return self.get_app(app.name)
80
73
  end
81
74
 
82
75
  end
@@ -14,9 +14,9 @@ module CFCM
14
14
  def power_off_vm(vm_name)
15
15
  opts = {:host=>@host, :user=>@user, :password=>@password, :insecure=>true}
16
16
  vim = RbVmomi::VIM.connect opts
17
- dc = vim.serviceInstance.content.rootFolder.traverse(config["datacenter"], RbVmomi::VIM::Datacenter) or abort "datacenter not found"
18
- vm = dc.vmFolder.traverse(vm_name, VIM::VirtualMachine) or abort "VM not found"
19
- vm.PowerOffVM_Task.wait_for_completion
17
+ dc = vim.serviceInstance.content.rootFolder.traverse(@config["datacenter"], RbVmomi::VIM::Datacenter) or abort "datacenter not found"
18
+ vm = dc.vmFolder.traverse(vm_name, RbVmomi::VIM::VirtualMachine) or abort "VM not found"
19
+ vm.PowerOffVM_Task.wait_for_completion
20
20
  end
21
21
 
22
22
  end
@@ -22,7 +22,7 @@ module CFCM
22
22
  # Determine if we should unleash the monkey
23
23
  if (Random.rand(100) + 1) <= @probability
24
24
  @app = @session.get_app(@app_name)
25
- instances = @app[:instances]
25
+ instances = @app.total_instances
26
26
  max_growth = @session.max_instance_growth(@app_name)
27
27
 
28
28
  if instances > @max_instances
@@ -1,3 +1,3 @@
1
1
  module CFCM
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfcm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-06 00:00:00.000000000 Z
12
+ date: 2012-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -28,7 +28,7 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
- name: vmc
31
+ name: cfoundry
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
@@ -52,6 +52,7 @@ extensions: []
52
52
  extra_rdoc_files: []
53
53
  files:
54
54
  - .gitignore
55
+ - .travis.yml
55
56
  - Gemfile
56
57
  - Gemfile.lock
57
58
  - README.md
@@ -89,4 +90,3 @@ signing_key:
89
90
  specification_version: 3
90
91
  summary: ''
91
92
  test_files: []
92
- has_rdoc: