def create
if server_identity.nil?
ret = nil
begin
self.app.ngears += 1
self.container = OpenShift::ApplicationContainerProxy.find_available(self.node_profile)
self.server_identity = self.container.id
self.uid = self.container.reserve_uid
self.group_instance.gears << self
self.app.save
ret = self.container.create(app,self)
self.app.track_usage(self, UsageRecord::EVENTS[:begin]) if ret.exitcode == 0
rescue Exception => e
Rails.logger.debug e.message
Rails.logger.debug e.backtrace.join("\n")
ret = ResultIO.new
ret.errorIO << e.message
ret.exitcode = 5
end
if ret.exitcode != 0
begin
get_proxy.destroy(self.app, self)
rescue Exception => e
end
self.app.ngears -= 1
self.group_instance.gears.delete(self)
self.app.save
raise OpenShift::NodeException.new("Unable to create gear on node", 1, ret)
end
return ret
end
end