Your language isn't context free.
Assume $L$ is context-free. Then by the pumping lemma for context-free languages we have a constant $n_L$ such that for every $z \in L$ with $|z| \geq n_L$ there exists a decomposition $z = uvwxy$ with properties (i) $|vx| \geq 1$ (ii) $|vwx| \leq n_L$ and (iii) $\{uv^iwx^iy \mid i \in \mathbb{N}\} \subseteq L$
Let $z = a^{n_L}b^{n_L}o^{n_L}$.
Clearly for every decomposition $z = uvwxy$ satisfying (i) and (ii), $vwx$ contains at most two different characters. Then, however, $uv^2wx^2y$ cannot have the same amount of $o$'s, $a$'s and $b$'s because of (i). This leads to a contradiction to our assumption and $L$ isn't context-free.