/** * @param VhostConfiguration $configuration * @param $name * @param $queue */ private function createQueue(VhostConfiguration $configuration, $name, $queue) { try { $remoteQueue = $configuration->getClient()->queues()->get($configuration->getName(), $name); } catch (ClientErrorResponseException $e) { $this->handleNotFoundException($e); $configuration->getClient()->queues()->create($configuration->getName(), $name, $queue); } if ($configuration->isDeleteAllowed() && isset($remoteQueue) && !$this->isUpToDate($queue, $remoteQueue)) { $configuration->getClient()->queues()->delete($configuration->getName(), $name); $configuration->getClient()->queues()->create($configuration->getName(), $name, $queue); } }
/** * @param VhostConfiguration $configuration */ public function define(VhostConfiguration $configuration) { foreach ($configuration->getConfiguration('permissions') as $user => $permission) { try { $remotePermission = $configuration->getClient()->permissions()->get($configuration->getName(), $user); } catch (ClientErrorResponseException $e) { $this->handleNotFoundException($e); $configuration->getClient()->permissions()->create($configuration->getName(), $user, $permission); } if ($configuration->isDeleteAllowed() && isset($remotePermission) && !$this->isUpToDate($permission, $remotePermission)) { $configuration->getClient()->permissions()->delete($configuration->getName(), $user); $configuration->getClient()->permissions()->create($configuration->getName(), $user, $permission); } } }
/** * @param VhostConfiguration $configuration */ public function define(VhostConfiguration $configuration) { foreach ($configuration->getConfiguration('exchanges') as $exchange) { $name = $exchange['name']; unset($exchange['name']); try { $remoteExchange = $configuration->getClient()->exchanges()->get($configuration->getName(), $name); } catch (ClientErrorResponseException $e) { $this->handleNotFoundException($e); $configuration->getClient()->exchanges()->create($configuration->getName(), $name, $exchange); } if ($configuration->isDeleteAllowed() && isset($remoteExchange) && !$this->isUpToDate($exchange, $remoteExchange)) { $configuration->getClient()->exchanges()->delete($configuration->getName(), $name); $configuration->getClient()->exchanges()->create($configuration->getName(), $name, $exchange); } } }
/** * @param VhostConfiguration $configuration * * @return bool */ public function exists(VhostConfiguration $configuration) { try { $configuration->getClient()->vhosts()->get($configuration->getName()); } catch (ClientErrorResponseException $e) { $this->handleNotFoundException($e); return false; } return true; }
/** * @param VhostConfiguration $configuration * @param $queue * @param array $binding */ private function createBinding(VhostConfiguration $configuration, $queue, array $binding) { $configuration->getClient()->bindings()->create($configuration->getName(), $binding['exchange'], $queue, isset($binding['routing_key']) ? $binding['routing_key'] : null); }