yannickb / odoo-hosting Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Add to the Servers item button to reinstall Docker on a remote server. Wishing for improving.
I forgot a hardcoded value in https://github.com/clouder-community/clouder/blob/8.0/clouder_template_bind/clouder_template_bind.py#L61, it's the allow-transfer config with the ip of your dns provider.
Either we can allow transfer to every ip, or we use a option to specify the ip in the container configuration.
Hello everyone,
Today Clouder has only backoffice modules, which means there is currently no way to deploy automatically a container or a base just by making a visitor filling a form.
We need to develop a website_clouder module, which will :
-Display the list of applications which are available to buy.
-Make it so the visitor can buy them (using website_sale module I guess)
-Create a container/base record, which will autodeploy it in the infrastructure.
Note that I think we shall manage the case where the Clouder managing the infra and the installation of clouder_website module are not in the same Odoo, so clouder_website shall contain hostname and user/password of the Clouder managing the infrastructure.
Later, we shall also develop some generic script we can use on non-Odoo and non-python based websites.
Thank you for your awesome work on this set of modules, and for keeping it OpenSource! This will be an incredible time-saver for me and i'm sure for many others with similar needs.
This is more of a question than an issue, however I wasn't sure where else to ask it. Would you consider the 8.0 branch of Clouder to be stable enough to be put into production?
I am about to setup my company's Odoo hosting infrastructure and I think Clouder is the tool I will use to do this. I'll start working with Clouder on a development instance first to test out the features before putting it into production, but I would be interested to know whether you think the project's modules (outside the unfinished folder) are production-ready, or whether this software should still be considered in alpha.
I would like to request a new template module for Clouder for Open-Xchange:
It is by far the best open-source webmail interface i've seen and the features allow for Microsoft Exchange style features. I use it because I can add multiple email addresses to a single webmail login among many other things, but I think it would be ideal for the clouder project.
I'll be creating an install script for this on Ubuntu 14.04 soon, and would be happy to submit a link if you like.
I connected the server. I want to create a registry container, but get this error:
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 944, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 336, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_template_registry/clouder_template_registry.py", line 70, in deploy
return super(ClouderContainer, self).deploy()
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_container.py", line 629, in deploy
self.purge()
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_container.py", line 719, in purge
self.purge_key()
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_container.py", line 786, in purge_key
self.fullname, self.home_directory + '/.ssh/config'])
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 484, in execute_local
stderr=subprocess.STDOUT, shell=shell)
File "/usr/lib/python2.7/subprocess.py", line 679, in init
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
raise child_exception
OSError: [Errno 13] Permission denied
The file odoo-server.log there is a record:
2015-08-04 15:28:32,412 13549 INFO pandaplus openerp.addons.clouder.clouder_model: command : /opt/odoo/odoo/addons/clouder/res/sed.sh www-panda1-registry_myservername /opt/odoo/.ssh/config
2015-08-04 15:28:32,427 13549 INFO pandaplus openerp.addons.clouder.clouder_model: ===================
2015-08-04 15:28:32,436 13549 INFO pandaplus openerp.addons.clouder.clouder_model: FAIL! Reverting...
2015-08-04 15:28:32,439 13549 INFO pandaplus openerp.addons.clouder.clouder_model: ===================
2015-08-04 15:28:32,455 13549 INFO pandaplus openerp.addons.clouder.clouder_model: This base container not be saved or the backup isnt configured in conf, skipping save container
2015-08-04 15:28:32,462 13549 INFO pandaplus openerp.addons.clouder.clouder_model: command : /opt/odoo/odoo/addons/clouder/res/sed.sh www-panda1-registry_myservername /opt/odoo/.ssh/config
I do not understand what is wrong in the file /opt/odoo/.ssh/config ?
Hello everyone,
We also need to develop a module which will manage the invoicing of the container / bases on Clouder. For example, each container / base are linked to a customer and each month the customer will be invoiced.
I have already started developing a module about it, with just the fields, I let you have a look.
Notice that, like for the website module we shall be able to separate the Odoo with the Clouder and the Odoo for the invoicing, for more flexibility.
More details :
We define in application object a non-required fixed price and a price grid for container and/or base. This price grid is based on data like the number of users of the application, number of visitors or order per month etc... Theses data are defined for each application in their template module and automatically recovered and stored in the Clouder instances.
For each line of the grid, we have as columns the data (many2one), the value, the price (float) and the price type (fixed price or *value)
For example we shall be able to manage theses behaviors
fixed price : 50$
price grid
nb users | 10 | 10 | fixed price
nb users | 50 | 30 | fixed price
nb users | 0 | 100 | fixed price
If we have 5 users, the price will be 50 + 10 = 60$
If we have 15 users, the price will be 50 + 30 = 80$
If we have 500 users, the price will be 50 + 100 = 150$
fixed price : 0$
price grid
nb users | 10 | 3 | *value
nb users | 50 | 2 | *value
nb users | 0 | 1 | *value
If we have 5 users, the price will be 0 + 5users * 3 = 15$
If we have 15 users, the price will be 0 + 15users * 2 = 30$
If we have 500 users, the price will be 0 + 500users * 1 = 500$
The fixed price and price grid can be overrided in container/base
Each period, theses prices will automatically generate a customer invoice.
Important, the invoice shall be able to be generated in another Odoo instance and not in the accounting department of the Clouder instance. In this case, the credentials of the Odoo instances shall be in the Clouder configuration.
For managing the period, we define in application and container/base the time between each invoice (1month, 6month, 1year etc...) and in container/base the date of the last invoice.
Case for managing Clouder instances
In the case we are hosting other Clouder instances, we may want to invoice depending of the application which are managed by the hosted Clouder instances.
So we shall manage in the Clouder master a fixed price/price grid politics for each application (through a one2many with the application code and the price politics). We shall have a default configuration in Clouder configuration, which can be overriden on the base.
The Clouder master contact the Clouder slave to indicate in a field the price each container/base on the Clouder slave will be invoiced. At the end of the period, a customer invoice is generated on the Clouder master and a supplier invoice is generated on the Clouder slave (both can be deported on another Odoo depending of their configuration).
The code for managing the concept of data value shall be in code clouder module
The code for managing data value shall be in each template module
The code for managing invoicing shall be in a clouder_invoicing module
The code for managing invoicing in Clouder master shall be in a clouder_invoicing_master module.
hi,
i get an error if i try to add the Base.
this is the log
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(*a, **kw)
File "/opt/odoo/odoo/openerp/http.py", line 803, in __call__
return self.method(*args, **kw)
File "/opt/odoo/odoo/openerp/http.py", line 403, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 948, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 940, in _call_kw
return checked_call(request.db, *args, **kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 939, in checked_call
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 250, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 345, in old_api
result = method(recs, *args, **kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_base.py", line 378, in create
return super(ClouderBase, self).create(vals)
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_base.py", line 595, in deploy
res = self.deploy_create_database()
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/addons/clouder_template_odoo/clouder_template_odoo.py", line 218, in deploy_create_database
':' + self.service_id.port['hostport'])
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 438, in __init__
self.server_version = ver = get_proxy('db').server_version()
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 401, in <lambda>
wrapper = lambda s, *args: s._dispatch(name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1587, in __request
verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1273, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1303, in single_request
response = h.getresponse(buffering=True)
File "/usr/lib/python2.7/httplib.py", line 1051, in getresponse
response.begin()
File "/usr/lib/python2.7/httplib.py", line 415, in begin
version, status, reason = self._read_status()
File "/usr/lib/python2.7/httplib.py", line 379, in _read_status
raise BadStatusLine(line)
BadStatusLine: ''
thx for your help.
Hello everyone,
I'd like to give you the vision I have regarding the uses cases of Clouder, from a professional hosters perspective.
A professional hosters will want to manage the following case :
-Create containers for each of his customers (mono customer container)
-Create bases for each of his customers (mono customer base)
-Create one or several container or base, and then give access to some of them to their customers (multi customer container/base). Imagine for example a seafile application with one hundred customer using it, each having 25Go available for them.
We can easily manage the first two case today, but the later will be more difficult. Here is how I see it :
The customer will go on the hoster website and buy the access
The customer info is stored into Clouder and exported into an LDAP which is accessible by the applications.
The applications often have an LDAP module we can use. We use ldap tag or group to know which customer should access to which application.
We use an SSO system (CAS?) so the customer only have to login one time to access to all of his applications.
I want it to be as easy to use as google services, you buy your access, you login once and then you can access to all your application which are linked between them. This is the ultimate goal of Clouder, making so everyone can easily deploy an hosting infrastructure as easy to use as Google, but fully based on open-source applications.
So as you understood, we need to have an ldap and and sso container. I propose openldap and CAS, and I already started to develop some modules with them but I quickly understood it was out of my league, so I'll need your help to prepare theses very important containers.
I got this error:
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 944, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 336, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_base.py", line 378, in create
return super(ClouderBase, self).create(vals)
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_base.py", line 595, in deploy
res = self.deploy_create_database()
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder_template_odoo/clouder_template_odoo.py", line 217, in deploy_create_database
user_password=self.admin_password)
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 639, in create_database
user_password)
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 383, in
wrapper = lambda s, _args: s._dispatch(name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1578, in __request
verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1264, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1297, in single_request
return self.parse_response(response)
File "/usr/lib/python2.7/xmlrpclib.py", line 1473, in parse_response
return u.close()
File "/usr/lib/python2.7/xmlrpclib.py", line 793, in close
raise Fault(__self._stack[0])
Fault: <Fault could not connect to server: Connection refused
Is the server running on host "postgres" (172.17.0.252) and accepting
TCP/IP connections on port 5432?
: 'Traceback (most recent call last):\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/service/wsgi_server.py", line 75, in xmlrpc_return\n result = openerp.http.dispatch_rpc(service, method, params)\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/http.py", line 115, in dispatch_rpc\n result = dispatch(method, params)\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/service/db.py", line 73, in dispatch\n return fn(_params)\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/service/db.py", line 90, in exp_create_database\n _create_empty_database(db_name)\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/service/db.py", line 77, in _create_empty_database\n with closing(db.cursor()) as cr:\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/sql_db.py", line 575, in cursor\n return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/sql_db.py", line 181, in init\n self._cnx = pool.borrow(dsn)\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/sql_db.py", line 464, in _locked\n return fun(self, _args, *_kwargs)\n File "/opt/versions/odoo-odoo/8.0.20150805.174255/parts/odoo/openerp/sql_db.py", line 526, in borrow\n result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)\n File "/usr/lib/python2.7/dist-packages/psycopg2/init.py", line 164, in connect\n conn = _connect(dsn, connection_factory=connection_factory, async=async)\nOperationalError: could not connect to server: Connection refused\n\tIs the server running on host "postgres" (172.17.0.252) and accepting\n\tTCP/IP connections on port 5432?\n\n'>
Can you please explain what and how your modules do in details? Module descriptions repeat module names only.
Hello everyone,
Like some of you suggested, we today have many great tools to manage Docker instances. The goal of Clouder is not to replace them, it's to be the place where the informations about application/containers/base are stored.
Since I want to keep the minimum command in Clouder, I believe we have a missing software on the process between Clouder and Docker, I mean Clouder shall give order to this software and this software will then manage the containers. As we do for the registry, this software shall also be in a container created by Clouder.
Some of you suggested docker-compose, other rancher, any other suggestions ? We will probably have to make a choice, we need to make the good one.
I'm again trying a fresh install i encountered this problem while deploying my registry container
"Error : " + str(inst))) except_orm: (u'Connect error!', u"We were not able to connect to your server. Please make sure you add the public key in the authorized_keys file of your root user on your server.\nIf you were trying to connect to a container, a click on the 'reset key' button on the container record may resolve the problem.\nTarget : 192.168.1.5\nError : [Errno None] Unable to connect to port 14007 on or 192.168.1.5"
i checked my odoo log and was blocked while running "sudo docker run" saying missing "sudo" so i had to manually install sudo to make it work. i dont use ubuntu so it is needed to use sudo in docker run ?
Hello world,
After a whole day spent to try to send the mails of the mailing list from my server (and so not from the currently used mandrill), I have to give up I'll not be able to do it alone.
This is a concern for me because the mailing list of Odoo, used by the mailing list of goclouder.net, send for each answer a mail to each people who subscribed. So if we have one hundred people on the mailing list, one hundred mail will be send for each answer.
I have a free fair use of 12000 with mandrill, but I'm afraid to quickly reach this number when I'll start to promote Clouder and then I'll have to pay for the mailing list. That's why I tried to configure my postfix to directly send mail but all my mails finish in spam (ip not blacklisted, SPF ok, couldn't make DKIM work)
I give up and wait until someone correct and use the clouder_template_postfix module to send his email directly, and make it work for the mailing list of Odoo. I think we still need to add SPF and DKIM in it, here is the tutorial I used (french) :
https://www.skyminds.net/serveur-dedie-ajouter-lauthentification-spf-sender-id-et-dkim-a-postfix-et-bind9-avec-opendkim/
Also, until this is done, if someone has a working SMTP server I could connect with sasl to send the emails of the mailing list I'd greatly appreciate it.
Hello:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/server/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/server/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/server/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/server/openerp/service/model.py", line 118, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/server/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/server/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/server/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/server/openerp/addons/web/controllers/main.py", line 944, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/server/openerp/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/server/openerp/api.py", line 256, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/server/openerp/api.py", line 360, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/server/openerp/custom/addons/clouder/clouder_base.py", line 378, in create
return super(ClouderBase, self).create(vals)
File "/opt/odoo/server/openerp/api.py", line 254, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/server/openerp/custom/addons/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/opt/odoo/server/openerp/api.py", line 254, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/server/openerp/custom/addons/clouder/clouder_base.py", line 595, in deploy
res = self.deploy_create_database()
File "/opt/odoo/server/openerp/api.py", line 254, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/server/openerp/custom/addons/clouder_template_odoo/clouder_template_odoo.py", line 228, in deploy_create_database
user_password=self.admin_password)
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 657, in create_database
user_password)
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 401, in
wrapper = lambda s, _args: s.dispatch(name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1587, in __request
verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1273, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1306, in single_request
return self.parse_response(response)
File "/usr/lib/python2.7/xmlrpclib.py", line 1482, in parse_response
return u.close()
File "/usr/lib/python2.7/xmlrpclib.py", line 794, in close
raise Fault(*self._stack[0])
Fault: <Fault FATAL: password authentication failed for user "www_clouder_production"
FATAL: password authentication failed for user "www_clouder_production"
I check the postgres container, and is online
regards
There is a bug in the Postgres image. Since Postgres as updated to 9.4, the path use in the Dockerfile are now incorrect, resulting in an error during the build.
Hello,
wkhtmltopdf has moved the downloads provider from SourceForge to gna.org. As mentioned in the linked message, all earlier downloads have been removed from SourceForge and you are strongly advised to migrate to the new URLs. The following files in your repository will need to be updated:
It is recommended to either subscribe to the mailing list or Twitter feed to receive updates on new releases and further changes.
Thanks,
wkhtmltopdf maintainer
Hello guys
Just so you know, after the feedback I received last months I am working on a lot of improvement for Clouder, you can check them on the 'next' branch. Many of them are done to be more compatible with the docker way of doing.
-Removed the need of ssh (I didn't had docker exec when I made the first version)
-integration with connector to make asynchronous call,
-odoo will now be in three containers data/files/exec. Add the notion of package
-Add a one-click-install button which will install all the container for a standard infrastructure
-Remove the build in application (best use a data image for this purpose) and the concept of services (best deploy another container for this purpose)
-and some others
ETA end of november. Since I am removing some features (build in application and services) it's best I launch an open discussion about it, just in case.
Yannick.
When I build the applicationI Odoo, I indicate the archive container and click on the build button, but I got this error(odoo-server.log):
2015-08-05 16:52:10,844 13549 INFO pandaplus openerp.addons.clouder.clouder_model: connect: ssh www-panda1-archive_panda1.pandaplus.biz
2015-08-05 16:52:10,858 13549 INFO pandaplus openerp.addons.clouder.clouder_model: ===================
2015-08-05 16:52:10,860 13549 INFO pandaplus openerp.addons.clouder.clouder_model: FAIL! Reverting...
2015-08-05 16:52:10,861 13549 INFO pandaplus openerp.addons.clouder.clouder_model: ===================
2015-08-05 16:52:10,867 13549 INFO pandaplus openerp.addons.clouder.clouder_model: connect: ssh www-panda1-archive_panda1.pandaplus.biz
2015-08-05 16:52:10,892 13549 ERROR pandaplus openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/odoo/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 948, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 363, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_application.py", line 291, in build
'archive_id': self.archive_id and self.archive_id.id})
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_application.py", line 414, in deploy
ssh = self.connect(self.archive_id.fullname)
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 412, in connect
"Error : " + str(inst)))
This log archive containe:
command : /opt/odoo/odoo/addons/clouder/res/sed.sh www-panda1-archive_panda1.pandaplus.biz /opt/odoo/.ssh/config
command : rm -rf /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz
command : rm -rf /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz.pub
connect: ssh panda1.pandaplus.biz
command : rm -rf /opt/keys/www-panda1-archive_panda1.pandaplus.biz/authorized_keys
stdout :
stderr :
connect: ssh panda1.pandaplus.biz
connect: ssh panda1.pandaplus.biz
command : docker stop www-panda1-archive
stdout :
stderr : Error response from daemon: no such id: www-panda1-archive
Error: failed to stop containers: [www-panda1-archive]
command : sudo docker rm www-panda1-archive
stdout :
stderr : Error response from daemon: no such id: www-panda1-archive
Error: failed to remove containers: [www-panda1-archive]
command : rm -rf /opt/keys/www-panda1-archive_panda1.pandaplus.biz
stdout :
stderr :
connect: ssh panda1.pandaplus.biz
command : netstat -an | grep 14003
stdout :
stderr :
command : /opt/odoo/odoo/addons/clouder/res/sed.sh www-panda1-archive_panda1.pandaplus.biz /opt/odoo/.ssh/config
command : rm -rf /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz
command : rm -rf /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz.pub
connect: ssh panda1.pandaplus.biz
command : rm -rf /opt/keys/www-panda1-archive_panda1.pandaplus.biz/authorized_keys
stdout :
stderr :
command : ssh-keygen -t rsa -C [email protected] -f /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz -N
stdout : Generating public/private rsa key pair.
stdout : Your identification has been saved in /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz.
stdout : Your public key has been saved in /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz.pub.
stdout : The key fingerprint is:
stdout : 94:a8:f3:6c:91:91:d7:3c:db:72:84:5b:e4:71:52:78 [email protected]
stdout : The key's randomart image is:
stdout : +--[ RSA 2048]----+
stdout : | +oo |
stdout : | o + +.+E |
stdout : | + + = +. |
stdout : | . = B |
stdout : | o o S + o |
stdout : | + . o |
stdout : | + |
stdout : | . |
stdout : | |
stdout : +-----------------+
connect: ssh panda1.pandaplus.biz
command : mkdir -p /opt/keys/www-panda1-archive_panda1.pandaplus.biz
stdout :
stderr :
send : /opt/odoo/.ssh/keys/www-panda1-archive_panda1.pandaplus.biz.pub to /opt/keys/www-panda1-archive_panda1.pandaplus.biz/authorized_keys
command : sudo docker run -d --restart=always -p 14003:22 -v /opt/keys/www-panda1-archive_panda1.pandaplus.biz:/opt/keys --name www-panda1-archive localhost:14000/img_archive:1.20150805.144447
stdout :
stderr : Unable to find image 'localhost:14000/img_archive:1.20150805.144447' locally
Pulling repository localhost:14000/img_archive
Error: image img_archive:1.20150805.144447 not found
connect: ssh panda1.pandaplus.biz
command : docker stop www-panda1-archive
stdout :
stderr : Error response from daemon: no such id: www-panda1-archive
Error: failed to stop containers: [www-panda1-archive]
connect: ssh panda1.pandaplus.biz
command : docker start www-panda1-archive
stdout :
stderr : Error response from daemon: no such id: www-panda1-archive
Error: failed to start containers: [www-panda1-archive]
This base container not be saved or the backup isnt configured in conf, skipping save container
This is the message i obtain when trying to create a registry container on a new server (my first one) :
"Connect error!
We were not able to connect to your server. Please make sure you add the public key in the authorized_keys file of your root user on your server.
If you were trying to connect to a container, a click on the 'reset key' button on the container record may resolve the problem.
Target : 149.202.38.100
Error : [Errno 111] Connection refused"
What public key is it asking for? the one in the server object in clouder OR the one of the server with clouder on it? In the second case, which public key must to be use (which user's key)?
I have an other question : where can we find the complete requirements to use clouder on the clouder server and on the managed server.
There is an idea, if you find it is not on the current topic, please tell me. I found that the model works Clouder can operate as a Configuration Management. Managing such an application as Ansible. Requires three functions that perform Clouder:
1.Connecting to the server via SSH.
2.Execution playbook.
3.And perform log collection.
There are three basic document. What do you think about this @YannickB?
Hi,
I get this error when i try to deploy the odoo or clouder container:
ValidateError
Error while validating constraint
Data error!
You need to specify a link to Clouder for the container local-clouder.
The Logfile shows:
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(*a, **kw)
File "/opt/odoo/odoo/openerp/http.py", line 803, in __call__
return self.method(*args, **kw)
File "/opt/odoo/odoo/openerp/http.py", line 403, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 948, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 940, in _call_kw
return checked_call(request.db, *args, **kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 939, in checked_call
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 250, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 345, in old_api
result = method(recs, *args, **kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 307, in create
res = super(ClouderModel, self).create(vals)
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 4092, in create
record = self.browse(self._create(old_vals))
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 481, in new_api
result = method(self._model, cr, uid, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 4277, in _create
result += self._columns[field].set(cr, self, id_new, field, vals[field], user, rel_context) or []
File "/opt/odoo/odoo/openerp/osv/fields.py", line 801, in set
id_new = obj.create(cr, user, act[2], context=context)
File "/opt/odoo/odoo/openerp/api.py", line 250, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 345, in old_api
result = method(recs, *args, **kwargs)
File "/opt/odoo/odoo/addons/clouder/clouder_model.py", line 307, in create
res = super(ClouderModel, self).create(vals)
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 4092, in create
record = self.browse(self._create(old_vals))
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/api.py", line 481, in new_api
result = method(self._model, cr, uid, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 4283, in _create
recs._validate_fields(vals)
File "/opt/odoo/odoo/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 1282, in _validate_fields
raise ValidationError("Error while validating constraint\n\n%s" % tools.ustr(e))
ValidationError: ('ValidateError', u'Error while validating constraint\n\nData error!\nYou need to specify a link to Clouder for the container local-clouder')
thx for your help.
To continue the discussion we have at IndieHosters, and with your great inputs, I'd like to know your vision for the future of clouder.
Most modern PaaS provide API (https://github.com/weihanwang/docker-ecosystem-survey#orchestration-frameworks-ie-paas-software-for-docker, yours is down the list with IndiePaaS :) )
Why do you want to build yet another PaaS, and not use one that is already developed (like mesos for instance?)
This question really bother me personally, I have troubles to answer it myself, and I'm wondering if you have an answer :)
Because, you could imagine simply developping an Odoo plugin to interface with paz.sh or mesos, and it would be done, right?
Just wondering!
Thanks!
The single (total) page (panel) management server. Wishing for improving
Error on testing connection to new server.
it seem it is related to
paramiko/paramiko#526
any idea for a work around? TIA
Odoo Warning
Connect error!
We were not able to connect to your server. Please make sure you add the public key in the authorized_keys file of your root user on your server.
If you were trying to connect to a container, a click on the 'reset key' button on the container record may resolve the problem.
Target : ns30.eu
Error : Incompatible ssh server (no acceptable macs)
Hello everyone,
Currently when we deploy a base, it will automatically create a container if we don't specify a service, but only one container.
We still need to find a way to manage packages (exemple Odoo + Magento) so when a customer fill a form, it will create and configure several containers, one for each applications.
I don't know if we'll have to manage this concept directly in Clouder or if we can use existing software. Someone suggest me http://panamax.io/ and it's true it looks interesting. I'm creating this ticket to not forget this suggestion.
Hello guys,
When i try to build the odoo application a get this error:
Traceback (most recent call last):
File "/opt/odoo/server/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/server/openerp/http.py", line 574, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/server/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/server/openerp/service/model.py", line 118, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/server/openerp/http.py", line 307, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/server/openerp/http.py", line 803, in call
return self.method(_args, *_kw)
File "/opt/odoo/server/openerp/http.py", line 403, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/server/addons/web/controllers/main.py", line 948, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/odoo/server/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/server/openerp/api.py", line 250, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/server/openerp/api.py", line 372, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/clouder/clouder/clouder_application.py", line 291, in build
'archive_id': self.archive_id and self.archive_id.id})
File "/opt/odoo/server/openerp/api.py", line 248, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/clouder/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/opt/odoo/server/openerp/api.py", line 248, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/clouder/clouder/clouder_application.py", line 418, in deploy
self.build_application()
File "/opt/odoo/server/openerp/api.py", line 248, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/clouder/clouder_template_odoo/clouder_template_odoo.py", line 94, in build_application
self.full_archivepath + '/parts/http.patch')
File "/opt/odoo/server/openerp/api.py", line 248, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/clouder/clouder/clouder_model.py", line 466, in send
sftp.put(source, destination)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 669, in put
return self.putfo(fl, remotepath, file_size, callback, confirm)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 621, in putfo
with self.file(remotepath, 'wb') as fr:
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 327, in open
t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 729, in _request
return self._read_response(num)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 776, in _read_response
self._convert_status(msg)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line 802, in _convert_status
raise IOError(errno.ENOENT, text)
IOError: [Errno 2] No such file
On the log of odoo server i get this
/opt/archives/odoo-odoo/8.0.20151023.154044/sandbox/lib/python2.7/site-packages/pip/wheel.py
/opt/archives/odoo-odoo/8.0.20151023.154044/sandbox/lib/python2.7/site-packages/pip/wheel.pyc
Proceed (y/n)? Successfully uninstalled pip2015-10-23 15:40:48,260 3377 INFO saas openerp.addons.clouder.clouder_model: stderr :
2015-10-23 15:40:48,263 3377 INFO saas openerp.addons.clouder.clouder_model: command : sandbox/bin/python bootstrap.py
2015-10-23 15:40:48,266 3377 INFO saas openerp.addons.clouder.clouder_model: path : /opt/archives/odoo-odoo/8.0.20151023.154044
2015-10-23 15:40:50,680 3377 INFO saas openerp.addons.clouder.clouder_model: stdout :
2015-10-23 15:40:50,685 3377 INFO saas openerp.addons.clouder.clouder_model: stderr : Downloading https://pypi.python.org/packages/source/s/setuptools/setuptools-18.4.zip
Extracting in /tmp/tmprPMQ9D
Now working in /tmp/tmprPMQ9D/setuptools-18.4
Building a Setuptools egg in /tmp/bootstrap-WsclVx
/tmp/bootstrap-WsclVx/setuptools-18.4-py2.7.egg
While:
Initializing.An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
Traceback (most recent call last):
File "/tmp/bootstrap-WsclVx/zc.buildout-2.4.5-py2.7.egg/zc/buildout/buildout.py", line 1991, in main
user_defaults, command, args)
File "/tmp/bootstrap-WsclVx/zc.buildout-2.4.5-py2.7.egg/zc/buildout/buildout.py", line 231, in init
data['buildout'].copy(), override, set()))
File "/tmp/bootstrap-WsclVx/zc.buildout-2.4.5-py2.7.egg/zc/buildout/buildout.py", line 1605, in _open
fp, filename_for_logging, _default_globals)
File "/tmp/bootstrap-WsclVx/zc.buildout-2.4.5-py2.7.egg/zc/buildout/configparser.py", line 207, in parse
raise MissingSectionHeaderError(fpname, lineno, line)
MissingSectionHeaderError: File contains no section headers.
file: /opt/archives/odoo-odoo/8.0.20151023.154044/buildout.cfg, line: 2
'git clone http://github.com/odoo/odoo.git parts/odoo -b 8.0\n'2015-10-23 15:40:50,688 3377 INFO saas openerp.addons.clouder.clouder_model: command : bin/buildout
2015-10-23 15:40:50,691 3377 INFO saas openerp.addons.clouder.clouder_model: path : /opt/archives/odoo-odoo/8.0.20151023.154044
2015-10-23 15:40:50,738 3377 INFO saas openerp.addons.clouder.clouder_model: stdout :
2015-10-23 15:40:50,741 3377 INFO saas openerp.addons.clouder.clouder_model: stderr : bash: bin/buildout: No such file or directory2015-10-23 15:40:50,744 3377 INFO saas openerp.addons.clouder.clouder_model: command : sed -i "s//opt/archives//opt/versions/g" /opt/archives/odoo-odoo/8.0.20151023.154044/bin/start_odoo
2015-10-23 15:40:50,798 3377 INFO saas openerp.addons.clouder.clouder_model: stdout :
2015-10-23 15:40:50,802 3377 INFO saas openerp.addons.clouder.clouder_model: stderr : sed: can't read /opt/archives/odoo-odoo/8.0.20151023.154044/bin/start_odoo: No such file or directory2015-10-23 15:40:50,805 3377 INFO saas openerp.addons.clouder.clouder_model: command : sed -i "s//opt/archives//opt/versions/g" /opt/archives/odoo-odoo/8.0.20151023.154044/bin/buildout
2015-10-23 15:40:50,901 3377 INFO saas openerp.addons.clouder.clouder_model: stdout :
2015-10-23 15:40:50,906 3377 INFO saas openerp.addons.clouder.clouder_model: stderr : sed: can't read /opt/archives/odoo-odoo/8.0.20151023.154044/bin/buildout: No such file or directory2015-10-23 15:40:50,992 3377 INFO saas paramiko.transport.sftp: [chan 8] Opened sftp connection (server version 3)
2015-10-23 15:40:50,993 3377 INFO saas openerp.addons.clouder.clouder_model: send : /opt/clouder/clouder_template_odoo/res/http.patch to /opt/archives/odoo-odoo/8.0.20151023.154044/parts/http.patch
2015-10-23 15:40:50,997 3377 INFO saas openerp.addons.clouder.clouder_model: ===================
2015-10-23 15:40:51,000 3377 INFO saas openerp.addons.clouder.clouder_model: FAIL! Reverting...
2015-10-23 15:40:51,003 3377 INFO saas openerp.addons.clouder.clouder_model: ===================
2015-10-23 15:40:51,014 3377 INFO saas openerp.addons.clouder.clouder_model: connect: ssh www-archive_agilorg.ma
2015-10-23 15:40:51,034 3377 INFO ? paramiko.transport: Connected (version 2.0, client OpenSSH_6.7p1)
Cant duplicate entries (Containers , images ....). Bug
Error in Clouder when logging with a different user other than the Administrator. Bug
Install Docker on a remote server with Clouder. Wishing to improve.
Hello everyone,
Well all is said, I think hosting a Gitlab will be very important for most of us to manage the code of our customers.
I started a module about it but I never had the time to finish, this application is really not simple.
Hello:
I created two machines in Amazon:
Connect error!
We were not able to connect to your server. Please make sure you add the public key in the authorized_keys file of your root user on your server.
If you were trying to connect to a container, a click on the 'reset key' button on the container record may resolve the problem.
Target : clouder.odoo.cl
Error : [Errno 110] Connection timed out
regards
The supervisord script doesn't run the right executable for shinken. The shinken executable is located at /usr/local/shinken/bin/init.d/shinken
Use an SSH client to access the docker server with the Clouder instance (Web based SSH - Add SSH button in Clouder). Wishing for improving.
Since postgresql username can't contain Caps letter and the username used with a odoo container is based of the service name, you need to set it to lower case in the config file.
Hello everyone,
I'd like here to suggest a new infrastructure which can be interesting to target the visitors who want to create an E-commerce website : A full infrastructure with Odoo for the backffoce and a CMS for the e-commerce (Magento or Prestashop). Next I'll only take the example of Odoo-Magento.
At customer request :
A new Odoo base will be deployed
A new Magento base will be deployed
The Magento connector module will be installed on Odoo and configured with the Magento hostname and login.
Hi since yesterday i'm having an issue adding a base , i suspect postgres is the problem (img_postgres with a postgresql9.4 and 9.1 path) , but have no clue how to resolve it
Error : could not translate host name "postgres" to address: Name or service not known
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 536, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 573, in dispatch
result = self._call_function(*_self.params)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 309, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 306, in checked_call
return self.endpoint(_a, *_kw)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 802, in call
return self.method(_args, *_kw)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 402, in response_wrap
response = f(_args, *_kw)
File "/home/odoo/odoo-dev/odoo/addons/web/controllers/main.py", line 937, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo-dev/odoo/addons/web/controllers/main.py", line 929, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 336, in old_api
result = method(recs, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/addons/clouder-8.0/clouder/clouder_base.py", line 378, in create
return super(ClouderBase, self).create(vals)
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/addons/clouder-8.0/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/addons/clouder-8.0/clouder/clouder_base.py", line 595, in deploy
res = self.deploy_create_database()
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/addons/clouder-8.0/clouder_template_odoo/clouder_template_odoo.py", line 217, in deploy_create_database
user_password=self.admin_password)
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 639, in create_database
user_password)
File "/usr/local/lib/python2.7/dist-packages/erppeek.py", line 383, in
wrapper = lambda s, _args: s._dispatch(name, args)
File "/usr/lib/python2.7/xmlrpclib.py", line 1591, in __request
verbose=self.__verbose
File "/usr/lib/python2.7/xmlrpclib.py", line 1273, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python2.7/xmlrpclib.py", line 1306, in single_request
return self.parse_response(response)
File "/usr/lib/python2.7/xmlrpclib.py", line 1482, in parse_response
return u.close()
File "/usr/lib/python2.7/xmlrpclib.py", line 794, in close
raise Fault(__self._stack[0])
Fault: <Fault could not translate host name "postgres" to address: Name or service not known
: 'Traceback (most recent call last):\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/service/wsgi_server.py", line 75, in xmlrpc_return\n result = openerp.http.dispatch_rpc(service, method, params)\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/http.py", line 115, in dispatch_rpc\n result = dispatch(method, params)\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/service/db.py", line 73, in dispatch\n return fn(_params)\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/service/db.py", line 90, in exp_create_database\n _create_empty_database(db_name)\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/service/db.py", line 77, in _create_empty_database\n with closing(db.cursor()) as cr:\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/sql_db.py", line 575, in cursor\n return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/sql_db.py", line 181, in init\n self._cnx = pool.borrow(dsn)\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/sql_db.py", line 464, in _locked\n return fun(self, _args, *_kwargs)\n File "/opt/versions/odoo-clouder/8.0.20150616.162105/parts/odoo/openerp/sql_db.py", line 526, in borrow\n result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)\n File "/usr/lib/python2.7/dist-packages/psycopg2/init.py", line 164, in connect\n conn = _connect(dsn, connection_factory=connection_factory, async=async)\nOperationalError: could not translate host name "postgres" to address: Name or service not known\n\n'>
Hello
I am looking for a solution that would help me set up multiple independent instances of ODOO, each instance will be accessible on a domain or subdomain hosted on this server. I do not have very advanced skills at administrating a server and would like to know before diggin into you documentation if it the purpose of what you are proposing.
Thanks for your time
Yaz
Hello , Following your tutorial i have succeded with all steps until now . after creating a base everything seemed to work . my odoo instance got created and the database , but when i try to get into my instance through the base url it doesnt work . here the log from the base creation .
connect: ssh www-bind_192.168.1.6
command : sed -i "/clou\sIN\sCNAME/d" /etc/bind/db.errafay.net
stdout :
stderr :
command : /etc/init.d/bind9 reload
stdout : Reloading domain name service...: bind9.
stderr :
connect: ssh shinken@www-shinken_192.168.1.6
command : rm /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : /etc/init.d/shinken reload
stdout :
stderr : bash: /etc/init.d/shinken: No such file or directory
connect: ssh www-postfix_192.168.1.6
command : sed -i "/^mydestination =/ s/, clou.errafay.net//" /etc/postfix/main.cf
stdout :
stderr :
command : sed -i "/@clou.errafay.net/d" /etc/postfix/virtual_aliases
stdout :
stderr :
command : postmap /etc/postfix/virtual_aliases
stdout :
stderr :
command : sed -i "/d\sclouder_clou_errafay_net/d" /etc/aliases
stdout :
stderr :
command : newaliases
stdout :
stderr :
command : /etc/init.d/postfix reload
stdout : Reloading Postfix configuration...done.
stderr :
connect: ssh www-proxy_192.168.1.6
command : rm /etc/nginx/sites-enabled/clouder-clou-errafay-net
stdout :
stderr : rm: cannot remove /etc/nginx/sites-enabled/clouder-clou-errafay-net: No such file or directory
command : rm /etc/nginx/sites-available/clouder-clou-errafay-net
stdout :
stderr : rm: cannot remove /etc/nginx/sites-available/clouder-clou-errafay-net: No such file or directory
command : rm /etc/ssl/certs/clou.errafay.net.*
stdout :
stderr : rm: cannot remove /etc/ssl/certs/clou.errafay.net.*: No such file or directory
command : rm /etc/ssl/private/clou.errafay.net.*
stdout :
stderr : rm: cannot remove /etc/ssl/private/clou.errafay.net.*: No such file or directory
command : /etc/init.d/nginx reload
stdout : Reloading nginx configuration: nginx.
stderr :
connect: ssh postgres@www-postgres_192.168.1.6
command : psql -c "update pg_database set datallowconn = 'false' where datname = 'clouder_clou_errafay_net'; SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'clouder_clou_errafay_net';"
stdout :
stderr : ERROR: column "procpid" does not exist
LINE 1: ...er_clou_errafay_net'; SELECT pg_terminate_backend(procpid) F...
^
command : dropdb clouder_clou_errafay_net
stdout :
stderr :
connect: ssh odoo@www-clouder_192.168.1.6
command : rm -rf /opt/odoo/test/filestore/clouder_clou_errafay_net
stdout :
stderr :
connect: ssh postgres@www-postgres_192.168.1.6
command : psql -c "update pg_database set datallowconn = 'false' where datname = 'clouder_clou_errafay_net'; SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE datname = 'clouder_clou_errafay_net';"
stdout :
stderr : ERROR: column "procpid" does not exist
LINE 1: ...er_clou_errafay_net'; SELECT pg_terminate_backend(procpid) F...
^
command : dropdb clouder_clou_errafay_net
stdout :
stderr : dropdb: database removal failed: ERROR: database "clouder_clou_errafay_net" does not exist
connect: ssh odoo@www-clouder_192.168.1.6
command : rm -rf /opt/odoo/test/filestore/clouder_clou_errafay_net
stdout :
stderr :
connect: ssh odoo@www-clouder_192.168.1.6
command : mkdir -p /opt/odoo/test/filestore/clouder_clou_errafay_net
stdout :
stderr :
client = erppeek.Client('http://192.168.1.6:14019')
client.create_database('dUpJOfA5PD78Zrdkc6Nn','clouder_clou_errafay_net',demo=False,lang='en_US',user_password='XwSWRx8WKILcMEce5C2c')
Database created
client = erppeek.Client('http://192.168.1.6:14019,db=clouder_clou_errafay_net,user='admin', password=XwSWRx8WKILcMEce5C2c)
admin_id = client.model('ir.model.data').get_object_reference('base', 'user_root')[1]
client.model('res.users').write([1], {'login': admin})
extended_group_id = client.model('ir.model.data').get_object_reference('base', 'group_no_one')[1]
client.model('res.groups').write([8], {'users': [(4, 1)]})
client.install(clouder)
client = erppeek.Client('http://192.168.1.6:14019, db=clouder_clou_errafay_net, user=admin, password=XwSWRx8WKILcMEce5C2c)
company_id = client.model('ir.model.data').get_object_reference('base', 'main_company')[1]
client.model('res.company').write([1], {'name':der})
config_ids = client.model('ir.config_parameter').search([('key','=','web.base.url')])
client.model('ir.config_parameter').write([1], {'value': 'http://clou.errafay.net})
config_ids = client.model('ir.config_parameter').search([('key','=','ir_attachment.location')])
client.model('ir.config_parameter').create({'key': 'ir_attachment.location', 'value': 'file:///filestore'})
Saving 2015-06-23-104037_clouder-clou-errafay-net
Comment: Manual
connect: ssh odoo@www-clouder_192.168.1.6
command : mkdir -p /base-backup/2015-06-22_clou_errafay.net
stdout :
stderr :
command : pg_dump -O -h postgres -U www_clouder_test clouder_clou_errafay_net > /base-backup/2015-06-22_clou_errafay.net/clouder_clou_errafay_net.dump
stdout :
stderr :
connect: ssh odoo@www-clouder_192.168.1.6
command : cp -R /opt/odoo/test/filestore/clouder_clou_errafay_net /base-backup/2015-06-22_clou_errafay.net/filestore
stdout :
stderr :
command : chmod -R 777 /base-backup/2015-06-22_clou_errafay.net
stdout :
stderr :
connect: ssh www-clouder_192.168.1.6
command : rm -rf /tmp/2015-06-22_clou_errafay.net*
stdout :
stderr :
command : mkdir /tmp/2015-06-22_clou_errafay.net
stdout :
stderr :
command : cp -R /base-backup/2015-06-22_clou_errafay.net/* /tmp/2015-06-22_clou_errafay.net
stdout :
stderr :
command : echo "2015-06-23" > /tmp/2015-06-22_clou_errafay.net/backup-date
stdout :
stderr :
command : chmod -R 777 /tmp/2015-06-22_clou_errafay.net*
stdout :
stderr :
connect: ssh backup@www-backup_192.168.1.6
command : rm -rf /opt/backup/list/clouder_clou_errafay_net
stdout :
stderr :
command : mkdir -p /opt/backup/list/clouder_clou_errafay_net
stdout :
stderr :
command : echo "2015-06-22_clou_errafay.net" > /opt/backup/list/clouder_clou_errafay_net/repo
stdout :
stderr :
send : /home/odoo/.ssh/config to /home/backup/.ssh/config
send : /home/odoo/.ssh/keys/www-clouder_192.168.1.6.pub to /home/backup/.ssh/keys/www-clouder_192.168.1.6.pub
send : /home/odoo/.ssh/keys/www-clouder_192.168.1.6 to /home/backup/.ssh/keys/www-clouder_192.168.1.6
command : chmod -R 700 /home/backup/.ssh
stdout :
stderr :
command : rm -rf /tmp/2015-06-22_clou_errafay.net
stdout :
stderr :
command : mkdir /tmp/2015-06-22_clou_errafay.net
stdout :
stderr :
command : rsync -e 'ssh -o StrictHostKeyChecking=no' -ra www-clouder_192.168.1.6:/tmp/2015-06-22_clou_errafay.net/ /tmp/2015-06-22_clou_errafay.net
stdout :
stderr :
command : export BUP_DIR=/opt/backup/bup; bup index /tmp/2015-06-22_clou_errafay.net
stdout :
stderr :
command : export BUP_DIR=/opt/backup/bup; bup save -n 2015-06-22_clou_errafay.net -d 1435056037 --strip /tmp/2015-06-22_clou_errafay.net
stdout :
stderr :
command : rm -rf /tmp/2015-06-22_clou_errafay.net*
stdout :
stderr :
command : rm /home/backup/.ssh/keys/*
stdout :
stderr :
connect: ssh www-clouder_192.168.1.6
command : rm -rf /tmp/2015-06-22_clou_errafay.net*
stdout :
stderr :
connect: ssh odoo@www-clouder_192.168.1.6
command : rm -rf /base-backup/2015-06-22_clou_errafay.net
stdout :
stderr :
connect: ssh www-bind_192.168.1.6
command : sed -i "/clou\sIN\sCNAME/d" /etc/bind/db.errafay.net
stdout :
stderr :
command : /etc/init.d/bind9 reload
stdout : Reloading domain name service...: bind9.
stderr :
connect: ssh www-bind_192.168.1.6
command : echo "clou IN CNAME 192.168.1.6." >> /etc/bind/db.errafay.net
stdout :
stderr :
command : echo "IN MX 1 192.168.1.6. ;clou IN CNAME" >> /etc/bind/db.errafay.net
stdout :
stderr :
command : /etc/init.d/bind9 reload
stdout : Reloading domain name service...: bind9.
stderr :
connect: ssh shinken@www-shinken_192.168.1.6
command : rm /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr : rm: cannot remove /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg: No such file or directory
command : /etc/init.d/shinken reload
stdout :
stderr : bash: /etc/init.d/shinken: No such file or directory
connect: ssh shinken@www-shinken_192.168.1.6
send : /home/odoo/odoo-dev/odoo/addons/clouder-8.0/clouder_template_shinken/res/base-shinken.config to /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
command : sed -i "s/TYPE/base/g" /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : sed -i "s/UNIQUE_NAME/clouder_clou_errafay_net/g" /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : sed -i "s/DATABASES/clouder_clou_errafay_net/g" /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : sed -i "s/BASE/clou/g" /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : sed -i "s/DOMAIN/errafay.net/g" /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : sed -i "s/METHOD/bup/g" /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : sed -i "s/CONTAINER/www-backup_192.168.1.6/g" /usr/local/shinken/etc/services/clouder-clou-errafay-net.cfg
stdout :
stderr :
command : /etc/init.d/shinken reload
stdout :
stderr : bash: /etc/init.d/shinken: No such file or directory
command : rm -rf /home/shinken/.ssh/keys/www-backup_192.168.1.6*
stdout :
stderr :
send : /home/odoo/.ssh/keys/www-backup_192.168.1.6.pub to /home/shinken/.ssh/keys/www-backup_192.168.1.6.pub
send : /home/odoo/.ssh/keys/www-backup_192.168.1.6 to /home/shinken/.ssh/keys/www-backup_192.168.1.6
command : chmod -R 700 /home/shinken/.ssh
stdout :
stderr :
command : sed -i '/Host www-backup_192.168.1.6/,/END www-backup_192.168.1.6/d' /home/shinken/.ssh/config
stdout :
stderr :
command : echo "Host www-backup_192.168.1.6" >> /home/shinken/.ssh/config
stdout :
stderr :
command : echo " Hostname 192.168.1.6" >> /home/shinken/.ssh/config
stdout :
stderr :
command : echo " Port 14005" >> /home/shinken/.ssh/config
stdout :
stderr :
command : echo " User backup" >> /home/shinken/.ssh/config
stdout :
stderr :
command : echo " IdentityFile ~/.ssh/keys/www-backup_192.168.1.6" >> /home/shinken/.ssh/config
stdout :
stderr :
command : echo "#END www-backup_192.168.1.6" >> ~/.ssh/config
stdout :
stderr :
connect: ssh www-postfix_192.168.1.6
command : sed -i "/^mydestination =/ s/, clou.errafay.net//" /etc/postfix/main.cf
stdout :
stderr :
command : sed -i "/@clou.errafay.net/d" /etc/postfix/virtual_aliases
stdout :
stderr :
command : postmap /etc/postfix/virtual_aliases
stdout :
stderr :
command : sed -i "/d\sclouder_clou_errafay_net/d" /etc/aliases
stdout :
stderr :
command : newaliases
stdout :
stderr :
command : /etc/init.d/postfix reload
stdout : Reloading Postfix configuration...done.
stderr :
client = erppeek.Client('http://192.168.1.6:14019,db=clouder_clou_errafay_net,user=admin, password=XwSWRx8WKILcMEce5C2c)
connect: ssh www-postfix_192.168.1.6
command : sed -i "/^mydestination =/ s/$/, clou.errafay.net/" /etc/postfix/main.cf
stdout :
stderr :
command : echo "@clou.errafay.net clouder_clou_errafay_net@localhost" >> /etc/postfix/virtual_aliases
stdout :
stderr :
command : postmap /etc/postfix/virtual_aliases
stdout :
stderr :
command : echo 'clouder_clou_errafay_net: "|openerp_mailgate.py --host=192.168.1.6 --port=14019 -u 1 -p XwSWRx8WKILcMEce5C2c -d clouder_clou_errafay_net"' >> /etc/aliases
stdout :
stderr :
command : newaliases
stdout :
stderr :
command : /etc/init.d/postfix reload
stdout : Reloading Postfix configuration...done.
stderr :
connect: ssh www-proxy_192.168.1.6
command : rm /etc/nginx/sites-enabled/clouder-clou-errafay-net
stdout :
stderr : rm: cannot remove /etc/nginx/sites-enabled/clouder-clou-errafay-net: No such file or directory
command : rm /etc/nginx/sites-available/clouder-clou-errafay-net
stdout :
stderr : rm: cannot remove /etc/nginx/sites-available/clouder-clou-errafay-net: No such file or directory
command : rm /etc/ssl/certs/clou.errafay.net.*
stdout :
stderr : rm: cannot remove /etc/ssl/certs/clou.errafay.net.*: No such file or directory
command : rm /etc/ssl/private/clou.errafay.net.*
stdout :
stderr : rm: cannot remove /etc/ssl/private/clou.errafay.net.*: No such file or directory
command : /etc/init.d/nginx reload
stdout : Reloading nginx configuration: nginx.
stderr :
connect: ssh www-proxy_192.168.1.6
send : /home/odoo/odoo-dev/odoo/addons/clouder-8.0/clouder_template_odoo/res/proxy.config to /etc/nginx/sites-available/clouder-clou-errafay-net
command : sed -i "s/BASE/clou/g" /etc/nginx/sites-available/clouder-clou-errafay-net
stdout :
stderr :
command : sed -i "s/DOMAIN/errafay.net/g" /etc/nginx/sites-available/clouder-clou-errafay-net
stdout :
stderr :
command : sed -i "s/SERVER/192.168.1.6/g" /etc/nginx/sites-available/clouder-clou-errafay-net
stdout :
stderr :
command : sed -i "s/PORT/14019/g" /etc/nginx/sites-available/clouder-clou-errafay-net
stdout :
stderr :
command : openssl req -x509 -nodes -days 365 -newkey rsa:2048 -out /etc/ssl/certs/clou.errafay.net.crt -keyout /etc/ssl/private/clou.errafay.net.key -subj "/C=FR/L=Paris/O=errafay/CN=clou.errafay.net"
stdout :
stderr : Generating a 2048 bit RSA private key
............................................................+++
.........................................+++
command : ln -s /etc/nginx/sites-available/clouder-clou-errafay-net /etc/nginx/sites-enabled/clouder-clou-errafay-net
stdout :
stderr :
command : /etc/init.d/nginx reload
stdout : Reloading nginx configuration: nginx.
Creating (deployment) of the new system (server) based on the templates. Wishing for improving.
Hi , when i try to save my registry container i get this error :
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 536, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 573, in dispatch
result = self._call_function(*_self.params)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 309, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 306, in checked_call
return self.endpoint(_a, *_kw)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 802, in call
return self.method(_args, *_kw)
File "/home/odoo/odoo-dev/odoo/openerp/http.py", line 402, in response_wrap
response = f(_args, *_kw)
File "/home/odoo/odoo-dev/odoo/addons/web/controllers/main.py", line 937, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/odoo-dev/odoo/addons/web/controllers/main.py", line 929, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 336, in old_api
result = method(recs, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/clouder/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/clouder/clouder/clouder_template_registry/clouder_template_registry.py", line 70, in deploy
return super(ClouderContainer, self).deploy()
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/clouder/clouder/clouder_container.py", line 703, in deploy
self.deploy_post()
File "/home/odoo/odoo-dev/odoo/clouder/clouder/clouder_template_registry/clouder_template_registry.py", line 78, in deploy_post
ssh = self.connect(self.fullname)
File "/home/odoo/odoo-dev/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/home/odoo/odoo-dev/odoo/clouder/clouder/clouder_model.py", line 412, in connect
"Error : " + str(inst)))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 27: ordinal not in range(128)
Hello everyone,
Another core container we will need, currently the only way we have to update a container is to regenerate another image an go on each container to replace it with the new image.
This is really heavy, we need a simpler way for simple update like the apt-get update and the apt-get upgrade. Of course this is really important for security, because currently it's difficult to make the security update.
I guess we shall use a more common orchestrator for this, like puppet/chef/saltz container, and then each clouder template module shall have his own configuration file for the orchestrator. Moreover I guess this orchestrator will be useful for more complex things than theses update.
What do you think? Which orchestrator shall be use for this purpose?
Go to SaaS > SaaS > Servers and create a new server.
Fill in the following values:
Domain name:http://www.yourdomain.com
IP:192.168.xxx.xxx
SSH port:22
Start Port: 8069
End Port: 8070
Click on save
You will now get the following error:
The record will not be saved either.
https://github.com/clouder-community/clouder/blob/8.0/clouder/clouder_image.py#L282
You could use the docker registry api, http://docs.docker.com/registry/spec/api/#deleting-an-image
I'm getting this error on save of Containers
File "/opt/odoo/clouder/clouder/clouder_model.py", line 391, in connect
+ ", type : " + type(identityfile)))
TypeError: cannot concatenate 'str' and 'type' objects
This is easily fixed by adding a str()
:
if not isinstance(identityfile, basestring):
raise except_orm(
_('Data error!'),
_("For unknown reason, it seems the variable identityfile in "
"the connect ssh function is invalid. Please report "
"this message.\n"
"Identityfile : " + str(identityfile)
+ ", type : " + str(type(identityfile))))
Which then reveals the real problem:
Data error!
For unknown reason, it seems the variable identityfile in the connect ssh function is invalid. Please report this message.
Identityfile : ['/opt/odoo/.ssh/keys/clouder1.xxxx.yyy'], type : <type 'list'>
The config file seems rigth:
Host clouder1.xxxx.yyy
HostName clouder1.xxxx.yyy
Port 14022
User root
IdentityFile /opt/odoo/.ssh/keys/clouder1.xxxx.yyy
#END clouder1.xxxx.yyy
So why is identityfile a list, and not a string?
This is on Ubuntu 14.04, Python 2.7.6, paramiko==1.15.2
Found this on Paramiko 1.10.0 2013-03-01 release notes:
[Feature] #93: Overhaul SSH config parsing to be in line with man ssh_config (& the behavior of ssh itself), including addition of parameter expansion within config values.
For example, the IdentityFile change turns config objects' identityfile key values into lists when they were strings before, so code expecting a string in that slot (e.g. parts of Fabric, though that is only one client-usage example) will break.
This can be solved by
if isinstance(identityfile, list ):
identityfile = identityfile[0]
Now I can save some Containers. The Backup Bup gives me an connect error from deploy_link()
:
File "/opt/odoo/clouder/clouder/clouder_template_backup/clouder_template_backup.py", line 66, in deploy_link
username='backup')
File "/opt/odoo/odoo8/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/clouder/clouder/clouder_model.py", line 408, in connect
"Error : " + str(inst)))
except_orm: (u'Connect error!', u"We were not able to connect to your server. Please make sure you add the public key in the authorized_keys file of your root user on your server.\nIf you were trying to connect to a container, a click on the 'reset key' button on the container record may resolve the problem.\nError : [Errno 111] Connection refused")
But I think I would leave that to a new issue, when I have looked more into the problem.
Thanks for your time and for a great project
hhg
Hi Yannick,
sudo docker run -d -p False:5000 -p False:443 -p False:22 -v /opt/keys/www-registry_www.server.com:/opt/keys --name www-registry img_registry:1.20150430.091512
stdout :
stderr : time="2015-05-04T22:10:36-04:00" level="fatal" msg="Invalid hostPort: False"
I think if the server port mapping are not provided, it should use the default docker image ports or if they need to explicitly defined , probably good idea to have this mandatory when creating a container record.
Cheers,
Naran
Hello everyone,
I'd like to suggest a new feature which will be very important regarding security : the firewall. All professional hosting close or whitelist the sensible ports and I think we should do the same.
Regarding the technology to use, I guess iptables is the obvious answer but if you have another suggestions please don't hesitate.
I already started to think about it when I was developing Clouder, we have a field (today unused) on the ports containers where you can specified if the port shall be closed, open to other containers or open to the whole internet. I think we shall add another field for the whitelist (or directly replace the existing field with the whilelist field).
Then when we create the container, it will automatically reconfigure the firewall depending of the informations on Clouder.
Also I don't know if we have a way to place the firewall inside a container or if we are forced to install it on the host system. What do you think?
on adding 1st server,
odoo throw the following error when saving the form. the path to the ssh keys seems wrong.
any idea? TIA
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/odoo-server/openerp/http.py", line 530, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo-server/openerp/http.py", line 567, in dispatch
result = self._call_function(*_self.params)
File "/opt/odoo/odoo-server/openerp/http.py", line 303, in _call_function
return checked_call(self.db, *args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/service/model.py", line 113, in wrapper
return f(dbname, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/http.py", line 300, in checked_call
return self.endpoint(_a, *_kw)
File "/opt/odoo/odoo-server/openerp/http.py", line 796, in call
return self.method(_args, *_kw)
File "/opt/odoo/odoo-server/openerp/http.py", line 396, in response_wrap
response = f(_args, *_kw)
File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 936, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 928, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/api.py", line 241, in wrapper
return old_api(self, _args, *_kwargs)
File "/opt/odoo/odoo-server/openerp/api.py", line 336, in old_api
result = method(recs, _args, *_kwargs)
File "/opt/odoo/custom/addons/yannick/clouder/clouder_model.py", line 310, in create
res.deploy()
File "/opt/odoo/odoo-server/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/custom/addons/yannick/clouder_template_shinken/clouder_template_shinken.py", line 46, in deploy
super(ClouderServer, self).deploy()
File "/opt/odoo/odoo-server/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/custom/addons/yannick/clouder/clouder_container.py", line 182, in deploy
self.execute_write_file(key_file, self.private_key)
File "/opt/odoo/odoo-server/openerp/api.py", line 239, in wrapper
return new_api(self, _args, *_kwargs)
File "/opt/odoo/custom/addons/yannick/clouder/clouder_model.py", line 539, in execute_write_file
f = open(localfile, 'a')
IOError: [Errno 2] No such file or directory: u'/opt/odoo/.ssh/keys/ns30.eu'
I was having an issue yesterday building an image for "img_backup_bup" adding the g++ package fixed it .
RUN DEBIAN_FRONTEND=noninteractive apt-get -y -q install python2.7-dev python-fuse python-pyxattr python-pylibacl python-tornado linux-libc-dev acl attr par2 git make cron ncftp g++
Nginx problem when creating base , doesnt redirect to the instance. Add a script to migrate settings from the Nginx container into the Nginx Docker server(Solution nginx)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.