Хобрук: Ваш путь к мастерству в программировании

Мягкий слой VSI всего Sotrage

Этот вызов REST отображает список виртуальных машин с ЦП, памятью, хранилищем... как я могу суммировать общий объем хранилища вместо отображения размера отдельного диска?

https://APIID:[email protected]/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask[id,hostname,primaryIpAddress,primaryBackendIpAddress,maxCpu,maxMemory,domain,fullyQualifiedDomainName,createDate,operatingSystem[id,softwareDescription[longDescription]],networkVlans[vlanNumber,primarySubnetId,name],datacenter[name],powerState[keyName],blockDevices[id,mountType,diskImage[capacity]]] 

Спасибо, Бехзад.


Ответы:


1

Этот кусок питона должен работать на вас.

"""
Goes through each virtual guest, prints out the FQDN, each disk and its size
and then the total size for disks on that virtual guest.
"""
import SoftLayer
from pprint import pprint as pp

class example():

    def __init__(self):

        self.client = SoftLayer.Client()

    def main(self):
        mask = "mask[id,fullyQualifiedDomainName,blockDevices[diskImage[type]]]"
        guests = self.client['SoftLayer_Account'].getVirtualGuests(mask=mask)
        for guest in guests:
            self.getSumStorage(guest)

    def getSumStorage(self, guest):
        """
            Gets the total disk space for each virtual guest.
            DOES NOT COUNT SWAP SPACE in this total
        """
        print("%s" % guest['fullyQualifiedDomainName'])
        sumTotal = 0
        for device in guest['blockDevices']:
            try:
                if device['diskImage']['type']['keyName'] == 'SWAP':
                    print("\tSWAP: %s  - %s GB  (not counted)" %(device['device'],device['diskImage']['capacity']) )
                    continue
                else:
                    print("\tDisk: %s  - %s GB" %(device['device'],device['diskImage']['capacity']) )
                    sumTotal = sumTotal + device['diskImage']['capacity']
            except KeyError:
                continue
        print("TOTAL: %s GB" % sumTotal)
        return sumTotal

if __name__ == "__main__":
    main = example()
    main.main()

Выведет что-то вроде этого:

$ python diskSum.py
LAMP1.asdf.com
    Disk: 0  - 25 GB
    SWAP: 1  - 2 GB  (not counted)
TOTAL: 25 GB
LAMP2.asdf.com
    Disk: 0  - 25 GB
    SWAP: 1  - 2 GB  (not counted)
TOTAL: 25 GB
17.05.2017

2

Учтите, что запросы REST используются только для получения данных каждого объекта типа данных. возможность выполнять любые вычисления через REST.

Чтобы получить общее хранилище, я рекомендую вам использовать какой-нибудь язык, например Python, Java, C#, Ruby, Golang и т. д., которые поддерживаются SoftLayer. См. Обзор API Softlayer.

17.05.2017
Новые материалы

Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

AST для разработчиков JavaScript
TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

5 проектов на Python, которые нужно создать прямо сейчас!
Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

«Очень простой» эволюционный подход к обучению с подкреплением
В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

Фишинг — Упаковано и зашифровано
Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..