[PYTHON] Enregistrer les citations Bluemix IaaS (anciennement SoftLayer) au format PDF via l'API

Contenu

J'ai essayé de sauvegarder l'enregistrement qui existe déjà sous forme d'estimation sur le portail au format PDF via API.

supposition

Il est supposé que vous comprenez les articles suivants. En savoir plus sur l'API Bluemix Infrastructure (anciennement SoftLayer).

ShinobiLayer: API SoftLayer Étape suivante: objet de type de données (1) --Qiita

Obtenez QuoteId

J'ai créé un script pour obtenir l'ID de l'estimation, veuillez donc l'utiliser.

scénario

getQuotes.py


#import package
import SoftLayer
import json
from prettytable import PrettyTable

# account info
client = SoftLayer.create_client_from_env()

objectmask = """
    id,
    name,
    status,
    createDate,
    expirationDate,
    order[
        id,
        orderTotalAmount
    ]
"""

# getActiveQuotes
gAQ = client['Account'].getActiveQuotes(mask=objectmask)

# define table
table = PrettyTable([
    'QuoteID',
    'Name',
    'Amount',
    'Status',
    'createDate',
    'expirationDate'
])


for key in range(len(gAQ)):
        table.add_row([
            gAQ[key]['id'],
            gAQ[key]['name'],
            gAQ[key]['order'].get('orderTotalAmount',""),
            gAQ[key]['status'],
            gAQ[key]['createDate'],
            gAQ[key]['expirationDate']
        ])

print len(gAQ)
print table.get_string(sortby="QuoteID")

Exemple de résultat d'exécution

#Commande d'exécution
python getQuotes.py 

#résultat
5
+---------+-------------+---------+---------+---------------------------+---------------------------+
| QuoteID |     Name    |  Amount |  Status |         createDate        |       expirationDate      |
+---------+-------------+---------+---------+---------------------------+---------------------------+
| 1111111 | BMS_28Cores | 1402.31 | PENDING | 2016-11-16T10:51:51+09:00 | 2017-02-14T10:51:51+09:00 |
...

Enregistrer au format PDF

J'ai créé un script qui peut être enregistré au format PDF en spécifiant QuoteId, veuillez donc l'utiliser.

scénario

getPdf.py


# beginning message
print 'Saving the quote as PDF ...'

# import
import SoftLayer
import sys
parm=sys.argv
quoteId=parm[1]

# account info
client = SoftLayer.create_client_from_env()

# getPdf as a binary data
getPdf = client['Billing_Order_Quote'].getPdf(id=quoteId)

# confirm as xmlrpclib.Binary
# print getPdf.__class__

# Save as a PDF
quoteFileName = "Quote_ID_%s.pdf" % quoteId
w = open(quoteFileName, "wb")
w.write(getPdf.data)
w.close()

# finishing message
print 'Completed!'

Exemple de résultat d'exécution

#Commande d'exécution
python getPdf.py 1111111

#résultat
Saving the quote as PDF ...
Completed!

#「Quote_ID_1111111.Il sera enregistré en tant que "pdf"

Site référencé

Recommended Posts

Enregistrer les citations Bluemix IaaS (anciennement SoftLayer) au format PDF via l'API
Estimer le VSI pour Bluemix IaaS (anciennement SoftLayer) via l'API
Points à considérer lors de l'utilisation de l'API de SoftLayer à partir d'une application sur Bluemix