Closed YannickB closed 7 years ago
@@ master #208 diff @@
==========================================
Files 73 73
Lines 5723 5747 +24
Methods 0 0
Messages 0 0
Branches 0 0
==========================================
+ Hits 1804 1807 +3
- Misses 3919 3940 +21
Partials 0 0
Powered by Codecov. Last update 2ae5aa3...6cf5c54
Hrmm I'm getting a singleton error (traceback at bottom). Following are my steps:
If I switch to master, restart odoo, then click deploy again - positive result (until the connection refused that we know about).
Traceback (most recent call last):
File "/opt/odoo/odoo/http.py", line 638, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/http.py", line 675, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo/http.py", line 331, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo/service/model.py", line 119, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo/http.py", line 324, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/odoo/http.py", line 933, in __call__
return self.method(*args, **kw)
File "/opt/odoo/odoo/http.py", line 504, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/addons/web/controllers/main.py", line 866, in call_button
action = self._call_kw(model, method, args, {})
File "/opt/odoo/addons/web/controllers/main.py", line 854, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo/odoo/api.py", line 681, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/opt/odoo/odoo/api.py", line 672, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/media/sf_Repos/clouder/clouder/models/node.py", line 537, in oneclick_deploy
self.do('oneclick_deploy', 'oneclick_deploy_exec')
File "/media/sf_Repos/clouder/clouder/models/node.py", line 354, in do
return super(ClouderNode, self).do(name, action, where=where)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 335, in do
getattr(self, 'do_exec')(action, job_id)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 349, in do_exec
getattr(self, action)()
File "/media/sf_Repos/clouder/clouder_template_odoo/oneclick.py", line 39, in oneclick_deploy_exec
super(ClouderNode, self).oneclick_deploy_exec()
File "/media/sf_Repos/clouder/clouder_template_gitlab/oneclick.py", line 44, in oneclick_deploy_exec
bind = self.oneclick_deploy_element('service', 'bind', ports=[53])
File "/media/sf_Repos/clouder/clouder/models/node.py", line 495, in oneclick_deploy_element
'application_id': application.id,
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/template.py", line 84, in create
return super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/service.py", line 984, in create
res = super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 434, in create
res.do('create', 'deploy_frame')
File "/media/sf_Repos/clouder/clouder/models/model.py", line 335, in do
getattr(self, 'do_exec')(action, job_id)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 349, in do_exec
getattr(self, action)()
File "/media/sf_Repos/clouder/clouder/models/model.py", line 362, in deploy_frame
self.deploy()
File "/media/sf_Repos/clouder/clouder/clouder_template_salt/template.py", line 175, in deploy
super(ClouderService, self).deploy()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1366, in deploy
child.create_child_exec()
File "/media/sf_Repos/clouder/clouder/models/service_child.py", line 64, in create_child_exec
'node_id': self.node_id.id or service.node_id.id
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/template.py", line 84, in create
return super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/service.py", line 984, in create
res = super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 434, in create
res.do('create', 'deploy_frame')
File "/media/sf_Repos/clouder/clouder/models/model.py", line 335, in do
getattr(self, 'do_exec')(action, job_id)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 349, in do_exec
getattr(self, action)()
File "/media/sf_Repos/clouder/clouder/models/model.py", line 365, in deploy_frame
self.purge()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1437, in purge
self.hook_purge_one()
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/runner.py", line 445, in hook_purge_one
self.name + '-' + volume.name])
File "/media/sf_Repos/clouder/clouder/models/model.py", line 595, in execute
ssh = self.connect(node_name, username=username)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 476, in connect
self.ensure_one()
File "/opt/odoo/odoo/models.py", line 4789, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: clouder.node()
Hum I'm trying to understand what's your error, I never met this one before.
It's seems to happen while trying to create the bind service, probably while trying to deploy data or exec bind https://github.com/clouder-community/clouder/blob/master/clouder/models/service_child.py#L64. I can't understand how the node can be null...
Yeah I was confused too, so I even blasted the database and started fresh just to make sure.
You're right that it's in bind. Looks like maybe the container creation has failed? Here's the full log output from the bind job fail - maybe clues:
2017-01-20 19:31:08 : connect: ssh dev.dev
2017-01-20 19:31:08 :
2017-01-20 19:31:08 : host : 192.168.69.108
2017-01-20 19:31:08 : command : docker stop dev-bind-data
2017-01-20 19:31:09 : stderr : Error response from daemon: No such container: dev-bind-data
2017-01-20 19:31:09 : connect: ssh dev.dev
2017-01-20 19:31:09 :
2017-01-20 19:31:09 : host : 192.168.69.108
2017-01-20 19:31:09 : command : docker rm -v dev-bind-data
2017-01-20 19:31:09 : stderr : Error response from daemon: No such container: dev-bind-data
2017-01-20 19:31:09 : ===================
2017-01-20 19:31:09 : FAIL! Reverting...
2017-01-20 19:31:09 : File "/media/sf_Repos/clouder/clouder/models/model.py", line 362, in deploy_frame
self.deploy()
File "/media/sf_Repos/clouder/clouder/clouder_template_salt/template.py", line 175, in deploy
super(ClouderService, self).deploy()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1359, in deploy
super(ClouderService, self).deploy()
File "/media/sf_Repos/clouder/clouder/models/model.py", line 375, in deploy
self.purge()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1437, in purge
self.hook_purge_one()
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/runner.py", line 445, in hook_purge_one
self.name + '-' + volume.name])
File "/media/sf_Repos/clouder/clouder/models/model.py", line 595, in execute
ssh = self.connect(node_name, username=username)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 476, in connect
self.ensure_one()
File "/opt/odoo/odoo/models.py", line 4789, in ensure_one
raise ValueError("Expected singleton: %s" % self)
2017-01-20 19:31:09 : ===================
2017-01-20 19:31:09 : connect: ssh dev.dev
2017-01-20 19:31:09 :
2017-01-20 19:31:09 : host : 192.168.69.108
2017-01-20 19:31:09 : command : docker stop dev-bind-data
2017-01-20 19:31:09 : stderr : Error response from daemon: No such container: dev-bind-data
2017-01-20 19:31:09 : connect: ssh dev.dev
2017-01-20 19:31:09 :
2017-01-20 19:31:09 : host : 192.168.69.108
2017-01-20 19:31:09 : command : docker rm -v dev-bind-data
2017-01-20 19:31:09 : stderr : Error response from daemon: No such container: dev-bind-data
2017-01-20 19:31:09 : ===================
2017-01-20 19:31:09 : FAIL!
2017-01-20 19:31:09 : File "/media/sf_Repos/clouder/clouder/models/model.py", line 349, in do_exec
getattr(self, action)()
File "/media/sf_Repos/clouder/clouder/models/model.py", line 365, in deploy_frame
self.purge()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1437, in purge
self.hook_purge_one()
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/runner.py", line 445, in hook_purge_one
self.name + '-' + volume.name])
File "/media/sf_Repos/clouder/clouder/models/model.py", line 595, in execute
ssh = self.connect(node_name, username=username)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 476, in connect
self.ensure_one()
File "/opt/odoo/odoo/models.py", line 4789, in ensure_one
raise ValueError("Expected singleton: %s" % self)
2017-01-20 19:31:09 : ===================
2017-01-20 19:31:09 : ===================
2017-01-20 19:31:09 : FAIL! Reverting...
2017-01-20 19:31:09 : File "/media/sf_Repos/clouder/clouder/models/model.py", line 362, in deploy_frame
self.deploy()
File "/media/sf_Repos/clouder/clouder/clouder_template_salt/template.py", line 175, in deploy
super(ClouderService, self).deploy()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1366, in deploy
child.create_child_exec()
File "/media/sf_Repos/clouder/clouder/models/service_child.py", line 64, in create_child_exec
'node_id': self.node_id.id or service.node_id.id
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/template.py", line 84, in create
return super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/service.py", line 984, in create
res = super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 434, in create
res.do('create', 'deploy_frame')
File "/media/sf_Repos/clouder/clouder/models/model.py", line 335, in do
getattr(self, 'do_exec')(action, job_id)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 349, in do_exec
getattr(self, action)()
File "/media/sf_Repos/clouder/clouder/models/model.py", line 365, in deploy_frame
self.purge()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1437, in purge
self.hook_purge_one()
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/runner.py", line 445, in hook_purge_one
self.name + '-' + volume.name])
File "/media/sf_Repos/clouder/clouder/models/model.py", line 595, in execute
ssh = self.connect(node_name, username=username)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 476, in connect
self.ensure_one()
File "/opt/odoo/odoo/models.py", line 4789, in ensure_one
raise ValueError("Expected singleton: %s" % self)
2017-01-20 19:31:09 : ===================
2017-01-20 19:31:09 : This service shall not be backupd or the backup isnt configured in conf, skipping backup service
2017-01-20 19:31:09 : connect: ssh dev.dev
2017-01-20 19:31:09 :
2017-01-20 19:31:09 : host : 192.168.69.108
2017-01-20 19:31:09 : command : docker stop dev-bind-data
2017-01-20 19:31:09 : stderr : Error response from daemon: No such container: dev-bind-data
2017-01-20 19:31:09 : connect: ssh dev.dev
2017-01-20 19:31:09 :
2017-01-20 19:31:09 : host : 192.168.69.108
2017-01-20 19:31:09 : command : docker rm -v dev-bind-data
2017-01-20 19:31:09 : stderr : Error response from daemon: No such container: dev-bind-data
2017-01-20 19:31:09 : ===================
2017-01-20 19:31:09 : FAIL!
2017-01-20 19:31:09 : File "/media/sf_Repos/clouder/clouder/models/model.py", line 349, in do_exec
getattr(self, action)()
File "/media/sf_Repos/clouder/clouder/models/model.py", line 362, in deploy_frame
self.deploy()
File "/media/sf_Repos/clouder/clouder/clouder_template_salt/template.py", line 175, in deploy
super(ClouderService, self).deploy()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1366, in deploy
child.create_child_exec()
File "/media/sf_Repos/clouder/clouder/models/service_child.py", line 64, in create_child_exec
'node_id': self.node_id.id or service.node_id.id
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/template.py", line 84, in create
return super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/service.py", line 984, in create
res = super(ClouderService, self).create(vals)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 434, in create
res.do('create', 'deploy_frame')
File "/media/sf_Repos/clouder/clouder/models/model.py", line 335, in do
getattr(self, 'do_exec')(action, job_id)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 349, in do_exec
getattr(self, action)()
File "/media/sf_Repos/clouder/clouder/models/model.py", line 365, in deploy_frame
self.purge()
File "/media/sf_Repos/clouder/clouder/models/service.py", line 1437, in purge
self.hook_purge_one()
File "/media/sf_Repos/clouder/clouder/clouder_runner_docker/runner.py", line 445, in hook_purge_one
self.name + '-' + volume.name])
File "/media/sf_Repos/clouder/clouder/models/model.py", line 595, in execute
ssh = self.connect(node_name, username=username)
File "/media/sf_Repos/clouder/clouder/models/model.py", line 476, in connect
self.ensure_one()
File "/opt/odoo/odoo/models.py", line 4789, in ensure_one
raise ValueError("Expected singleton: %s" % self)
2017-01-20 19:31:09 : ===================
Maybe an error when we create a new node, my own node is configured since a long time now. Gonna create a new one and test.
Mine was actually a working node before I blasted the DB. I did run a purge first if that matters?
Interesting, I just created server1 (was working) and server2 (created now). When I launch oneclick on server2, it try to deploy on server1.
Will try to fix it, to me the problem seems to be in connection anyway.
Hahah sounds like I may have accidentally implemented a new node aggregation feature with the SSHEnvironment! Admittedly I only tried against multiple connections on the same node.
Yeah, sound like it :(
I can handle that if you'd like seeing as I was the one that introduced it.
I don't think that's what's causing this though, do you?
Well I'd appreciate the help here :/, still don't really checked the code of SSHEnvironnement. I am looking at it on my side too.
I do want to make the oneclick work on your server, it should now :/
OK. I think I got it, and looks like the cause of both our errors. Commit soon.
Ok, you can retry I think. It was a typo, I reused a code for swarm without adapting it for engine
Success!
looks like the cause of both our errors
So SSHEnvironment wasn't the cause? Hooray! I was really stumped on that TBH 😆
Yeah! Merging :)
Hello guys,
Finished my test on the oneclick : with this PR THE ONECLICK WORKS IN ENGINE MODE! We correctly get a working Odoo instance after the end of the deployment, please feel free to test it.
We still have the problem in swarm mode with bind because of port 53 not correctly exposed in UDP, but the engine mode works now like it works in 0.9.0.
Enjoy :)