opennebula-cli 3.9.0.beta → 3.9.80.beta
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/NOTICE +1 -2
- data/bin/oneacct +5 -4
- data/bin/oneacl +1 -1
- data/bin/onecluster +3 -2
- data/bin/onedatastore +5 -3
- data/bin/onegroup +5 -4
- data/bin/onehost +3 -2
- data/bin/oneimage +3 -2
- data/bin/onetemplate +37 -9
- data/bin/oneuser +36 -2
- data/bin/onevm +301 -122
- data/bin/onevnet +1 -1
- data/lib/cli_helper.rb +4 -1
- data/lib/command_parser.rb +34 -4
- data/lib/one_helper.rb +32 -15
- data/lib/one_helper/oneacct_helper.rb +5 -4
- data/lib/one_helper/oneacl_helper.rb +1 -1
- data/lib/one_helper/onecluster_helper.rb +4 -3
- data/lib/one_helper/onedatastore_helper.rb +3 -2
- data/lib/one_helper/onegroup_helper.rb +15 -17
- data/lib/one_helper/onehost_helper.rb +2 -2
- data/lib/one_helper/oneimage_helper.rb +23 -6
- data/lib/one_helper/onequota_helper.rb +1 -1
- data/lib/one_helper/onetemplate_helper.rb +3 -3
- data/lib/one_helper/oneuser_helper.rb +17 -18
- data/lib/one_helper/onevm_helper.rb +319 -8
- data/lib/one_helper/onevnet_helper.rb +21 -4
- metadata +35 -56
    
        data/bin/onevnet
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 2 |  | 
| 3 3 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 4 | 
            -
            # Copyright 2002- | 
| 4 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 5 5 | 
             
            #                                                                            #
         | 
| 6 6 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 7 7 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
    
        data/lib/cli_helper.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -252,6 +252,9 @@ module CLIHelper | |
| 252 252 | 
             
                        if @columns[field]
         | 
| 253 253 | 
             
                            minus=( @columns[field][:left] ? "-" : "" )
         | 
| 254 254 | 
             
                            size=@columns[field][:size]
         | 
| 255 | 
            +
                            if @columns[field][:donottruncate]
         | 
| 256 | 
            +
                                return "%#{minus}#{size}s" % [ data.to_s ]
         | 
| 257 | 
            +
                            end
         | 
| 255 258 | 
             
                            return "%#{minus}#{size}.#{size}s" % [ data.to_s ]
         | 
| 256 259 | 
             
                        else
         | 
| 257 260 | 
             
                            exit -1, "Column #{field} not defined."
         | 
    
        data/lib/command_parser.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -635,14 +635,20 @@ module CommandParser | |
| 635 635 | 
             
                    end
         | 
| 636 636 |  | 
| 637 637 | 
             
                    def print_option(o)
         | 
| 638 | 
            -
                        opt_format = "#{' '*5}%-25s | 
| 638 | 
            +
                        opt_format = "#{' '*5}%-25s"
         | 
| 639 639 |  | 
| 640 640 | 
             
                        str = ""
         | 
| 641 641 | 
             
                        str << o[:short].split(' ').first << ', ' if o[:short]
         | 
| 642 642 | 
             
                        str << o[:large]
         | 
| 643 643 |  | 
| 644 | 
            -
                         | 
| 645 | 
            -
             | 
| 644 | 
            +
                        params=sprintf(opt_format, str)
         | 
| 645 | 
            +
             | 
| 646 | 
            +
                        first_line=80-params.length
         | 
| 647 | 
            +
             | 
| 648 | 
            +
                        description=word_wrap(80-32, o[:description], first_line).
         | 
| 649 | 
            +
                            join(("\n"+" "*31))
         | 
| 650 | 
            +
             | 
| 651 | 
            +
                        puts "#{params} #{description}"
         | 
| 646 652 | 
             
                    end
         | 
| 647 653 |  | 
| 648 654 | 
             
                    def print_commands
         | 
| @@ -707,6 +713,30 @@ module CommandParser | |
| 707 713 | 
             
                        }
         | 
| 708 714 | 
             
                    end
         | 
| 709 715 |  | 
| 716 | 
            +
                    def word_wrap(size, text, first_size=nil)
         | 
| 717 | 
            +
                        output=[]
         | 
| 718 | 
            +
                        line=""
         | 
| 719 | 
            +
                        if first_size
         | 
| 720 | 
            +
                            line_size=first_size
         | 
| 721 | 
            +
                        else
         | 
| 722 | 
            +
                            line_size=size
         | 
| 723 | 
            +
                        end
         | 
| 724 | 
            +
             | 
| 725 | 
            +
                        text.scan(/[^\s]+/) do |word|
         | 
| 726 | 
            +
                            if line.length+word.length+1<=line_size
         | 
| 727 | 
            +
                                line+=" #{word}"
         | 
| 728 | 
            +
                            else
         | 
| 729 | 
            +
                                output<<line
         | 
| 730 | 
            +
                                line=word
         | 
| 731 | 
            +
                                line_size=size
         | 
| 732 | 
            +
                            end
         | 
| 733 | 
            +
                        end
         | 
| 734 | 
            +
             | 
| 735 | 
            +
                        output<<line
         | 
| 736 | 
            +
                        output[0].strip!
         | 
| 737 | 
            +
                        output
         | 
| 738 | 
            +
                    end
         | 
| 739 | 
            +
             | 
| 710 740 | 
             
                    ########################################################################
         | 
| 711 741 | 
             
                    # Default Formatters for arguments
         | 
| 712 742 | 
             
                    ########################################################################
         | 
    
        data/lib/one_helper.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -22,7 +22,7 @@ include OpenNebula | |
| 22 22 | 
             
            module OpenNebulaHelper
         | 
| 23 23 | 
             
                ONE_VERSION=<<-EOT
         | 
| 24 24 | 
             
            OpenNebula #{OpenNebula::VERSION}
         | 
| 25 | 
            -
            Copyright 2002- | 
| 25 | 
            +
            Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs
         | 
| 26 26 |  | 
| 27 27 | 
             
            Licensed under the Apache License, Version 2.0 (the "License"); you may
         | 
| 28 28 | 
             
            not use this file except in compliance with the License. You may obtain
         | 
| @@ -103,6 +103,7 @@ EOT | |
| 103 103 | 
             
                    }
         | 
| 104 104 | 
             
                ]
         | 
| 105 105 |  | 
| 106 | 
            +
                #NOTE: Other options defined using this array, add new options at the end
         | 
| 106 107 | 
             
                TEMPLATE_OPTIONS=[
         | 
| 107 108 | 
             
                    {
         | 
| 108 109 | 
             
                        :name   => 'cpu',
         | 
| @@ -152,16 +153,16 @@ EOT | |
| 152 153 | 
             
                    },
         | 
| 153 154 | 
             
                    {
         | 
| 154 155 | 
             
                        :name   => 'disk',
         | 
| 155 | 
            -
                        :large  => '--disk  | 
| 156 | 
            -
                        :description => "Disks to attach. To use  | 
| 157 | 
            -
                                        "  | 
| 156 | 
            +
                        :large  => '--disk image0,image1',
         | 
| 157 | 
            +
                        :description => "Disks to attach. To use an image owned by"<<
         | 
| 158 | 
            +
                                        " other user use user[disk]",
         | 
| 158 159 | 
             
                        :format => Array
         | 
| 159 160 | 
             
                    },
         | 
| 160 161 | 
             
                    {
         | 
| 161 | 
            -
                        :name   => ' | 
| 162 | 
            -
                        :large  => '-- | 
| 163 | 
            -
                        :description => "Networks to attach. To use a network owned by | 
| 164 | 
            -
                                        "  | 
| 162 | 
            +
                        :name   => 'nic',
         | 
| 163 | 
            +
                        :large  => '--nic network0,network1',
         | 
| 164 | 
            +
                        :description => "Networks to attach. To use a network owned by"<<
         | 
| 165 | 
            +
                                        " other user use user[network]",
         | 
| 165 166 | 
             
                        :format => Array
         | 
| 166 167 | 
             
                    },
         | 
| 167 168 | 
             
                    {
         | 
| @@ -212,6 +213,8 @@ EOT | |
| 212 213 |  | 
| 213 214 | 
             
                TEMPLATE_OPTIONS_VM=[TEMPLATE_NAME_VM]+TEMPLATE_OPTIONS+[DRY]
         | 
| 214 215 |  | 
| 216 | 
            +
                CAPACITY_OPTIONS_VM=[TEMPLATE_OPTIONS[0],TEMPLATE_OPTIONS[1],TEMPLATE_OPTIONS[3]]
         | 
| 217 | 
            +
             | 
| 215 218 | 
             
                OPTIONS = XML, NUMERIC, KILOBYTES
         | 
| 216 219 |  | 
| 217 220 | 
             
                class OneHelper
         | 
| @@ -315,7 +318,15 @@ EOT | |
| 315 318 | 
             
                                    pool_to_array(pool)
         | 
| 316 319 | 
             
                                }
         | 
| 317 320 | 
             
                            else
         | 
| 318 | 
            -
                                 | 
| 321 | 
            +
                                array=pool_to_array(pool)
         | 
| 322 | 
            +
             | 
| 323 | 
            +
                                if options[:ids]
         | 
| 324 | 
            +
                                    array=array.select do |element|
         | 
| 325 | 
            +
                                        options[:ids].include? element['ID'].to_i
         | 
| 326 | 
            +
                                    end
         | 
| 327 | 
            +
                                end
         | 
| 328 | 
            +
             | 
| 329 | 
            +
                                table.show(array, options)
         | 
| 319 330 | 
             
                            end
         | 
| 320 331 |  | 
| 321 332 | 
             
                            return 0
         | 
| @@ -331,7 +342,7 @@ EOT | |
| 331 342 | 
             
                        if options[:xml]
         | 
| 332 343 | 
             
                            return 0, resource.to_xml(true)
         | 
| 333 344 | 
             
                        else
         | 
| 334 | 
            -
                            format_resource(resource)
         | 
| 345 | 
            +
                            format_resource(resource, options)
         | 
| 335 346 | 
             
                            return 0
         | 
| 336 347 | 
             
                        end
         | 
| 337 348 | 
             
                    end
         | 
| @@ -569,13 +580,19 @@ EOT | |
| 569 580 | 
             
                    end
         | 
| 570 581 | 
             
                end
         | 
| 571 582 |  | 
| 572 | 
            -
                def OpenNebulaHelper.time_to_str(time)
         | 
| 583 | 
            +
                def OpenNebulaHelper.time_to_str(time, print_seconds=true)
         | 
| 573 584 | 
             
                    value=time.to_i
         | 
| 574 585 | 
             
                    if value==0
         | 
| 575 586 | 
             
                        value='-'
         | 
| 576 587 | 
             
                    else
         | 
| 577 | 
            -
                         | 
| 588 | 
            +
                        if print_seconds
         | 
| 589 | 
            +
                            value=Time.at(value).strftime("%m/%d %H:%M:%S")
         | 
| 590 | 
            +
                        else
         | 
| 591 | 
            +
                            value=Time.at(value).strftime("%m/%d %H:%M")
         | 
| 592 | 
            +
                        end
         | 
| 578 593 | 
             
                    end
         | 
| 594 | 
            +
             | 
| 595 | 
            +
                    return value
         | 
| 579 596 | 
             
                end
         | 
| 580 597 |  | 
| 581 598 | 
             
                def OpenNebulaHelper.period_to_str(time, print_seconds=true)
         | 
| @@ -623,7 +640,7 @@ EOT | |
| 623 640 | 
             
                    end
         | 
| 624 641 | 
             
                end
         | 
| 625 642 |  | 
| 626 | 
            -
                def OpenNebulaHelper.update_template(id, resource, path=nil)
         | 
| 643 | 
            +
                def OpenNebulaHelper.update_template(id, resource, path=nil, xpath='TEMPLATE')
         | 
| 627 644 | 
             
                    unless path
         | 
| 628 645 | 
             
                        require 'tempfile'
         | 
| 629 646 |  | 
| @@ -637,7 +654,7 @@ EOT | |
| 637 654 | 
             
                            exit -1
         | 
| 638 655 | 
             
                        end
         | 
| 639 656 |  | 
| 640 | 
            -
                        tmp << resource. | 
| 657 | 
            +
                        tmp << resource.template_like_str(xpath)
         | 
| 641 658 | 
             
                        tmp.flush
         | 
| 642 659 |  | 
| 643 660 | 
             
                        editor_path = ENV["EDITOR"] ? ENV["EDITOR"] : EDITOR_PATH
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -15,6 +15,7 @@ | |
| 15 15 | 
             
            #--------------------------------------------------------------------------- #
         | 
| 16 16 |  | 
| 17 17 | 
             
            require 'one_helper'
         | 
| 18 | 
            +
            require 'optparse/time'
         | 
| 18 19 |  | 
| 19 20 | 
             
            class AcctHelper < OpenNebulaHelper::OneHelper
         | 
| 20 21 | 
             
                START_TIME = {
         | 
| @@ -22,7 +23,7 @@ class AcctHelper < OpenNebulaHelper::OneHelper | |
| 22 23 | 
             
                    :short  => "-s TIME",
         | 
| 23 24 | 
             
                    :large  => "--start TIME" ,
         | 
| 24 25 | 
             
                    :description => "Start date and time to take into account",
         | 
| 25 | 
            -
                    :format =>  | 
| 26 | 
            +
                    :format => Time
         | 
| 26 27 | 
             
                }
         | 
| 27 28 |  | 
| 28 29 | 
             
                END_TIME = {
         | 
| @@ -30,7 +31,7 @@ class AcctHelper < OpenNebulaHelper::OneHelper | |
| 30 31 | 
             
                    :short  => "-e TIME",
         | 
| 31 32 | 
             
                    :large  => "--end TIME" ,
         | 
| 32 33 | 
             
                    :description => "End date and time",
         | 
| 33 | 
            -
                    :format =>  | 
| 34 | 
            +
                    :format => Time
         | 
| 34 35 | 
             
                }
         | 
| 35 36 |  | 
| 36 37 | 
             
                USERFILTER = {
         | 
| @@ -144,7 +145,7 @@ class AcctHelper < OpenNebulaHelper::OneHelper | |
| 144 145 | 
             
                    default :VID, :HOSTNAME, :REASON, :START_TIME, :END_TIME, :MEMORY, :CPU, :NET_RX, :NET_TX
         | 
| 145 146 | 
             
                end
         | 
| 146 147 |  | 
| 147 | 
            -
                def self. | 
| 148 | 
            +
                def self.print_start_end_time_header(start_time, end_time)
         | 
| 148 149 | 
             
                    print "Showing active history records from "
         | 
| 149 150 |  | 
| 150 151 | 
             
                    CLIHelper.scr_bold
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -95,13 +95,14 @@ class OneClusterHelper < OpenNebulaHelper::OneHelper | |
| 95 95 | 
             
                    OpenNebula::ClusterPool.new(@client)
         | 
| 96 96 | 
             
                end
         | 
| 97 97 |  | 
| 98 | 
            -
                def format_resource(cluster)
         | 
| 99 | 
            -
                    str="%- | 
| 98 | 
            +
                def format_resource(cluster, options = {})
         | 
| 99 | 
            +
                    str="%-18s: %-20s"
         | 
| 100 100 | 
             
                    str_h1="%-80s"
         | 
| 101 101 |  | 
| 102 102 | 
             
                    CLIHelper.print_header(str_h1 % "CLUSTER #{cluster['ID']} INFORMATION")
         | 
| 103 103 | 
             
                    puts str % ["ID",   cluster.id.to_s]
         | 
| 104 104 | 
             
                    puts str % ["NAME", cluster.name]
         | 
| 105 | 
            +
                    puts str % ["SYSTEM DS", cluster['SYSTEM_DS']]
         | 
| 105 106 | 
             
                    puts
         | 
| 106 107 |  | 
| 107 108 | 
             
                    CLIHelper.print_header(str_h1 % "CLUSTER TEMPLATE", false)
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -95,7 +95,7 @@ class OneDatastoreHelper < OpenNebulaHelper::OneHelper | |
| 95 95 | 
             
                    OpenNebula::DatastorePool.new(@client)
         | 
| 96 96 | 
             
                end
         | 
| 97 97 |  | 
| 98 | 
            -
                def format_resource(datastore)
         | 
| 98 | 
            +
                def format_resource(datastore, options = {})
         | 
| 99 99 | 
             
                    str="%-15s: %-20s"
         | 
| 100 100 | 
             
                    str_h1="%-80s"
         | 
| 101 101 |  | 
| @@ -110,6 +110,7 @@ class OneDatastoreHelper < OpenNebulaHelper::OneHelper | |
| 110 110 | 
             
                    puts str % ["DS_MAD",   datastore['DS_MAD']]
         | 
| 111 111 | 
             
                    puts str % ["TM_MAD",   datastore['TM_MAD']]
         | 
| 112 112 | 
             
                    puts str % ["BASE PATH",datastore['BASE_PATH']]
         | 
| 113 | 
            +
                    puts str % ["DISK_TYPE",Image::DISK_TYPES[datastore['DISK_TYPE'].to_i]]
         | 
| 113 114 | 
             
                    puts
         | 
| 114 115 |  | 
| 115 116 | 
             
                    CLIHelper.print_header(str_h1 % "PERMISSIONS",false)
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -48,12 +48,8 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper | |
| 48 48 | 
             
                def format_pool(options)
         | 
| 49 49 | 
             
                    config_file = self.class.table_conf
         | 
| 50 50 |  | 
| 51 | 
            -
                     | 
| 52 | 
            -
                     | 
| 53 | 
            -
             | 
| 54 | 
            -
                    if OpenNebula::is_error?(default_quotas)
         | 
| 55 | 
            -
                        raise "Error retrieving the default group quotas: #{default_quotas.message}"
         | 
| 56 | 
            -
                    end
         | 
| 51 | 
            +
                    prefix = '/GROUP_POOL/DEFAULT_GROUP_QUOTAS/'
         | 
| 52 | 
            +
                    group_pool = @group_pool
         | 
| 57 53 |  | 
| 58 54 | 
             
                    table = CLIHelper::ShowTable.new(config_file, self) do
         | 
| 59 55 | 
             
                        column :ID, "ONE identifier for the Group", :size=>4 do |d|
         | 
| @@ -77,7 +73,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper | |
| 77 73 | 
             
                                limit = d['VM_QUOTA']['VM']["VMS"]
         | 
| 78 74 |  | 
| 79 75 | 
             
                                if limit == "-1"
         | 
| 80 | 
            -
                                    limit =  | 
| 76 | 
            +
                                    limit = group_pool["#{prefix}VM_QUOTA/VM/VMS"]
         | 
| 81 77 | 
             
                                    limit = "0" if limit.nil? || limit == ""
         | 
| 82 78 | 
             
                                end
         | 
| 83 79 |  | 
| @@ -92,7 +88,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper | |
| 92 88 | 
             
                                limit = d['VM_QUOTA']['VM']["MEMORY"]
         | 
| 93 89 |  | 
| 94 90 | 
             
                                if limit == "-1"
         | 
| 95 | 
            -
                                    limit =  | 
| 91 | 
            +
                                    limit = group_pool["#{prefix}VM_QUOTA/VM/MEMORY"]
         | 
| 96 92 | 
             
                                    limit = "0" if limit.nil? || limit == ""
         | 
| 97 93 | 
             
                                end
         | 
| 98 94 |  | 
| @@ -109,7 +105,7 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper | |
| 109 105 | 
             
                                limit = d['VM_QUOTA']['VM']["CPU"]
         | 
| 110 106 |  | 
| 111 107 | 
             
                                if limit == "-1"
         | 
| 112 | 
            -
                                    limit =  | 
| 108 | 
            +
                                    limit = group_pool["#{prefix}VM_QUOTA/VM/CPU"]
         | 
| 113 109 | 
             
                                    limit = "0" if limit.nil? || limit == ""
         | 
| 114 110 | 
             
                                end
         | 
| 115 111 |  | 
| @@ -138,16 +134,12 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper | |
| 138 134 |  | 
| 139 135 | 
             
                def factory_pool(user_flag=-2)
         | 
| 140 136 | 
             
                    #TBD OpenNebula::UserPool.new(@client, user_flag)
         | 
| 141 | 
            -
                    OpenNebula::GroupPool.new(@client)
         | 
| 137 | 
            +
                    @group_pool = OpenNebula::GroupPool.new(@client)
         | 
| 138 | 
            +
                    return @group_pool
         | 
| 142 139 | 
             
                end
         | 
| 143 140 |  | 
| 144 | 
            -
                def format_resource(group)
         | 
| 141 | 
            +
                def format_resource(group, options = {})
         | 
| 145 142 | 
             
                    system = System.new(@client)
         | 
| 146 | 
            -
                    default_quotas = system.get_group_quotas()
         | 
| 147 | 
            -
             | 
| 148 | 
            -
                    if OpenNebula::is_error?(default_quotas)
         | 
| 149 | 
            -
                        raise "Error retrieving the default group quotas: #{default_quotas.message}"
         | 
| 150 | 
            -
                    end
         | 
| 151 143 |  | 
| 152 144 | 
             
                    str="%-15s: %-20s"
         | 
| 153 145 | 
             
                    str_h1="%-80s"
         | 
| @@ -165,6 +157,12 @@ class OneGroupHelper < OpenNebulaHelper::OneHelper | |
| 165 157 |  | 
| 166 158 | 
             
                    group_hash = group.to_hash
         | 
| 167 159 |  | 
| 160 | 
            +
                    default_quotas = nil
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                    group.each('/GROUP/DEFAULT_GROUP_QUOTAS') { |elem|
         | 
| 163 | 
            +
                        default_quotas = elem
         | 
| 164 | 
            +
                    }
         | 
| 165 | 
            +
             | 
| 168 166 | 
             
                    helper = OneQuotaHelper.new
         | 
| 169 167 | 
             
                    helper.format_quota(group_hash['GROUP'], default_quotas)
         | 
| 170 168 | 
             
                end
         | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -162,7 +162,7 @@ class OneHostHelper < OpenNebulaHelper::OneHelper | |
| 162 162 | 
             
                    OpenNebula::HostPool.new(@client)
         | 
| 163 163 | 
             
                end
         | 
| 164 164 |  | 
| 165 | 
            -
                def format_resource(host)
         | 
| 165 | 
            +
                def format_resource(host, options = {})
         | 
| 166 166 | 
             
                    str    = "%-22s: %-20s"
         | 
| 167 167 | 
             
                    str_h1 = "%-80s"
         | 
| 168 168 |  | 
| @@ -1,5 +1,5 @@ | |
| 1 1 | 
             
            # -------------------------------------------------------------------------- #
         | 
| 2 | 
            -
            # Copyright 2002- | 
| 2 | 
            +
            # Copyright 2002-2013, OpenNebula Project (OpenNebula.org), C12G Labs        #
         | 
| 3 3 | 
             
            #                                                                            #
         | 
| 4 4 | 
             
            # Licensed under the Apache License, Version 2.0 (the "License"); you may    #
         | 
| 5 5 | 
             
            # not use this file except in compliance with the License. You may obtain    #
         | 
| @@ -15,6 +15,7 @@ | |
| 15 15 | 
             
            #--------------------------------------------------------------------------- #
         | 
| 16 16 |  | 
| 17 17 | 
             
            require 'one_helper'
         | 
| 18 | 
            +
            require 'one_helper/onevm_helper'
         | 
| 18 19 |  | 
| 19 20 | 
             
            class OneImageHelper < OpenNebulaHelper::OneHelper
         | 
| 20 21 | 
             
                TEMPLATE_OPTIONS=[
         | 
| @@ -101,14 +102,14 @@ class OneImageHelper < OpenNebulaHelper::OneHelper | |
| 101 102 | 
             
                    {
         | 
| 102 103 | 
             
                        :name => "disk_type",
         | 
| 103 104 | 
             
                        :large => "--disk_type disk_type",
         | 
| 104 | 
            -
                        :description => "Type of the image (BLOCK, CDROM or FILE)",
         | 
| 105 | 
            +
                        :description => "Type of the image (BLOCK, CDROM, RBD or FILE)",
         | 
| 105 106 | 
             
                        :format => String,
         | 
| 106 107 | 
             
                        :proc => lambda do |o, options|
         | 
| 107 108 | 
             
                            type=o.strip.upcase
         | 
| 108 | 
            -
                            if %w{BLOCK CDROM FILE}.include? type
         | 
| 109 | 
            +
                            if %w{BLOCK CDROM FILE RBD}.include? type
         | 
| 109 110 | 
             
                                [0, type]
         | 
| 110 111 | 
             
                            else
         | 
| 111 | 
            -
                                [-1, "Disk type must be BLOCK, CDROM or FILE"]
         | 
| 112 | 
            +
                                [-1, "Disk type must be BLOCK, CDROM, RBD or FILE"]
         | 
| 112 113 | 
             
                            end
         | 
| 113 114 | 
             
                        end
         | 
| 114 115 | 
             
                    },
         | 
| @@ -261,7 +262,7 @@ class OneImageHelper < OpenNebulaHelper::OneHelper | |
| 261 262 | 
             
                    OpenNebula::ImagePool.new(@client, user_flag)
         | 
| 262 263 | 
             
                end
         | 
| 263 264 |  | 
| 264 | 
            -
                def format_resource(image)
         | 
| 265 | 
            +
                def format_resource(image, options = {})
         | 
| 265 266 | 
             
                    str="%-15s: %-20s"
         | 
| 266 267 | 
             
                    str_h1="%-80s"
         | 
| 267 268 |  | 
| @@ -298,6 +299,19 @@ class OneImageHelper < OpenNebulaHelper::OneHelper | |
| 298 299 |  | 
| 299 300 | 
             
                    CLIHelper.print_header(str_h1 % "IMAGE TEMPLATE",false)
         | 
| 300 301 | 
             
                    puts image.template_str
         | 
| 302 | 
            +
             | 
| 303 | 
            +
                    puts
         | 
| 304 | 
            +
                    CLIHelper.print_header("VIRTUAL MACHINES", false)
         | 
| 305 | 
            +
                    puts
         | 
| 306 | 
            +
             | 
| 307 | 
            +
                    vms=image.retrieve_elements("VMS/ID")
         | 
| 308 | 
            +
             | 
| 309 | 
            +
                    if vms
         | 
| 310 | 
            +
                        vms.map!{|e| e.to_i }
         | 
| 311 | 
            +
                        onevm_helper=OneVMHelper.new
         | 
| 312 | 
            +
                        onevm_helper.client=@client
         | 
| 313 | 
            +
                        onevm_helper.list_pool({:ids=>vms}, false)
         | 
| 314 | 
            +
                    end
         | 
| 301 315 | 
             
                end
         | 
| 302 316 |  | 
| 303 317 | 
             
                def self.create_image_variables(options, name)
         | 
| @@ -323,9 +337,12 @@ class OneImageHelper < OpenNebulaHelper::OneHelper | |
| 323 337 | 
             
                    end
         | 
| 324 338 |  | 
| 325 339 | 
             
                    template=create_image_variables(
         | 
| 326 | 
            -
                        options, template_options-[:persistent, :dry])
         | 
| 340 | 
            +
                        options, template_options-[:persistent, :dry, :prefix])
         | 
| 327 341 |  | 
| 328 342 | 
             
                    template<<"PERSISTENT=YES\n" if options[:persistent]
         | 
| 343 | 
            +
                    if options[:prefix]
         | 
| 344 | 
            +
                        template<<"DEV_PREFIX=\"#{options[:prefix]}\"\n"
         | 
| 345 | 
            +
                    end
         | 
| 329 346 |  | 
| 330 347 | 
             
                    [0, template]
         | 
| 331 348 | 
             
                end
         |