Russia and China have been selling weapons to Iran for decades, but have been very quiet about admitting it. Russia recently broke their silence when a senior military official admitted that, two years ago, Russia signed a contract to sell Iran S-300 anti-aircraft missile systems to Iran.
Western nations have told Russia and China that if they arm Iran with modern weapons, there will be consequences. China has an incentive to back off here, because a stronger Iran threatens China's oil supplies. Russia, however, would benefit by Iranian attempts to shut down oil shipments from the Gulf (if only temporarily, to make a political point), as the price of oil would shoot up, to the benefit of Russian oil sales.
Russia has been holding back on the sale of nearly a billion dollars worth of S-300 anti-aircraft missiles to Iran. Until recently, it was all rather murky, with Iran indicating that it was getting S-300s, and Russia denying there was any deal. What was happening was that Russia was obviously holding off on this deal, while squeezing more and more favors and concessions out of the West. Iran is not happy about not getting its missiles, but Iran doesn't have the clout to force the sale to happen. How this recent Russian admission fits into all this is unclear. It probably has to do with what concessions Russia hopes to get out of the West, and the United States in particular. Russia has a long list of desired concessions. For one, Russia does not want the United States to go forward with installing an anti-missile system in Poland and the Czech Republic. Russia also does not want any more nations on its borders joining NATO. So the haggling continues, even as it emerges from the shadows.