Author: dimach
Date: Fri Mar 13 19:26:51 2015
New Revision: 1666550

URL: http://svn.apache.org/r1666550
Log:
VCL-722: new integration single image error

Modified:
    vcl/trunk/managementnode/lib/VCL/Module/Provisioning/one.pm

Modified: vcl/trunk/managementnode/lib/VCL/Module/Provisioning/one.pm
URL: 
http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/one.pm?rev=1666550&r1=1666549&r2=1666550&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/Provisioning/one.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/Provisioning/one.pm Fri Mar 13 
19:26:51 2015
@@ -91,7 +91,7 @@ sub initialize {
        
                $xml = XML::Simple->new();
        
-               #notify($ERRORS{'DEBUG'}, 0, "Module ONE initialized with 
following parameters: \n one_server_url -> $one{'server_url'}, 
one_username:one_password -> $one{'auth'}\n");
+               notify($ERRORS{'DEBUG'}, 0, "Module ONE initialized with 
following parameters: \n one_server_url -> $one{'server_url'}, 
one_username:one_password -> $one{'auth'}\n");
        
                return 1;
        } else {
@@ -159,7 +159,6 @@ sub load {
                        $template = $data->{TEMPLATE};
                        $template->{NAME} = $one_vm_name;
                        $template->{NIC}[0]{IP} = $eth0_ip;
-                       #$template->{REQUIREMENTS} = "CLUSTER_ID=\"100\"";
                        
                        my $one_new_vmid = 
$self->_one_create_vm(XMLout($template,NoAttr => 1,RootName=>'TEMPLATE',));  
                        if ($one_new_vmid) {
@@ -201,25 +200,7 @@ sub load {
                $template->{NIC}[0]{NETWORK_ID} = $one_network_0_id;
                $template->{NIC}[0]{IP} = $eth0_ip;
                $template->{NIC}[0]{MODEL} = "virtio" if ($virtio);
-               
-               if ($self->data->can("get_vNetwork")) {
-                       my @vNetwork = $self->data->get_vNetwork();
-                       if (@vNetwork) {
-                               # yes, add custom network(s);
-                               notify($ERRORS{'OK'}, 0, "Reservation will be 
loaded with addition Network(s):");
-                               foreach (@vNetwork) {
-                                       my $one_net_id = 
$self->_one_get_object_id("network",'VLAN_ID='.$_);
-                                       $template->{NIC}[1]{NETWORK_ID} = 
$one_net_id;
-                                       }
-                       } else { 
-                               # no custom networks, add eth1 as default 
public;
-                               $template->{NIC}[1]{NETWORK_ID} = 
$one_network_1_id;
-                       }
-               } else {
-                       # custom networking is not implemented, add eth1 as 
default public;
-                       $template->{NIC}[1]{NETWORK_ID} = $one_network_1_id;
-               }
-               
+               $template->{NIC}[1]{NETWORK_ID} = $one_network_1_id;
                $template->{NIC}[1]{MODEL} = "virtio" if ($virtio);
                        
                # Check if SWAP disk needed. Does image have SWAP=<size_MB> 
attribute?
@@ -695,11 +676,27 @@ sub _one_get_template_id {
        my @templatepool_info = 
$one{'server'}->call('one.templatepool.info',$one{'auth'},-1,-1,-1);
        if ($templatepool_info[0][0]->value()) {
                my $data = XMLin($templatepool_info[0][1]);
-               foreach (@{$data->{VMTEMPLATE}}) {
-               #notify($ERRORS{'OK'}, 0, "Looking for template $template_name 
in template ID ".$_->{ID}.", name ".$_->{NAME}."...");
-                       if ($template_name eq $_->{NAME}) {
-                               notify($ERRORS{'OK'}, 0, "Found template 
".$_->{NAME}." with ID ".$_->{ID});
-                               return $_->{ID};
+               
+               #print Dumper($data);
+               
+               if (ref($data->{VMTEMPLATE}) eq "ARRAY") {
+                       foreach (@{$data->{VMTEMPLATE}}) {
+                               notify($ERRORS{'OK'}, 0, "Looking for template 
$template_name in template ID ".$_->{ID}.", name ".$_->{NAME}."...");
+                               if ($_->{NAME} eq $template_name) {
+                                       notify($ERRORS{'OK'}, 0, "Found 
template ".$template_name." with ID ".$_->{ID});
+                                       return $_->{ID};
+                               }
+                       }
+               } else { #HASH, single entry
+                       
+                       unless (defined($data->{VMTEMPLATE}{NAME})) {
+                               notify($ERRORS{'WARNING'}, 0, "Template not 
found: $template_name");
+                               return 0;
+                       }
+                       
+                       if ($data->{VMTEMPLATE}{NAME} eq $template_name) {
+                               notify($ERRORS{'OK'}, 0, "Found template 
".$template_name." with ID ".$data->{VMTEMPLATE}{ID});
+                               return $data->{VMTEMPLATE}{ID};
                        }
                }
        } else {
@@ -858,7 +855,7 @@ sub _one_get_object_id {
                        
                        my $data = $xml->XMLin($reply[0][1]);
                        
-                       if ( (ref($data->{VM})) eq "ARRAY" ){
+                       if ( (ref($data->{VM})) eq "ARRAY"){
                                foreach (@{$data->{VM}}) {
                                        if ($_->{NAME} =~ /^$o_name\s/) {
                                                notify($ERRORS{'OK'}, 0, "Found 
".$_->{NAME}." matching $o_name in ARRAY");
@@ -866,6 +863,8 @@ sub _one_get_object_id {
                                        }
                                }
                        } else { #HASH, found only one entry
+                               unless ( defined($data->{VM}{NAME}) ) {return 
0;}
+                               
                                if ($data->{VM}{NAME} =~ /^$o_name\s/) {
                                        notify($ERRORS{'OK'}, 0, "Found 
".$data->{VM}{NAME}." matching $o_name in HASH");
                                        return $data->{VM}{ID};


Reply via email to