pwnix-api-client 1.1 → 1.2

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 CHANGED
@@ -3,4 +3,5 @@ source :rubygems
3
3
  group :development do
4
4
  gem 'pry'
5
5
  end
6
+
6
7
  gemspec
@@ -8,15 +8,23 @@ PATH
8
8
  GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
+ coderay (1.0.7)
11
12
  httparty (0.9.0)
12
13
  multi_json (~> 1.0)
13
14
  multi_xml
14
15
  json (1.7.5)
16
+ method_source (0.8)
15
17
  multi_json (1.3.6)
16
18
  multi_xml (0.5.1)
19
+ pry (0.9.10)
20
+ coderay (~> 1.0.5)
21
+ method_source (~> 0.8)
22
+ slop (~> 3.3.1)
23
+ slop (3.3.3)
17
24
 
18
25
  PLATFORMS
19
26
  ruby
20
27
 
21
28
  DEPENDENCIES
29
+ pry
22
30
  pwnix-api-client!
@@ -27,16 +27,16 @@ module Pwnix
27
27
  self.class.post("/services/#{@service_name}/available", :body => {}).parsed_response['result']
28
28
  end
29
29
 
30
- def start
31
- self.class.post("/services/#{@service_name}/start", :body => {}).parsed_response['result']
30
+ def start(params)
31
+ self.class.post("/services/#{@service_name}/start", :body => params).parsed_response['result']
32
32
  end
33
33
 
34
34
  def stop
35
35
  self.class.post("/services/#{@service_name}/stop", :body => {}).parsed_response['result']
36
36
  end
37
37
 
38
- def enable
39
- self.class.post("/services/#{@service_name}/enable", :body => {}).parsed_response['result']
38
+ def enable(params={})
39
+ self.class.post("/services/#{@service_name}/enable", :body => params).parsed_response['result']
40
40
  end
41
41
 
42
42
  def disable
@@ -20,7 +20,7 @@
20
20
  end
21
21
 
22
22
  def configure(config={}) # Configuration options
23
- self.class.post("/shells/#{@shell_name}/configure", :body => config).parsed_response['result']
23
+ self.class.post("/shells/#{@shell_name}/configure", :body => config ).parsed_response['result']
24
24
  end
25
25
 
26
26
  def enable
@@ -7,8 +7,12 @@ module Pwnix
7
7
  debug_output
8
8
  format :json
9
9
 
10
- def generate
11
- self.class.post("/shells/shell_receiver_config/generate", :body => {}).parsed_response['result']
10
+ def backtrack_generate
11
+ self.class.post("/shells/backtrack_receiver_config/generate", :body => {}).parsed_response['result']
12
+ end
13
+
14
+ def pwnix_generate
15
+ self.class.post("/shells/pwnix_receiver_config/generate", :body => {}).parsed_response['result']
12
16
  end
13
17
 
14
18
  end
@@ -11,22 +11,35 @@ module Pwnix
11
11
  self.class.post("/system/network/status", :body => {}).parsed_response['result']
12
12
  end
13
13
 
14
- def set_static_ip(params)
15
- # :interface
16
- # :dns
17
- # :netmask
18
- # :
19
- # :
20
- self.class.post("/system/network/static_ip/enable", :body => {}).parsed_response['result']
14
+ def list_interfaces
15
+ details = self.class.post("/system/network/status", :body => {}).parsed_response['result']
16
+ # Read http://blog.jayfields.com/2008/03/ruby-inject.html if you're not super-familiar w/ inject
17
+ details.inject([]){|interface_list, (interface,interface_details)| interface_list << interface; }
21
18
  end
22
19
 
23
- def set_dhcp
24
- self.class.post("/system/network/dhcp/enable", :body => {}).parsed_response['result']
20
+ # Done
21
+ def interface_status(interface)
22
+ self.class.post("/system/network/#{interface}/status", :body => {}).parsed_response['result']
25
23
  end
26
24
 
27
- def set_mac(mac=nil)
28
- self.class.post("/system/network/mac/set", :body => { :mac => mac } ).parsed_response['result']
25
+ # Done
26
+ def interface_reset(interface)
27
+ self.class.post("/system/network/#{interface}/reset", :body => {}).parsed_response['result']
29
28
  end
29
+
30
+ def interface_set_dhcp(interface)
31
+ self.class.post("/system/network/#{interface}/dhcp/enable", :body => {}).parsed_response['result']
32
+ end
33
+
34
+ def interface_set_static_ip(interface,options)
35
+ # [ :ip, :netmask, :gateway, :dns]
36
+ self.class.post("/system/network/#{interface}/static_ip/set", :body => options).parsed_response['result']
37
+ end
38
+
39
+ def interface_set_mac(interface, mac=nil)
40
+ self.class.post("/system/network/#{interface}/mac/set", :body => { :mac => mac } ).parsed_response['result']
41
+ end
42
+
30
43
  end
31
44
  end
32
45
  end
@@ -32,7 +32,7 @@ module Pwnix
32
32
  end
33
33
 
34
34
  def set_hostname(hostname)
35
- self.class.post("/system/os/hostname/set", :body => {}).parsed_response['result']
35
+ self.class.post("/system/os/hostname/set", :body => {:hostname => hostname}).parsed_response['result']
36
36
  end
37
37
 
38
38
  end
@@ -1,7 +1,7 @@
1
1
  module Pwnix
2
2
  module Api
3
3
  module Client
4
- VERSION = "1.1"
4
+ VERSION = "1.2"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwnix-api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.1'
4
+ version: '1.2'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-29 00:00:00.000000000 Z
12
+ date: 2012-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &8647220 !ruby/object:Gem::Requirement
16
+ requirement: &15558840 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *8647220
24
+ version_requirements: *15558840
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: json
27
- requirement: &8646800 !ruby/object:Gem::Requirement
27
+ requirement: &15558420 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *8646800
35
+ version_requirements: *15558420
36
36
  description: ! ' Remotely manage a Pwnix device. '
37
37
  email:
38
38
  - jcran@pwnieexpress.com