Ich implementiere die Detailinformationen für automatische Skalierung mit Java API. Wie kann ich detaillierte Informationen zur Mitgliederkonfiguration erhalten? Bitte beachten Sie die Felder im roten Kasten im angehängten Bild. Ich könnte eine detaillierte Information bekommen. Zum Beispiel könnte ich den Betriebsreferenzcode erhalten, der CENTOS_6_64 ist, aber wie kann ich die lange Art der Beschreibung wie CentOS 6.x - minimale Installation (64bit) bekommen. Detailinformationen für Auto Scale in SL
Antwort
Versuch mit dieser Objektmaske
mask[id, name, status[name, keyName], regionalGroup[id, name, description], suspendedFlag, terminationPolicy, cooldown, regionalGroupId, minimumMemberCount, maximumMemberCount, balancedTerminationFlag, networkVlans[ id, networkVlan[ id, name, vlanNumber, networkSpace, primaryRouter[id,hostname,datacenter[name,longName]],localDiskStorageCapabilityFlag,sanStorageCapabilityFlag]],virtualGuestMemberTemplate[hostname,domain,fullyQualifiedDomainName,startCpus,maxMemory,hourlyBillingFlag,localDiskFlag,operatingSystem,datacenter,privateNetworkOnlyFlag,networkComponents.maxSpeed,sshKeys,operatingSystemReferenceCode,blockDevices[device,diskImage.capacity],blockDeviceTemplateGroup.globalIdentifier,postInstallScriptUri],policies[id,cooldown,name,scaleActions[id,type[id,keyName,name],amount,scaleType],triggers[id,type],triggers(SoftLayer_Scale_Policy_Trigger_OneTime)[date],triggers(SoftLayer_Scale_Policy_Trigger_Repeating)[schedule],triggers(SoftLayer_Scale_Policy_Trigger_ResourceUse)[watches[id,algorithm,metric,operator,period,value]]],loadBalancers[id,port,healthCheck[id,attributes[value,type.keyname],type[id,keyname,name]],virtualServer[id,port,virtualIpAddress.ipAddress.ipAddress,virtualIpAddress.id,serviceGroups.routingType.name]],virtualGuestMemberCount]
hier ein Beispiel mit Python:
"""
Get the scale group details (configuration).
Important manual pages:
http://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group
http://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/getObject
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Scale_Group
License: http://sldn.softlayer.com/article/License
Author: SoftLayer Technologies, Inc. <[email protected]>
"""
import SoftLayer
import json
USERNAME = 'set me'
API_KEY = 'set me'
scaleGroupId = 595465
# Create a SoftLayer API client object
client = SoftLayer.Client(username=USERNAME, api_key=API_KEY)
scaleGroupService = client['SoftLayer_Scale_Group']
objectMask = "mask[id, name, status[name, keyName], regionalGroup[id, name, description], suspendedFlag, terminationPolicy, cooldown, regionalGroupId, minimumMemberCount, maximumMemberCount, balancedTerminationFlag, networkVlans[ id, networkVlan[ id, name, vlanNumber, networkSpace, primaryRouter[id,hostname,datacenter[name,longName]],localDiskStorageCapabilityFlag,sanStorageCapabilityFlag]],virtualGuestMemberTemplate[hostname,domain,fullyQualifiedDomainName,startCpus,maxMemory,hourlyBillingFlag,localDiskFlag,operatingSystem,datacenter,privateNetworkOnlyFlag,networkComponents.maxSpeed,sshKeys,operatingSystemReferenceCode,blockDevices[device,diskImage.capacity],blockDeviceTemplateGroup.globalIdentifier,postInstallScriptUri],policies[id,cooldown,name,scaleActions[id,type[id,keyName,name],amount,scaleType],triggers[id,type],triggers(SoftLayer_Scale_Policy_Trigger_OneTime)[date],triggers(SoftLayer_Scale_Policy_Trigger_Repeating)[schedule],triggers(SoftLayer_Scale_Policy_Trigger_ResourceUse)[watches[id,algorithm,metric,operator,period,value]]],loadBalancers[id,port,healthCheck[id,attributes[value,type.keyname],type[id,keyname,name]],virtualServer[id,port,virtualIpAddress.ipAddress.ipAddress,virtualIpAddress.id,serviceGroups.routingType.name]],virtualGuestMemberCount]"
try:
scaleGroup = scaleGroupService.getObject(id=scaleGroupId, mask=objectMask)
config = {}
config['groupDetails'] = {}
config['groupDetails']['groupName'] = scaleGroup['name']
config['groupDetails']['region'] = scaleGroup['regionalGroup']['name']
config['groupDetails']['datacenter'] = scaleGroup['regionalGroup']['name']
config['groupDetails']['terminationPolicy'] = scaleGroup['terminationPolicy']['name']
config['groupSettings'] = {}
config['groupSettings']['minimumMemberCount'] = scaleGroup['minimumMemberCount']
config['groupSettings']['maximumMemberCount'] = scaleGroup['maximumMemberCount']
config['groupSettings']['cooldown'] = str(scaleGroup['cooldown']/60) + " Minutes"
config['memberDetails'] = {}
config['memberDetails']['hostname'] = scaleGroup['virtualGuestMemberTemplate']['hostname']
config['memberDetails']['domain'] = scaleGroup['virtualGuestMemberTemplate']['domain']
config['computingInstance'] = {}
config['computingInstance']['cores'] = str(scaleGroup['virtualGuestMemberTemplate']['startCpus']) + "x 2.0 GHz Core"
config['computingInstance']['ram'] = str(scaleGroup['virtualGuestMemberTemplate']['maxMemory']/1024) + "GB"
if 'networkComponents' in scaleGroup['virtualGuestMemberTemplate']:
config['computingInstance']['speed'] = scaleGroup['virtualGuestMemberTemplate']['networkComponents'][0]['maxSpeed']
else:
config['computingInstance']['speed'] = "Default"
if 'sshKeys' in scaleGroup['virtualGuestMemberTemplate']:
config['computingInstance']['sshKeys'] = scaleGroup['virtualGuestMemberTemplate']['sshKeys']
else:
config['computingInstance']['sshKeys'] = 'None'
config['storage'] = {}
if scaleGroup['virtualGuestMemberTemplate']['localDiskFlag']:
config['storage']['selectedStorage'] = 'Local Storage'
else:
config['storage']['selectedStorage'] = 'SAN Storage'
config['operatingSystem'] = {}
config['operatingSystem']['selectedOperatingSystem'] = scaleGroup['virtualGuestMemberTemplate']['operatingSystemReferenceCode']
config['postInstallScript'] = {}
config['postInstallScript']['url'] = scaleGroup['virtualGuestMemberTemplate']['postInstallScriptUri']
config['policies'] = scaleGroup['policies']
print(json.dumps(config, sort_keys=True, indent=2, separators=(',', ': ')))
except SoftLayer.SoftLayerAPIError as e:
print("Unable to get the scale group details. faultCode=%s, faultString=%s" % (e.faultCode, e.faultString))
Aber wenn Sie versuchen, die gleichen Informationen wie das Portal zu kopieren, werden Sie wirklich haben Spaß :).
In Bezug auf das Betriebssystem, dass Informationen nicht über den SoftLayer_Scale_Group-Dienst abgerufen werden können, müssen Sie die SoftLayer_Virtual_Guest :: getCreateObjectOptions-Methode verwenden. Wenn Sie das Ergebnis des Verfahrens sehen Sie das sehen:
{
"itemPrice": {
"hourlyRecurringFee": "0",
"recurringFee": "0",
"item": {
"description": "CentOS 6.x - Minimal Install (64 bit)"
}
},
"template": {
"id": null,
"operatingSystemReferenceCode": "CENTOS_6_64"
}
}
Wie Sie das Ergebnis sehen die „operatingSystemReferenceCode“ enthält und die Beschreibung, die Sie wollen, so müssen nur die Aufzeichnung sehen, die mit übereinstimmen der Wert "operatingSystemReferenceCode", den Sie mit der SoftLayer_Scale_Group :: getObject-Methode erhalten haben.
In Bezug auf das Netzwerk privat oder öffentlich, hier können Sie nur die Szenarien haben: 1.- öffentlich und privat wurde festgelegt. 2.- Nur privat wurde festgelegt.
bestimmten, dass Sie die „privateNetworkOnlyFlag“ Eigenschaft überprüfen: 1.-, wenn die Eigenschaft wahr ist, das Netzwerk 2.-, wenn die Eigenschaft privat ist so nicht festgelegt wurde (der Standardwert ist false) Das Netzwerk ist öffentlich und privat.
Um die gleiche Beschreibung wie das Portal die Methode SoftLayer_Virtual_Guest :: getCreateObjectOptions verwenden müssen, um zu bekommen, ist dies das Ergebnis, das Sie bekam:
"networkComponents": [
{
"itemPrice": {
"hourlyRecurringFee": "0",
"recurringFee": "0",
"item": {
"description": "10 Mbps Public & Private Network Uplinks"
}
},
"template": {
"id": null,
"networkComponents": [
{
"maxSpeed": 10
}
],
"privateNetworkOnlyFlag": false
}
}
Wie Sie die Idee ist die gleiche sehen wie mit dem Betriebssystem.
Und betrachten Sie das Datencenter "First Available", ich denke, wenn Sie die SoftLayer_Scale_Group :: getObject aufrufen Ich denke, dass die virtualGuestMemberTemplate.datacenter -Eigenschaft leer ist oder nicht existiert, wenn Sie sehen, dass Sie den Wert anzeigen können als " Zuerst verfügbar ".
Grüße
Dies ist der Code-Tests ein Netzwerk Flagge zu erhalten. Das Flag gibt "true" zurück, aber das Portal sagt "Public & Private Network".
private void getPrivateNetwork() {
Group.Service groupSrv = Group.service(client, 1046365L);
groupSrv.withMask().virtualGuestMemberTemplate().privateNetworkOnlyFlag();
Group result = groupSrv.getObject();
System.out.println(
"private Network flag : " + result.getVirtualGuestMemberTemplate().getPrivateNetworkOnlyFlag());
}
- 1. AutoScale-Implementierung in SL
- 2. Wie wird die Auto Scale UP/DOWN?
- 3. Auto Position und Scale Embed iFrame
- 4. Passwort Update in SL
- 5. Skalierungsobjekt in SL bearbeiten
- 6. Detailinformationen zum POI-Punkt in MKMapview
- 7. Linear Scale vs Log Scale
- 8. Statische IP-Option in SL
- 9. Bare Metal cancel in SL
- 10. Implementierung von Nimsoft in SL
- 11. Programm für HID USB Scale
- 12. Scale Controls in TableLayoutPanel
- 13. log scale Boxplots in R
- 14. undefined d3.scale in Typescript
- 15. scale image in drupal 7
- 16. Odoo High Scale Bereitstellung
- 17. Scale & Translate Animation
- 18. Tkinter Scale Widget Status
- 19. css scale image
- 20. Scale fabric.js leinwand objekte
- 21. Large-scale pseudoinverse
- 22. Safari Download ältere Version von Silverlight (Getting SL 4 statt SL 5)
- 23. Sharepoint 2010 und Silverlight Webpart SL Version
- 24. Scale Entire Site
- 25. iOS 6 AutoLayout Scale und Translate Animation
- 26. Kinect Joint Scale
- 27. D3 Scale SVG Kinder
- 28. SL 4 - Neuzeichnen des visuellen Baums erzwingen
- 29. AS3 - Scale BitmapData-
Im Falle von Geschwindigkeit gibt es Private Network Uplinks und Public & Private Network Uplinks. Mit welcher Flagge kann ich dieses Netzwerk unterscheiden? –
Im Betriebssystem gibt die API nur OS_Reference_Code zurück. Wie kann ich vollen Namen von OS wie CentOS 6.x Minimal installieren (64bit) haben. Die API für das Datencenter wird wie oben beschrieben verwendet, aber Controll.com gibt "First Available" für das Datencenter zurück. Was bedeutet "First Available"? –
Ich habe meine Antwort aktualisiert –