Hi Clifton,
This error message indicates a configuration problem:

Can't locate object method "set_provisioner" via package "VCL::Module::Provisioning::esx"

set_provisioner is an OS object method, and it's attempting to call it on a provisioning engine object.

If you view the log output prior to what is included below, you should see a line containing "attempting to load OS module:". I'm guessing this is followed by "VCL::Module::Provisioning::esx".

The log output for the entire reservation will be helpful. This will make it easier to determine which tables need to be updated. Also, please run the following commands on the computer running the vcl database and include the output:

mysql -e 'select id, name, OSid from image' vcl
mysql -e 'select id, name, moduleid from OS' vcl
mysql -e 'select id, perlpackage from module' vcl

The contents of these tables will make it easier to determine what's happening.

Regards,
Andy

Clifton B Wood wrote:
Aaron,

Progress, this time. However, there are still errors. Here are the relevant entries from vcld.log

2009-06-26 00:55:06|15043|6:5|reload|esx.pm:initialize(116)|vmware ESX module initialized 2009-06-26 00:55:06|15043|6:5|reload|State.pm:initialize(131)|VCL::Module
::Provisioning::esx provisioner object created
2009-06-26 00:55:06|15043|6:5|reload|State.pm:initialize(145)|attempting to load OS module: VCL::Module::Provisioning::esx 2009-06-26 00:55:06|15043|6:5|reload|State.pm:initialize(151)|VCL::Module
::Provisioning::esx module loaded
2009-06-26 00:55:06|15043|6:5|reload|Module.pm:new(132)|constructor called, class=VCL::Module::Provisioning::esx 2009-06-26 00:55:06|15043|6:5|reload|Module.pm:new(154)|VCL::Module::Prov
isioning::esx object created
2009-06-26 00:55:06|15043|6:5|reload|esx.pm:initialize(116)|vmware ESX module initialized 2009-06-26 00:55:06|15043|6:5|reload|State.pm:initialize(154)|VCL::Module
::Provisioning::esx OS object created
Can't locate object method "set_provisioner" via package
"VCL::Module::Provisioning::esx" at /opt/vcl/bin/../lib/VCL/Module/State.pm line 167 (#1) (F) You called a method correctly, and it correctly indicated a package functioning as a class, but that package doesn't define that particular
    method, nor does any of its base classes.  See perlobj.

Uncaught exception from user code:
Can't locate object method "set_provisioner" via package "VCL::Module::Provisioning::esx" at /opt/vcl/bin/../lib/VCL/Module/State.pm line 167.
 at /opt/vcl/bin/../lib/VCL/Module/State.pm line 167
VCL::Module::State::initialize('VCL::new=HASH(0x9f408bc)', 'HASH(0x9f2e5b4)') called at /opt/vcl/bin/../lib/VCL/Module.pm line 157 VCL::Module::new('VCL::new', 'HASH(0x9f2e5b4)') called at /opt/vcl/bin/vcld line 590 VCL::vcld::make_new_child('HASH(0x9e9c004)') called at /opt/vcl/bin/vcld line 341
        VCL::vcld::main() called at /opt/vcl/bin/vcld line 92
2009-06-26 00:55:06|15043|6:5|reload|State.pm:DESTROY(894)|destructor called, ref($self)=VCL::new

So it looks like there's a missing routine, somewhere.

Thanks for the help so far.

- Cliff


------------------------------------------------------------------------

Subject:
Re: vcld Module loading errors when Reloading Images
From:
aaron_pee...@ncsu.edu
Date:
Thu, 25 Jun 2009 13:24:23 -0400 (EDT)
To:
vcl-dev@incubator.apache.org

To:
vcl-dev@incubator.apache.org


Cliff,

There was a small typo related bug with the esx module in the node_status
routine. I've committed the corrections to the repository.

To identify why the esx module is not loading, you can try to load the
module manually.
If installed in /usr/local then
cd /usr/local/vcl/lib

to load the module manually
perl -MVCL::Module::Provisioning::esx

If it fails to load, you'll see the error statements.

If successful you should see pre-execution settings and no errors, and
you'll need to hit crtl c to stop the perl -MVCL... execute.

If you checked out the code using svn. You can simply do a svn update in
your vcl lib directory i.e /usr/local/vcl/lib/VCL and then retry. If this
doesn't fix it then please send in the errors you get when trying to load
the module manually.

Aaron


This is my first install of VCL, and everything has gone
smoothly so far. I've now reached my first serious block.

When trying to reload images through the web interface, I get
the following in my vcld logs. I'm wondering if one of the
underlying Perl modules is causing the error but for the life
of me I can't determine where to start looking to see if I can
solve the problem.

Here are the relevant lines from vcld.log

2009-06-24
22:17:49|12930|5:4|reload|utils.pm:reservation_being_processed
(10269)|computerloadlog 'begin' entry does NOT exist for
reservation 4
2009-06-24
22:17:49|12930|5:4|reload|utils.pm:reservation_being_processed
(10321)|reservation is NOT currently being processed
2009-06-24
22:17:49|12930|5:4|reload|vcld:main(276)|reservation 4 is NOT
already being processed
2009-06-24
22:17:49|12930|5:4|reload|utils.pm:get_request_info(5872)|non-
NCSU user affiliation found: Local
2009-06-24
22:17:49|12930|5:4|reload|utils.pm:get_management_node_info(72
66)|management node info retrieved from database for
soeblade13
2009-06-24 22:17:49|12930|5:4|reload|vcld:main(281)|retrieved
request information from database
2009-06-24
22:17:49|12930|5:4|reload|utils.pm:get_management_node_info(72
66)|management node info retrieved from database for
soeblade13
2009-06-24
22:17:49|12930|5:4|reload|DataStructure.pm:is_parent_reservati
on(854)|returning true: parent reservation ID for this
request: 4
2009-06-24
22:17:49|12930|5:4|reload|utils.pm:update_request_state(2302)|
request 5 state updated to: pending, laststate to: reload
2009-06-24
22:17:49|12930|5:4|reload|utils.pm:insertloadlog(5224)|inserte
d computer=1, begin, beginning to process, state is reload
2009-06-24
22:17:49|12930|5:4|reload|vcld:make_new_child(501)|request
will be processed by new.pm
2009-06-24
22:17:49|12930|5:4|reload|vcld:make_new_child(509)|loaded
VCL::new module
2009-06-24
22:17:49|12967|5:4|reload|vcld:make_new_child(582)|vcld
environment variable set to 0 for this process
2009-06-24
22:17:49|12967|5:4|reload|Module.pm:new(132)|constructor
called, class=VCL::new
2009-06-24
22:17:49|12967|5:4|reload|Module.pm:new(154)|VCL::new object
created
2009-06-24
22:17:49|12930|5:4|reload|vcld:make_new_child(566)|current
number of forked kids: 1
2009-06-24
22:17:49|12967|5:4|reload|State.pm:initialize(85)|obtained a
database handle for this state process, stored as $ENV{dbh}
2009-06-24
22:17:49|12967|5:4|reload|State.pm:check_image_os(809)|no
corrections need to be made, not an imaging request, returning
1
2009-06-24
22:17:49|12967|5:4|reload|DataStructure.pm:is_parent_reservati
on(854)|returning true: parent reservation ID for this
request: 4
2009-06-24
22:17:49|12967|5:4|reload|utils.pm:rename_vcld_process(8392)|r
eservation count: 1
2009-06-24
22:17:49|12967|5:4|reload|utils.pm:rename_vcld_process(8411)|P
ARENTIMAGE: 1
2009-06-24
22:17:49|12967|5:4|reload|utils.pm:rename_vcld_process(8412)|S
UBIMAGE: 0
2009-06-24
22:17:49|12967|5:4|reload|utils.pm:rename_vcld_process(8430)|r
enamed process to 'vcld VCL::new 5:4 reload'
2009-06-24
22:17:49|12967|5:4|reload|DataStructure.pm:is_parent_reservati
on(854)|returning true: parent reservation ID for this
request: 4
2009-06-24
22:17:49|12967|5:4|reload|DataStructure.pm:is_parent_reservati
on(854)|returning true: parent reservation ID for this
request: 4
2009-06-24
22:17:49|12967|5:4|reload|State.pm:initialize(121)|attempting
to load provisioning module: VCL::Module::Provisioning::esx

|12967|5:4|reload| ---- WARNING ----
|12967|5:4|reload| 2009-06-24
22:17:49|12967|5:4|reload|State.pm:initialize(124)|VCL::Module
::Provisioning::esx module could not be loaded, returning 0
|12967|5:4|reload| ( 0) utils.pm, notify (line: 719)
|12967|5:4|reload| (-1) State.pm, initialize (line: 124)
|12967|5:4|reload| (-2) Module.pm, new (line: 157)
|12967|5:4|reload| (-3) vcld, make_new_child (line: 590)
|12967|5:4|reload| (-4) vcld, main (line: 341)


What could be causing VCL::Module::Provisioning::esx to not
load? I've checked and the VMWare-VI-Perl tools have been
properly installed.

Thanks in advance for any assistance you all can provide.

- Cliff



--
Andy Kurth
Virtual Computing Lab
Office of Information Technology
North Carolina State University
andy_ku...@ncsu.edu
919.513.4090

Reply via email to