XenServer Java API: как получить IP-адрес управления Xenserver

Любая помощь/вклад/предложения, которые вы можете дать, очень ценятся.

У нас есть XenServer 6.0.2 с несколькими настроенными IP-адресами, но есть только 1 адрес управления.

У нас есть код Java, который использует привязки Xenserver JAVA API для запроса Xenserver. Мы использовали приведенный ниже код для получения IP-адреса управления всех серверов xenserver в пуле.

           Map<Host, Host.Record> hypervisors = Host.getAllRecords(getConnection());

    for (Host.Record hypRecord : hypervisors.values()) {
        String mgmtIP = hypRecord.address;
                      .........
                      .........
            }

Этот код работал в нашей лаборатории, но тестирование на партнерском сайте выявило проблему с этим кодом. Возвращаемый IP-адрес отличается от IP-адреса управления? Например, на партнерском сайте у xenserver было настроено 3 IP-адреса на коробке. Назовем его ip1, ip2 и ip3. Мы использовали ip1 для отправки запроса xen api и для входа в систему, и это сработало нормально. Но значение переменной «mgmtIP», возвращаемое в приведенном выше коде, равно ip2. Это заставляет меня думать: а. Может ли быть более одного IP-адреса управления для одного xenserver? б. Не будет ли строка "String mgmtIP = hypRecord.address;" в приведенном выше коде вернуть управление IP? б. Разве запрос xen api не должен всегда отправляться на IP-адрес управления (мастера, если он в пуле)? в. Каков наилучший способ получить IP-адрес управления xenserver? Поскольку мы находимся на 6.0.2, метод: public PIF getManagementIface(Connection c) на хосте класса

Спасибо.


person GJ13    schedule 16.08.2013    source источник


Ответы (1)


используя хэ:

user@host ~# IFS=,; for uuid in $(xe pif-list management=true --minimal); do echo -n   "$uuid -> "; xe pif-param-get param-name=IP uuid=$uuid; done
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x
12334567-1234-1234-1234-123456787890 -> x.x.x.x

используя API, вы будете запрашивать ту же логику http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=PIF Для pif на хосте: верно ли управление pif? Получить IP

Еще одна хитрость, которая может быть вам полезна:

user@host ~# xe host-param-get uuid=12334567-1234-1234-1234-123456787890 param-name=address
x.x.x.x

http://docs.vmd.citrix.com/XenServer/6.0.0/1.0/en_gb/api/?c=host

person rouphian    schedule 04.01.2014