[PYTHON] Speichern Sie Bluemix IaaS-Angebote (ehemals SoftLayer) über die API als PDF

Inhalt

Ich habe versucht, den bereits als Schätzung im Portal vorhandenen Datensatz als PDF über die API zu speichern.

Annahme

Es wird davon ausgegangen, dass Sie die folgenden Artikel verstehen. Erfahren Sie mehr über die Bluemix Infrastructure-API (ehemals SoftLayer).

ShinobiLayer: SoftLayer-API Nächster Schritt: Datentyp Objekt (1) --Qiita

Holen Sie sich QuoteId

Ich habe ein Skript erstellt, um die ID des Kostenvoranschlags zu erhalten. Verwenden Sie es daher.

Skript

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")

Beispiel für das Ausführungsergebnis

#Ausführungsbefehl
python getQuotes.py 

#Ergebnis
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 |
...

Als PDF speichern

Ich habe ein Skript erstellt, das durch Angabe von QuoteId als PDF gespeichert werden kann. Verwenden Sie es daher.

Skript

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!'

Beispiel für das Ausführungsergebnis

#Ausführungsbefehl
python getPdf.py 1111111

#Ergebnis
Saving the quote as PDF ...
Completed!

#「Quote_ID_1111111.Es wird als "pdf" gespeichert

Referenzierte Site

Recommended Posts

Speichern Sie Bluemix IaaS-Angebote (ehemals SoftLayer) über die API als PDF
Schätzen Sie den VSI für Bluemix IaaS (ehemals SoftLayer) über die API
Zu berücksichtigende Punkte, wenn Sie die SoftLayer-API über eine App auf Bluemix aufrufen