You could try it by IP also. That could be tested by changing the hypervisor's entry in the computer table. Alternativly, you could always fake the DNS resolution by placing an entry /etc/resolv.conf

Also, you could try to run that command from the command line using an IP instead of the blade's current name 'vclblade1'.

Best,
Brian


Brian Bouterse
Secure Open Systems Initiative
919.698.8796




On Mar 19, 2009, at 4:01 PM, Melba Lopez wrote:

Thanks for the feedback. I was unaware that DNS was a requirement. I'll
have to see if this can be done in our environment

On Thu, Mar 19, 2009 at 3:47 PM, Brian Bouterse <bmbou...@ncsu.edu> wrote:

Let's analyze this log ...

2009-03-19 23:04:02|4359|137:4|new|esx.pm:load(176)|VM info command:
/usr/lib/vmware-viperl/apps/vm/vminfo.pl --server 'vclblade1' -- vmname
esx3-lamp-v0_blade1 --username vcl --password 'd834jfhd734jgfhf7'


Here the esx.pm module is trying to use the vminfo.pl file (part of the VMware VI perl toolkit) to ask the hypervisor (vclblade1) about the VM 'esx3-lamp-v0_blade1' Clearly this isn't working because the next line in
the log is:

2009-03-19 23:04:04|4359|137:4|new|esx.pm:load(179)|VM info output:
Virtual Machine esx3-lamp-v0_blade1 not found.



So why is the command failing?  The log says it's because
esx3-lamp_v0_blade1 does not exist. Is there a DNS entry for that blade
that would allow esx3-lamp_v0_blade1 to resolve to IP address of the
hypervisor?

Also, we output the commands the esx.pm module runs to the log so that they can be run manually. Which means you can test this command without needing to test all of VCL by running the following on the command line:

/usr/lib/vmware-viperl/apps/vm/vminfo.pl --server 'vclblade1' -- vmname
esx3-lamp-v0_blade1 --username vcl --password 'd834jfhd734jgfhf7'

Best,
Brian

Brian Bouterse
Secure Open Systems Initiative
919.698.8796




On Mar 19, 2009, at 3:20 PM, Melba Lopez wrote:

I've verified and tried everything you have mentioned. I also followed
the
steps in "esx.README" to make sure I configured everything ok, but I still get a failure. Good news is that the reservation doesn't stay stuck in
"Pending" and actually returns as "Failed".  I also do not see it
complaining about the host name, but rather that it cannot "load" the VM.

Do you have any other suggestions on what other configurations I'm
missing?

*Log of Reservation:*


*2009-03-19 23:04:02|4359|137:4|new|esx.pm:load(166)|Entered ESX module,
loading esx3-lamp-v0 on esx3-lamp-v0_blade1 (on vclblade1) for
reservation 4
2009-03-19 23:04:02|4359|137:4|new|esx.pm:load(176)|VM info command: /usr/lib/vmware-viperl/apps/vm/vminfo.pl --server 'vclblade1' -- vmname
esx3-lamp-v0_blade1 --username vcl --password 'd834jfhd734jgfhf7'
2009-03-19 23:04:04|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:04|4359|137:4|new|esx.pm:load(179)|VM info output:
Virtual Machine esx3-lamp-v0_blade1 not found.
2009-03-19 23:04:04|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:04|4359|137:4|new|esx.pm:load(212)|Output from remove
command is:
2009-03-19 23:04:04|4359|137:4|new|esx.pm:load(227)|COPIED VMDK
SUCCESSFULLY
2009-03-19 23:04:04|4359|137:4|new|esx.pm:load(235)|SSHing to copy
vmdk-flat file
2009-03-19 23:04:14|2420|vcld:main(166)|lastcheckin time updated for
management node 1: 2009-03-19 23:04:14
2009-03-19 23:04:26|2420|vcld:main(166)|lastcheckin time updated for
management node 1: 2009-03-19 23:04:26
2009-03-19 23:04:28|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:28|4359|137:4|new|vcld:REAPER(751)|process reaped: pid:
4374, $?: 0, exit status: 0
2009-03-19 23:04:28|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:28|4359|137:4|new|esx.pm:load(258)|adapter= lsilogic 2009-03-19 23:04:28|4359|137:4|new|esx.pm:load(300)|wrote vmxarray to
/mnt/vcl/inuse/esx3-lamp-v0_blade1/esx3-lamp-v0.vmx
2009-03-19 23:04:29|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:29|4359|137:4|new|esx.pm:load(321)|Registered:
|4359|137:4|new| No host found with name vclblade1.
2009-03-19 23:04:29|4359|137:4|new|esx.pm:load(330)|Power on command: /usr/lib/vmware-viperl/apps/vm/vmcontrol.pl --server 'vclblade1' --vmname
esx3-lamp-v0_blade1 --operation poweron --username vcl --password
'd834jfhd734jgfhf7'
2009-03-19 23:04:31|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:31|4359|137:4|new|esx.pm:load(333)|Powered on: Virtual
Machine esx3-lamp-v0_blade1 not found.
2009-03-19 23:04:32|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:32|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:32|4359|137:4|new|utils.pm:mail(1281)|SUCCESS --
Sending
mail To: r...@localhost, PROBLEM -- esx.pm

|4359|137:4|new| ---- CRITICAL ----
|4359|137:4|new| 2009-03-19 23:04:32|4359|137:4|new|esx.pm:
load(341)|Could
not query for VM in VI PERL API
|4359|137:4|new| ( 0) utils.pm, notify (line: 683)
|4359|137:4|new| (-1) esx.pm, load (line: 341)
|4359|137:4|new| (-2) new.pm, reload_image (line: 664)
|4359|137:4|new| (-3) new.pm, process (line: 266)
|4359|137:4|new| (-4) vcld, make_new_child (line: 606)
|4359|137:4|new| (-5) vcld, main (line: 353)


|4359|137:4|new| ---- WARNING ----
|4359|137:4|new| 2009-03-19 23:04:32|4359|137:4|new|new.pm:
reload_image(669)|esx3-lamp-v0
failed to load on esx3-lamp-v0_blade1, returning
|4359|137:4|new| ( 0) utils.pm, notify (line: 683)
|4359|137:4|new| (-1) new.pm, reload_image (line: 669)
|4359|137:4|new| (-2) new.pm, process (line: 266)
|4359|137:4|new| (-3) vcld, make_new_child (line: 606)
|4359|137:4|new| (-4) vcld, main (line: 353)

2009-03-19 23:04:32|4359|137:4|new|utils.pm:insertloadlog(5300)| inserted
computer=11, loadimagefailed, esx3-lamp-v0 failed to load on
esx3-lamp-v0_blade1

|4359|137:4|new| ---- WARNING ----
|4359|137:4|new| 2009-03-19 23:04:32|4359|137:4|new|new.pm:
process(313)|failed
to load esx3-lamp-v0_blade1 with esx3-lamp-v0
|4359|137:4|new| ( 0) utils.pm, notify (line: 683)
|4359|137:4|new| (-1) new.pm, process (line: 313)
|4359|137:4|new| (-2) vcld, make_new_child (line: 606)
|4359|137:4|new| (-3) vcld, main (line: 353)

2009-03-19 23:04:32|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:32|4359|137:4|new|vcld:REAPER(770)|setting $? to 0, exit
status: 0
2009-03-19 23:04:32|4359|137:4|new|utils.pm:mail(1281)|SUCCESS --
Sending
mail To: r...@localhost, PROBLEM -- State.pm

|4359|137:4|new| ---- CRITICAL ----
|4359|137:4|new| 2009-03-19
23:04:32|4359|137:4|new|State.pm:reservation_failed(285)| reservation
failed
on esx3-lamp-v0_blade1: process failed after trying to load or make
available
|4359|137:4|new| ( 0) utils.pm, notify (line: 683)
|4359|137:4|new| (-1) State.pm, reservation_failed (line: 285)
|4359|137:4|new| (-2) new.pm, process (line: 316)
|4359|137:4|new| (-3) vcld, make_new_child (line: 606)
|4359|137:4|new| (-4) vcld, main (line: 353)

2009-03-19 23:04:32|4359|137:4|new|utils.pm:insertloadlog(5300)| inserted
computer=11, failed, process failed after trying to load or make
available
2009-03-19
23:04:32|4359|137:4|new|State.pm:reservation_failed(288)|inserted
computerloadlog entry
2009-03-19
23:04:32|4359|137:4|new|State.pm:reservation_failed(296)|updated
log ending value to 'failed', logid=71
2009-03-19 23:04:32|4359|137:4|new|utils.pm:
update_computer_state(2305)|computer
11 state updated to: failed
2009-03-19
23:04:32|4359|137:4|new|State.pm:reservation_failed(304)|computer
esx3-lamp-v0_blade1 (11) state set to failed
2009-03-19 23:04:32|4359|137:4|new|utils.pm:
update_request_state(2263)|request
137 state updated to: failed, laststate to: new
2009-03-19 23:04:32|4359|137:4|new| State.pm:reservation_failed(312)|set
request state to 'failed'/'new'
2009-03-19 23:04:32|4359|137:4|new| utils.pm:is_inblockrequest(7356)|zero
rows were returned from database select
2009-03-19

23:04:32|4359|137:4|new|State.pm:reservation_failed(330)|esx3- lamp-v0_blade1
is NOT in blockcomputers table
2009-03-19
23:04:32|4359|137:4|new|State.pm:reservation_failed(333)|exiting
1
2009-03-19 23:04:32|4359|137:4|new|State.pm:DESTROY(435)|destructor
called,
ref($self)=VCL::new
2009-03-19 23:04:32|4359|137:4|new|utils.pm:
delete_computerloadlog_reservation(8013)|removing
computerloadlog entries matching loadstate = begin
2009-03-19 23:04:32|4359|137:4|new|utils.pm:
delete_computerloadlog_reservation(8060)|deleted
rows from computerloadlog for reservation id=4
2009-03-19 23:04:32|4359|137:4|new|State.pm:DESTROY(438)|removed
computerloadlog rows with loadstate=begin for reservation
2009-03-19 23:04:32|4359|137:4|new|State.pm:DESTROY(446)|number of
database
handles state process created: 1
2009-03-19 23:04:32|4359|137:4|new|State.pm:DESTROY(455)|process has a
database handle stored in $ENV{dbh}, attempting disconnect
2009-03-19 23:04:32|4359|137:4|new|State.pm:DESTROY(457)|$ENV{dbh}:
database disconnect successful
2009-03-19 23:04:32|2420|vcld:REAPER(751)|process reaped: pid: 4359, $?:
256, exit status: 1
2009-03-19 23:04:32|2420|vcld:REAPER(756)|VCL process exited for
reservation 4
2009-03-19 23:04:32|2420|vcld:REAPER(770)|setting $? to 256, exit status:
1
*





On Thu, Mar 19, 2009 at 9:22 AM, Brian Bouterse <bmbou...@ncsu.edu>
wrote:

Your installation does correctly call the esx.pm module because I can
see
the code inside of it executing through your log post. The problem seems
to
be that the vmhost_ variables are not being passed into the module.

This could be because the associations are not all correct in the
database.
I'll give an example of a correct association below where I only include
the important information:

In the vmtype table ensure you have an entry:
<id,name=vmwareESX3>

In the vmprofile table have an entry for your hypervisor:
<id,vmtype=the entry from the vmtype table,datastorepath=NFS mount

point(ip:/path/to/ NFS),virtualswitch0=Management,virtualswitch1=Public,username=user
on hypervisor,password=password of hypervisor user>

In the computer table you should have:
an entry for a hypervisor:
<id,hostname,IPaddress,type=blade,vmhostid=NULL,vmtypeid=NULL>
an entry for a virtual machine slot:
<id,hostname,type=virtualmachine,vmhost=id of hypervisor,vmtype=entry
from
vmtype table>

The vmhost table associates the hypervisor's entry in the computer table with the hypervisor type declared in vmprofile. In the vmhost table you
will require:
<computerid=id of hypervisor,vmprofileid=id of hypervisor in vmprofile>


Here is a dump example from a working database:

INSERT INTO `vmtype` (`id`, `name`) VALUES (5, 'vmwareESX3');

INSERT INTO `vmprofile` (`id`, `profilename`, `vmtypeid`, `imageid`,
`nasshare`, `datastorepath`, `vmpath`, `virtualswitch0`,
`virtualswitch1`,
`vmdisk`, `username`, `password`) VALUES (4, 'VMware ESX SAN ', 2, 4,
NULL,
'152.14.17.112:/mnt/export', '/vmfs/volumes/storage1', 'Management',
'Public', 'networkdisk', 'vcl', 'j45789fgdkhj542j');

INSERT INTO `computer` (`id`, `stateid`, `ownerid`, `deptid`,
`platformid`,
`scheduleid`, `currentimageid`, `preferredimageid`, `nextimageid`,
`imagerevisionid`, `RAM`, `procnumber`, `procspeed`, `network`,
`hostname`,
`IPaddress`, `privateIPaddress`, `eth0macaddress`, `eth1macaddress`,
`type`,
`provisioningid`, `drivetype`, `deleted`, `notes`, `lastcheck`,
`location`,
`dsa`, `dsapub`, `rsa`, `rsapub`, `host`, `hostpub`, `vmhostid`,
`vmtypeid`)
VALUES (2, 2, 1, 1, 1, 1, 10, 10, 10, 10, 1024, 1, 1000, 1000, 'test_vm', '152.14.17.18', '10.0.5.1', '00:50:56:01:4d:9b', '00:50:56:01:4d: 9c', 'virtualmachine', 4, 'hda', 0, '', NULL, NULL, NULL, NULL, NULL, NULL,
NULL,
NULL, 1, 5), (3, 2, 1, 1, 1, 1, 4, 4, 0, 0, 512, 1, 500, 10, '
blade2-1.cnl.ncsu.edu', '152.14.17.235', NULL, NULL, NULL, 'blade', 1,
'hda', 0, '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL);

INSERT INTO `vmhost` (`id`, `computerid`, `vmlimit`, `vmprofileid`,
`vmkernalnic`, `vmwaredisk`) VALUES (1, 3, 3, 4, NULL, 'localdisk');


Best,
Brian


Brian Bouterse
Secure Open Systems Initiative
919.698.8796





On Mar 18, 2009, at 11:55 PM, Melba Lopez wrote:

I'm trying to setup VCL to work in our environment, but we can't seem to

get
it quite working.

When we schedule a reservation, it goes through and shows that it's "Pending". However, it stays in that mode and won't ever come out. We
don't get any notification of accepting or rejecting etc.

Looking through the log file, the following message seems to be
repeating.
What configuration am I missing?

"|30189|116:16|new| ---- WARNING ----


|30189|116:16|new| 2009-03-18


22:28:17|30189|116:16|new|vcld:warning_handler(648)|Use of
uninitialized
value $vmhost_hostname in concatenation (.) or string at
/opt/vcl/bin/../lib/VCL/Module/Provisioning/esx.pm line 325.

|30189|116:16|new| ( 0) utils.pm, notify (line: 683)



|30189|116:16|new| (-1) vcld, warning_handler (line: 648)



|30189|116:16|new| (-2) esx.pm, load (line: 325)



|30189|116:16|new| (-3) new.pm, reload_image (line: 664)



|30189|116:16|new| (-4) new.pm, process (line: 266)



|30189|116:16|new| (-5) vcld, make_new_child (line: 606)



|30189|116:16|new| (-6) vcld, main (line: 353)




2009-03-18 22:28:17|30189|116:16|new|esx.pm:load(330)|Power on
command:

/usr/lib/vmware-viperl/apps/vm/vmcontrol.pl --server '' --vmname
vclblade1
--operation poweron --username vcl --password 'd834jfhd734jgfhf7'

Error: Server version unavailable at 'https:///sdk/vimService.wsdl'
:1:


parser error : Start tag expected, '<' not found

500 No Host option provided



^ at /usr/local/lib/perl5/site_perl/5.10.0/VMware/VICommon.pm line 323





2009-03-18 22:28:17|30189|116:16|new|vcld:REAPER(770)|setting $? to
512,
exit status: 2

2009-03-18 22:28:17|30189|116:16|new|esx.pm:load(333)|Powered on:"








Reply via email to