knife-ovmcli 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd4ff98527b955b67add9fc80e2a32ee4d4a6976
4
- data.tar.gz: dbfd4153b048926fa3b33d5cc13d566dec27878c
3
+ metadata.gz: 1b392fc5de09cd159162052e0e70e2e2c3395757
4
+ data.tar.gz: 61024e6d44d3a9b5fd52c7ed9574d8ec0eae03b6
5
5
  SHA512:
6
- metadata.gz: d0c9bf631443ed356fd5e9d566a63fb64c9967c88c3cfcb2b1a4ef964d1550c1e7d669900139eb937e9ab771243344496323968429d2c19db63c9e1621a38bbe
7
- data.tar.gz: 46eecc680fda0331fe7f65b7420150b5801098fefe54d4264efa0b3baa6d6379a70cf000074e0febe0296248ef3db74c66eacf7cfe1f4c44ae173088750a583f
6
+ metadata.gz: a1134edb619229bf2be45be0d9ccdf5c568bb8428467694d08c629197ec81e419cb109d4d52b8c242bac4e0cc83641f44f0766248868d66d33d535acccb254cc
7
+ data.tar.gz: d9030d249ca3ff5694ba1b46b25154fb50c6505131b7a873026de4513e3dcbad10cc03147f59f652489f3b0ad826f7eb9adaac8c1b4f502846804bebce1e4ff3
@@ -1,12 +1,12 @@
1
1
  #
2
2
  # Author:: Geoff O'Callaghan (<geoffocallaghan@gmail.com>)
3
- # Contributor::
3
+ # Contributor:: Michael Huisman michhuis@gmail.com
4
4
  # License:: Apache License, Version 2.0
5
5
  #
6
6
 
7
7
  require 'chef/knife'
8
8
 
9
- # Base class for OvmCli knife commands
9
+ # Base class for OracleVM knife commands
10
10
  class Chef
11
11
  class Knife
12
12
  class BaseOraclevmCommand < Knife
@@ -413,6 +413,54 @@ class Chef
413
413
  return current
414
414
  end
415
415
  #
416
+ # create_vdisk, create vdisk
417
+ #
418
+ def create_vdisk(vdisk, size, sparse, reposotory)
419
+ current = {:errormsg => "", :status => "", :time => "", :vmstatus => ""}
420
+
421
+ conn_opts=get_cli_connection
422
+ Chef::Log.debug("#{conn_opts[:host]}...create vdisk name=#{vdisk},#{size},#{sparse},#{reposotory}")
423
+ Net::SSH.start( conn_opts[:host], conn_opts[:user], :password => conn_opts[:password], :port => conn_opts[:port] ) do|ssh|
424
+ output = ssh.exec!("create VirtualDisk name=#{vdisk} size=#{size} sparse=#{sparse} shareable=No on Repository name=#{reposotory}")
425
+ output.each_line do |line|
426
+ if line.match(/Status:/)
427
+ current[:status]=line.split[1].strip
428
+ elsif line.match(/Time:/)
429
+ line["Time: "]=""
430
+ current[:time]=line.strip
431
+ elsif line.match(/Error Msg:/)
432
+ line["Error Msg: "]=""
433
+ current[:errormsg]=line.strip
434
+ end
435
+ end
436
+ end
437
+ return current
438
+ end
439
+ #
440
+ # add_vdisk, add vdisk
441
+ #
442
+ def add_vdisk(vmname, slot, vdisk)
443
+ current = {:errormsg => "", :status => "", :time => "", :vmstatus => ""}
444
+
445
+ conn_opts=get_cli_connection
446
+ Chef::Log.debug("#{conn_opts[:host]}...add vdisk name=#{vmname},#{slot},#{vdisk}")
447
+ Net::SSH.start( conn_opts[:host], conn_opts[:user], :password => conn_opts[:password], :port => conn_opts[:port] ) do|ssh|
448
+ output = ssh.exec!("create VmDiskMapping slot=#{slot} virtualDisk=#{vdisk} name=#{vdisk} on Vm name=#{vmname}")
449
+ output.each_line do |line|
450
+ if line.match(/Status:/)
451
+ current[:status]=line.split[1].strip
452
+ elsif line.match(/Time:/)
453
+ line["Time: "]=""
454
+ current[:time]=line.strip
455
+ elsif line.match(/Error Msg:/)
456
+ line["Error Msg: "]=""
457
+ current[:errormsg]=line.strip
458
+ end
459
+ end
460
+ end
461
+ return current
462
+ end
463
+ #
416
464
  # edit_vm, edit VM cpu and memory
417
465
  #
418
466
  def edit_vm(vmname, memory, memorylimit, cpucount, cpucountlimit)
@@ -0,0 +1,46 @@
1
+ #
2
+ # Code copied from Author:: Geoff O'Callaghan (<geoffocallaghan@gmail.com>)
3
+ # Author:: Michael Huisman michhuis@gmail.com
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+
7
+ require 'chef/knife'
8
+ require 'chef/knife/BaseOraclevmCommand'
9
+ require 'netaddr'
10
+ require 'net/ssh'
11
+
12
+ # Create a virtual disk
13
+ class Chef::Knife::OvmcliVmAddvdisk < Chef::Knife::BaseOraclevmCommand
14
+
15
+ banner "knife ovmcli vm addvdisk VMNAME (options)"
16
+
17
+ option :slot,
18
+ :short => "-s VALUE",
19
+ :long => "--slot VALUE",
20
+ :description => "The slot number for the disk in the virtual machine."
21
+
22
+ option :vdisk,
23
+ :short => "-d VALUE",
24
+ :long => "--vdisk VALUE",
25
+ :description => "The name or ID of the virtual disk"
26
+
27
+ get_common_options
28
+
29
+ def run
30
+
31
+ $stdout.sync = true
32
+
33
+ vmname = @name_args[0]
34
+
35
+ slot=get_config(:slot)
36
+ vdisk=get_config(:vdisk)
37
+
38
+ current=add_vdisk(vmname, slot, vdisk)
39
+ Chef::Log.debug("Status = #{current[:status]}. Time = #{current[:time]}. VM Status = #{current[:vmstatus]}.")
40
+
41
+ if current[:status]!="Success"
42
+ puts "Call to OVM CLI Failed with #{current[:errormsg]}"
43
+ end
44
+
45
+ end
46
+ end
@@ -0,0 +1,52 @@
1
+ #
2
+ # Code copied from Author:: Geoff O'Callaghan (<geoffocallaghan@gmail.com>)
3
+ # Author:: Michael Huisman michhuis@gmail.com
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+
7
+ require 'chef/knife'
8
+ require 'chef/knife/BaseOraclevmCommand'
9
+ require 'netaddr'
10
+ require 'net/ssh'
11
+
12
+ # Create a virtual disk
13
+ class Chef::Knife::OvmcliVmCreatevdisk < Chef::Knife::BaseOraclevmCommand
14
+
15
+ banner "knife ovmcli vm createvdisk VDISK (options)"
16
+
17
+ option :size,
18
+ :short => "-s VALUE",
19
+ :long => "--size VALUE",
20
+ :description => "The size of the virtual disk in GiB. "
21
+
22
+ option :sparse,
23
+ :short => "-p VALUE",
24
+ :long => "--sparse VALUE",
25
+ :description => "Whether to create a sparse or non-sparse virtual disk Yes or No"
26
+
27
+ option :reposotory,
28
+ :short => "-r VALUE",
29
+ :long => "--reposotory VALUE",
30
+ :description => "The name of the reposotory where the disk will be created"
31
+
32
+ get_common_options
33
+
34
+ def run
35
+
36
+ $stdout.sync = true
37
+
38
+ vdisk = @name_args[0]
39
+
40
+ size=get_config(:size)
41
+ sparse=get_config(:sparse)
42
+ reposotory=get_config(:reposotory)
43
+
44
+ current=create_vdisk(vdisk, size, sparse, reposotory)
45
+ Chef::Log.debug("Status = #{current[:status]}. Time = #{current[:time]}. VM Status = #{current[:vmstatus]}.")
46
+
47
+ if current[:status]!="Success"
48
+ puts "Call to OVM CLI Failed with #{current[:errormsg]}"
49
+ end
50
+
51
+ end
52
+ end
@@ -1,4 +1,4 @@
1
1
  module KnifeOvmCli
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.7"
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-ovmcli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Geoff O'Callaghan / Michael Huisman
@@ -47,15 +47,17 @@ files:
47
47
  - lib/chef/knife/BaseOraclevmCommand.rb
48
48
  - lib/chef/knife/ovmcli_serverpool_list.rb
49
49
  - lib/chef/knife/ovmcli_tag_list.rb
50
+ - lib/chef/knife/ovmcli_vm_addvdisk.rb
50
51
  - lib/chef/knife/ovmcli_vm_addvnic.rb
51
52
  - lib/chef/knife/ovmcli_vm_clone.rb
53
+ - lib/chef/knife/ovmcli_vm_createvdisk.rb
52
54
  - lib/chef/knife/ovmcli_vm_delete.rb
53
55
  - lib/chef/knife/ovmcli_vm_edit.rb
54
56
  - lib/chef/knife/ovmcli_vm_list.rb
55
57
  - lib/chef/knife/ovmcli_vm_message.rb
56
58
  - lib/chef/knife/ovmcli_vm_state.rb
57
59
  - lib/knife-ovmcli/version.rb
58
- homepage: http://github.com/michaelhuisman/knife-oraclevm
60
+ homepage: http://github.com/michaelhuisman/knife-ovmcli
59
61
  licenses: []
60
62
  metadata: {}
61
63
  post_install_message: