لقد تم تكليفك بتنفيذ وظيفة `GetGatewaysForClusters` في نظام إدارة المجموعة. تأخذ هذه الوظيفة ثلاثة معلمات: السياق، وعنوان DNS للبوابة، وقائمة المجموعات. الوظيفة مسؤولة عن استرداد البوابات المرتبطة بالمجموعات من خدمة خارجية.

يتم استدعاء الدالة `GetGatewaysForClusters` باستخدام المعلمات المتوفرة في مقتطف التعليمات البرمجية المحدد. بعد استدعاء الدالة، يتم تعيين توقع للتأكد من أن طول البوابات المرتجعة يبلغ 0.

مهمتك هي تنفيذ وظيفة `GetGatewaysForClusters` بطريقة تسترد بوابات المجموعات بشكل صحيح وتعيدها.

توقيع الوظيفة والهياكل المتاحة هي كما يلي:

```اذهب
func GetGatewaysForClusters(ctx context.Context, dns string,clusters []Cluster) []Gateway {
// التنفيذ هنا
}

اكتب بنية الكتلة {
سلسلة الاسم
معرف كثافة العمليات
العقد []العقدة
}

اكتب بنية البوابة {
معرف كثافة العمليات
سلسلة IP
ميناء كثافة العمليات
}

اكتب بنية العقدة {
معرف كثافة العمليات
سلسلة IP
ميناء كثافة العمليات
}
```

تحتاج إلى تنفيذ وظيفة `GetGatewaysForClusters` لتحقيق المتطلبات التالية:
- اتصل بالخدمة الخارجية باستخدام عنوان DNS للبوابة المتوفرة وقائمة المجموعات.
- استرجاع البوابات المرتبطة بالمجموعات من الخدمة الخارجية.
- إرجاع قائمة البوابات المستردة.

ملحوظة:
- توفر الخدمة الخارجية البوابات المرتبطة بكل مجموعة بناءً على معرفاتها.
- يمثل عنوان DNS للبوابة نقطة النهاية لواجهة برمجة تطبيقات الخدمة الخارجية.
{"evolved_from": null, "kind": "synthetic", "source": "argilla/DistiCoder-dpo-binarized"}