1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-21 14:50:08 +03:00

F #1684: Ad linuxcontainers market by default

This commit is contained in:
Ruben S. Montero 2019-01-21 19:08:47 +01:00
parent 5d9c92d0d9
commit 4d9a1f9c72

View File

@ -33,12 +33,18 @@ MarketPlacePool::MarketPlacePool(SqlDB * db, bool is_federation_slave)
//lastOID is set in PoolSQL::init_cb
if (get_lastOID() == -1)
{
// Build the default default security group
// Build the template for the OpenNebula Systems MarketPlace
string default_market =
"NAME=\"OpenNebula Public\"\n"
"MARKET_MAD=one\n"
"DESCRIPTION=\"OpenNebula Systems MarketPlace\"";
string lxc_market =
"NAME=\"Linux Containers\"\n"
"MARKET_MAD=linuxcontainers\n"
"DESCRIPTION=\"MarketPlace for the public image server fo LXC &"
" LXD hosted at linuxcontainers.org\"";
Nebula& nd = Nebula::instance();
UserPool * upool = nd.get_upool();
User * oneadmin = upool->get_ro(0);
@ -46,9 +52,12 @@ MarketPlacePool::MarketPlacePool(SqlDB * db, bool is_federation_slave)
string error;
MarketPlaceTemplate * default_tmpl = new MarketPlaceTemplate;
MarketPlaceTemplate * lxc_tmpl = new MarketPlaceTemplate;
char * error_parse;
default_tmpl->parse(default_market, &error_parse);
lxc_tmpl->parse(lxc_market, &error_parse);
MarketPlace * marketplace = new MarketPlace(
oneadmin->get_uid(),
@ -58,19 +67,33 @@ MarketPlacePool::MarketPlacePool(SqlDB * db, bool is_federation_slave)
oneadmin->get_umask(),
default_tmpl);
MarketPlace * lxc_marketplace = new MarketPlace(
oneadmin->get_uid(),
oneadmin->get_gid(),
oneadmin->get_uname(),
oneadmin->get_gname(),
oneadmin->get_umask(),
lxc_tmpl);
oneadmin->unlock();
marketplace->set_permissions(1,1,1, 1,0,0, 1,0,0, error);
lxc_marketplace->set_permissions(1,1,1, 1,0,0, 1,0,0, error);
marketplace->zone_id = Nebula::instance().get_zone_id();
lxc_marketplace->zone_id = Nebula::instance().get_zone_id();
marketplace->parse_template(error);
lxc_marketplace->parse_template(error);
if (PoolSQL::allocate(marketplace, error) < 0)
int rc = PoolSQL::allocate(marketplace, error);
rc += PoolSQL::allocate(lxc_marketplace, error);
if (rc < 0)
{
ostringstream oss;
oss << "Error trying to create default "
<< "OpenNebula Systems MarketPlace: " << error;
oss << "Error trying to create default marketplaces: " << error;
NebulaLog::log("MKP", Log::ERROR, oss);
throw runtime_error(oss.str());