OpenNebula 5.0 Beta - marketplaces

I installed opennebula 5.0 beta from May 18th, 2016 and cannot connect to the “OpenNebula Public” marketplace, no appliances are shown.
I can´t find any errors in the log files.
Maybe the marketplace function isn´t implemented in this beta ?

Hi Hans

Not, this should be working. Can you upload the oned.log? Note that you
need HTTP access to the public marketplace URL, note that no proxy is
supported right now for this driver…

Hi Ruben,

at now, we are using opennebula in version 4.4.1 in combination with a proxy and the marketplace works fine.
After upgrading to 4.90.0/4.90.5 i cannot access the public marketplace but I can wget/curl the appliance data from the marketplace to our one-server.
Will the driver support proxy configurations in the future ?
oned.log shows the following:

Fri Jun 3 10:59:07 2016 [Z0][ReM][D]: Req:5776 UID:4 MarketPlaceInfo invoked , 0
Fri Jun 3 10:59:07 2016 [Z0][ReM][D]: Req:2560 UID:4 MarketPlacePoolInfo invoked
Fri Jun 3 10:59:07 2016 [Z0][ReM][D]: Req:5776 UID:4 MarketPlaceInfo result SUCCESS, "0</…"
Fri Jun 3 10:59:07 2016 [Z0][ReM][D]: Req:2560 UID:4 MarketPlacePoolInfo result SUCCESS, "<MARKETPLACE_POOL><M…"
Fri Jun 3 10:59:07 2016 [Z0][ReM][D]: Req:7584 UID:4 MarketPlacePoolInfo invoked , -2, -1, -1
Fri Jun 3 10:59:07 2016 [Z0][ReM][D]: Req:7584 UID:4 MarketPlacePoolInfo result SUCCESS, “<MARKETPLACEAPP_POOL…”

Hi Hans,

I’m afraid that not out-of-the-box for 5.0. However there are two things
that can be done.

1.- you can update the market template to add ENDPOINT and add there a
reachable URL address from your site, e.g. a proxyed one

2.- Open the driver file /var/lib/one/remotes/market/one/monitor y right
after the # Main program... line add ENV[‘http_proxy’] =
"<your_proxy_address>"

Cheers

Hi Ruben,

now I did fresh install on an ubuntu system but the marketplace does not work here. I tried tip 1 and 2 but nothing works for me.
If i know the id of the app I am able to download it via cli (for example: “http://marketplace.opennebula.systems/appliance/56e156618fb81d0768000001”).

Greetings
Hans

same here, and on 2 differents opennebula setups, and with stable OpenNebula 5.0 (had the problem with the beta too), the marketplace is empty. I’ve followed this instruction http://docs.opennebula.org/5.0/intro_release_notes/upgrades/upgrade_414.html on the 2 opennebula servers. Did I miss something ? I have no proxy here, no endpoints url needed.

Nothing in the log, just:
Fri Jun 17 09:16:06 2016 [Z0][MKP][D]: Monitoring disabled for market: OpenNebula Public

The marketplace definition is the following:
<MARKETPLACE> <ID>0</ID> <UID>0</UID> <GID>0</GID> <UNAME>oneadmin</UNAME> <GNAME>oneadmin</GNAME> <NAME>OpenNebula Public</NAME> <MARKET_MAD><![CDATA[one]]></MARKET_MAD> <ZONE_ID><![CDATA[-1]]></ZONE_ID> <TOTAL_MB>0</TOTAL_MB> <FREE_MB>0</FREE_MB> <USED_MB>0</USED_MB> <MARKETPLACEAPPS/> <PERMISSIONS> <OWNER_U>1</OWNER_U> <OWNER_M>1</OWNER_M> <OWNER_A>1</OWNER_A> <GROUP_U>1</GROUP_U> <GROUP_M>0</GROUP_M> <GROUP_A>0</GROUP_A> <OTHER_U>1</OTHER_U> <OTHER_M>0</OTHER_M> <OTHER_A>0</OTHER_A> </PERMISSIONS> <TEMPLATE> <DESCRIPTION><![CDATA[OpenNebula Systems MarketPlace]]></DESCRIPTION> <MARKET_MAD><![CDATA[one]]></MARKET_MAD> </TEMPLATE> </MARKETPLACE>

Zone id is -1 is that normal?

Edouard,

Can you check that there is something like:

MARKET_MAD_CONF=[
APP_ACTIONS=“monitor”,
NAME=“one”,
PUBLIC=“yes”,
SUNSTONE_NAME=“OpenNebula.org Marketplace”
]

in oned.conf

Hi Hans

We’ve taken a look to the code, and another source code change is needed to
support proxies. Sorry for that. We’ll try to priorize this issue, so an
upgrade is ready…

Cheers

Hi Ruben,

Thanks for your help. yes I have this MARKET_MAD_CONF, for “one”, “http” and “s3”.

`MARKET_MAD_CONF = [
NAME = “one”,
SUNSTONE_NAME = “OpenNebula.org Marketplace”,
REQUIRED_ATTRS = “”,
APP_ACTIONS = “monitor”,
PUBLIC = “yes”
]

MARKET_MAD_CONF = [
NAME = “http”,
SUNSTONE_NAME = “HTTP server”,
REQUIRED_ATTRS = “BASE_URL,PUBLIC_DIR”,
APP_ACTIONS = “create, delete, monitor”
]

MARKET_MAD_CONF = [
NAME = “s3”,
SUNSTONE_NAME = “Amazon S3”,
REQUIRED_ATTRS = “ACCESS_KEY_ID,SECRET_ACCESS_KEY,REGION,BUCKET”,
APP_ACTIONS = “create, delete, monitor”
]`

Well, it says that monitor is not disabled as in oned.log file. Try to
restart one, check the very first line of oned.log to check that you are
reading the proper configuration…

I don’t see any indication in oned.log about the configuration file the daemon is actually reading. But I do see the MARKET_MAD_CONF (as seen above), and no more “Monitoring disabled for market: OpenNebula Public”.

But onemarketapp list is still empty. What’s the command to refresh the market catalog ?

Are you seeing Marketplace successfully monitored? Probably the easiest
thing is to delete the marketplace and create a new one through sunstone.
Pick the “OpenNebula Public…” driver and leave the URL empty.

In the log I can only see that the MarketPlace Manager is started and that the MarketPlace Manager Driver is loaded. But nothing about any successful monitoring about it.

Will try to delete/recreate through sunstone as soon as I have access to sunstone (I only have SSH access for the moment).

Recreating the Marketplace did the trick. So the only difference I can spot except the ID, is the ZONE_ID which is now 0 instead of -1.

<MARKETPLACE> <ID>100</ID> <UID>0</UID> <GID>0</GID> <UNAME>oneadmin</UNAME> <GNAME>oneadmin</GNAME> <NAME>OpenNebula MarketPlace</NAME> <MARKET_MAD><![CDATA[one]]></MARKET_MAD> <ZONE_ID><![CDATA[0]]></ZONE_ID> <TOTAL_MB>0</TOTAL_MB> <FREE_MB>0</FREE_MB> <USED_MB>0</USED_MB> <MARKETPLACEAPPS/> <PERMISSIONS> <OWNER_U>1</OWNER_U> <OWNER_M>1</OWNER_M> <OWNER_A>0</OWNER_A> <GROUP_U>0</GROUP_U> <GROUP_M>0</GROUP_M> <GROUP_A>0</GROUP_A> <OTHER_U>0</OTHER_U> <OTHER_M>0</OTHER_M> <OTHER_A>0</OTHER_A> </PERMISSIONS> <TEMPLATE> <MARKET_MAD><![CDATA[one]]></MARKET_MAD> </TEMPLATE> </MARKETPLACE>

Should I report this bug ?

Thanks for the feedback! We’ve already fill one issue:

http://dev.opennebula.org/issues/4611

Now that the market is working, I’d like to set it behind a proxy. So in /etc/one/sunstone-server.conf I add a line:
:proxy: http://proxy.local:8080

Then I restart service opennebula and opennebula-sunstone. It does’nt work I can see the apps in the marketplace. Here what I see in the logs:

Mon Jul 11 18:18:46 2016 [Z0][MKP][D]: Monitoring marketplace OpenNebula Public Market (101) Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: Command execution fail: /var/lib/one/remotes/market/one/monitor P[..]QT4= 101 Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: /usr/share/ruby/net/http.rb:878:ininitialize’: getaddrinfo: Name or service not known (SocketError)
Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /usr/share/ruby/net/http.rb:878:in open' Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /usr/share/ruby/net/http.rb:878:inblock in connect’
Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /usr/share/ruby/timeout.rb:52:in timeout' Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /usr/share/ruby/net/http.rb:877:inconnect’
Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /usr/share/ruby/net/http.rb:862:in do_start' Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /usr/share/ruby/net/http.rb:851:instart’
Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /usr/share/ruby/net/http.rb:582:in start' Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /var/lib/one/remotes/market/one/monitor:41:inget’
Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /var/lib/one/remotes/market/one/monitor:53:in get_appliances' Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: from /var/lib/one/remotes/market/one/monitor:157:in'
Mon Jul 11 18:18:47 2016 [Z0][MKP][I]: ExitCode: 1
Mon Jul 11 18:18:47 2016 [Z0][MKP][E]: Error monitoring datastore 101: -
`

Not sure if 101 is a datastore. But it looks like http.rb is trying to resolve an hostname without asking the proxy to do so. Is there anything else to do to configure a proxy ?

Hi Edouard,

HTTP proxies are not yet supported in the new Marketplace, in OpenNebula
5.0. The issue for this feature:

http://dev.opennebula.org/issues/4388

Sorry,

Ruben

Thanks Ruben. I’m following this issue.

I just add my proxy and port

response = Net::HTTP.start(uri.hostname, uri.port, 'proxy.local', 8080) {|http|
    http.request(req)
}

in /var/lib/one/remotes/market/one/monitor and know I don’t have anymore errors about the monitoring of the marketplace. And I can browse the marketplace. Just have to find where the download part is handled since it’s the only thing that still doesn’t work.

Download to the web client (e.g. laptop…)? or to a Datastore?

to the datastore. Is it the downloader.sh ?