cfcm 0.0.6 → 0.0.7

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.
@@ -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: