Als Backbone-Administrator rufen Sie Informationen über Ihren BFC-Server mit der BFC-API ab. Anhand dieser Informationen können Sie die BFC-Konfiguration verstehen, bevor Sie die Umgebung ändern. Zum Beispiel möchten Sie die Konfiguration überprüfen, bevor Sie weitere Grids hinzufügen. Sie erstellen Python-Skripte, die Informationen über die BFC-Umgebung, einschließlich der Produktversion, Server, konfigurierter Netzwerke, verfügbarer Grids und Discovery-Konfiguration, abrufen.
Hinweis: Sie können einen Texteditor verwenden, um die Skripte als GET-Vorgänge zu erstellen. Anschließend können Sie diese Skripte in der BFC-API ausführen.
Folgendes Diagramm zeigt, wie Sie Informationen über den BFC abrufen:

Sie können Informationen zu den Versionsdatensätzen abrufen, die gegenwärtig im BFC verfügbar sind. Die Versionsdatensätze zeigen Informationen, wie z. B. comp_id, esx_version, und Hotfixes an, die Sie installiert haben. Sie können Versionen in "resource_running_state" überprüfen, um CA AppLogic®-Grids zu erstellen.
Führen Sie folgende Schritte aus:
from httplib import HTTPSConnection
import json
import os
import sys
bfcHost = os.environ["BFC_HOST"]
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='POST', url='/BFC/1.1/login',
body='{"username":"user1","password":"MyPassword"}',
headers={'Content-Type':'application/json'})
bfcSession = json.loads(conn.getresponse().read())
print "BFC_SESSION={0}".format(bfcSession)
Die API zeigt Ihre Sitzungs-ID an.
Zum Beispiel erstellen Sie "get_version.py".
from httplib import HTTPSConnection
import json
import os
import sys
bfcHost = os.environ["BFC_HOST"]
bfcSession = os.environ["BFC_SESSION"]
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='GET',
url='/BFC/versions/',
headers={'Content-Type':'application/json',
'Authorization':bfcSession})
r1=conn.getresponse()
server = json.loads(r1.read())
print 'HTTP Response Code: {0}'.format(r1.status)
print json.dumps(server, sort_keys=True, indent=4)
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Versionsdatensätze an:
[{'version': {
'comp_id': 1385,
'imported_esx_version': {
'esx_version': {
'version': '4.0', 'update': '2',
'build': '261974'}},
'name': '3.0.8', 'supported_esx_versions': [{
'esx_version': {
'version': '4.0',
'update': '2', 'build': '261974'}}],
'required_bfc_version': '3.0.0', 'state': 'resource_running_state',
'hotfixes': [{
'hotfix': {
'comp_id': 1412, 'state': 'resource_running_state',
'version_name': '3.0.8', 'name':'lp3561'}}, {
'hotfix': {
'comp_id': 1408, 'state': 'resource_running_state',
'version_name': '3.0.8', 'name':'lp2668'}}, {
'hotfix': {
'comp_id': 1404, 'state': 'resource_running_state',
'version_name': '3.0.8', 'name':'lp1248'}}],
'esx_enabled': True}}]
Zum Beispiel enthält der BFC folgende Hotfixes: lp3561, lp2668 und lp1248.
Sie können Informationen über alle Server im System abrufen, wie z. B. über den Backbone-Server, externe Server und Power-Controller. Zum Beispiel möchten Sie den Servernamen, den Status, die Anzahl der CPU-Kerne und IP-Adressen anzeigen.
Führen Sie folgende Schritte aus:
from httplib import HTTPSConnection
import json
import os
import sys
bfcHost = os.environ["BFC_HOST"]
bfcSession = os.environ["BFC_SESSION"]
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='GET',
url='/BFC/servers',
headers={'Content-Type':'application/json',
'Authorization':bfcSession})
r1 = conn.getresponse()
print 'HTTP Response Code: {0}'.format(r1.status)
servers = json.loads(r1.read())
print json.dumps(servers, sort_keys=True, indent=4)
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Serverdatensätze an:
[{"server":{
"comp_id":1557,
"state":"resource_running_state",
"server_state_info":{
"server_state_info":{
"effective_state":
"resource_running_state",
"category_code_args":[],
"category_code":"core/resources.compute_host.category_compute_host_power",
"category_format":"Compute Host Power Status",
"code":"core/resources.compute_host.compute_host_normal_powered",
"format":"Functioning normally.",
"inventorying":false,
"applogic_server_name":"srv1",
"applogic_server_state":"up",
"applogic_server_enabled":true,
"has_grid_controller":true,"vmware":false}},
"grid_name":"gridtest",
"power_status":"on",
"description":[],
"discovery_date":1344988800000,
"cpu_cores":4,"cpu_speed":3.0,"memory_size":4.0,"disk_count":1,
"total_disk_space":146.81302272,"force_manual_power":false,
"network_interfaces":[{
"network_interface":{
"connectivity":"backbone",
"ip_address":"192.168.0.x",
"is_boot":true,
"mac_address":"00:01:02:03:04:05",
"name":"eth0","speed":1000}},{
"network_interface":{
"connectivity":"external",
"ip_address":"10.10.x.x",
"is_boot":false,
"mac_address":"00:01:02:03:AA:BB",
"name":"eth1",
"speed":1000}}],
"disks": [{
"disk":{
"name":"/dev/sda",
"size":146.81302272}}],
"power_controllers":[{
"power_controller":{
"comp_id":1574,
"ip_address":"10.10.x.x",
"mac_address":"00:01:02:03:CC:DD",
"type":"controlled",
"username":"PowerAdmin__BFC",
"password":"*****",
"credential_set_time":134580.189,
"power_status":"on"}
}],
"tags":["Blue","Green"]}}]%
Zum Beispiel hat "eth1" die MAC-Adresse "00:01:02:03:AA:BB".
Sie können Informationen über alle konfigurierten Netzwerke im System abrufen. Zum Beispiel möchten Sie die Adressbereiche, die verfügbaren IP-Adressbereiche, die Gateway-Adressen und den Typ anzeigen.
Führen Sie folgende Schritte aus:
from httplib import HTTPSConnection
import json
import os
import sys
bfcHost = os.environ["BFC_HOST"]
bfcSession = os.environ["BFC_SESSION"]
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='GET',
url='/BFC/networks',
headers={'Content-Type':'application/json',
'Authorization':bfcSession})
r1 = conn.getresponse()
print 'HTTP Response Code: {0}'.format(r1.status)
servers = json.loads(r1.read())
print json.dumps(servers, sort_keys=True, indent=4)
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Netzwerkdatensätze an:
[{"network": {
"address_space": {
"ip_space": {
"address_pools": [
{"ip_pool": {
"available_ranges": [
{"ip_range": {
"end_address": "10.10.x.x",
"size": 10,
"start_address": "10.10.x.x"}}],
"num_addresses": 11,
"num_available": 10,
"num_used": 1,
"ranges": [
{"ip_range": {
"end_address": "10.10.x.x",
"size": 11,
"start_address": "10.10.x.x"}}],
"type": "hardware",
"used_ranges": [
{"ip_range": {
"end_address": "10.10.x.x",
"size": 1,
"start_address": "10.10.x.x"}}]}},
{"ip_pool": {
"available_ranges": [],
"num_addresses": 4,
"num_available": 0,
"num_used": 4,
"ranges": [
{"ip_range": {
"end_address": "10.10.x.x",
"size": 4,
"start_address": "10.10.x.x"}}],
"type": "application",
"used_ranges": [
{"ip_range": {
"end_address": "10.10.x.x",
"size": 4,
"start_address": "10.10.x.x"}}]}}],
"available_ranges": [[
{"ip_range": {
"end_address": "10.10.x.x",
"size": 137,
"start_address": "10.10.x.x"}},{
"ip_range": {
"end_address": "10.10.x.x",
"size": 101,
"start_address": "10.10.x.x"}}],238]}},
"base_address": "10.10.x.x",
"cidr": 24,
"comp_id": 1450,
"gateway_addresses": [
"10.10.75.1"],
"ip_version": "ipv4",
"usages": [
"bbc/applogic_external_network"],
"vlan_address_spaces": []}},{
"network": {
"address_space": {
"ip_space": {
"address_pools": [{
"ip_pool": {
"available_ranges": [],
"num_addresses": 1,
"num_available": 0,
"num_used": 1,
"ranges": [{
"ip_range": {
"end_address": "10.10.x.x",
"size": 1,
"start_address": "10.10.x.x"}}],
"type": "power",
"used_ranges": [
{"ip_range": {
"end_address": "10.10.x.xx",
"size": 1,
"start_address": "10.10.x.x"}}]}}],
"available_ranges": [[{
"ip_range": {
"end_address": "10.10.x.x",
"size": 242,
"start_address": "10.10.x.x"}},{
"ip_range": {
"end_address": "10.10.x.x",
"size": 10,
"start_address": "10.10.x.x"}}],252]}},
"base_address": "10.10.x.x",
"cidr": 24,
"comp_id": 1414,
"gateway_addresses": [
"10.10.x.x"],
"ip_version": "ipv4",
"usages": [
"core/power_network"],
"vlan_address_spaces": []}},{
"network": {
"address_space": {
"ip_space": {
"address_pools": [
{"ip_pool": {
"available_ranges": [],
"num_addresses": 1,
"num_available": 0,
"num_used": 1,
"ranges": [
{"ip_range": {
"end_address": "192.168.x.x",
"size": 1,
"start_address": "192.168.x.x"}}],
"type": "hardware",
"used_ranges": [
{"ip_range": {
"end_address": "192.168.x.x",
"size": 1,
"start_address": "192.168.x.x"}}]}}],
"available_ranges": [ [
{"ip_range": {
"end_address": "192.168.x.x",
"size": 11,
"start_address": "192.168.x.x"}},
"ip_range": {
"end_address": "192.168.x.x",
"size": 242,
"start_address": "192.168.x.x"}}],253]}},
"base_address": "192.168.x.x",
"cidr": 24,
"comp_id": 1367,
"gateway_addresses": [],
"ip_version": "ipv4",
"usages": [
"bbc/applogic_backbone_network"],
"vlan_address_spaces": []}}]
Zum Beispiel ist die Basisadresse des Backbone-Netzwerks 192.168.x.x.
Sie können Informationen über Grids im System abrufen. Zum Beispiel möchten Sie comp_id, Grid-Konfigurationen, Grid-IP-Bereiche und Grid-Beschreibungen anzeigen.
Führen Sie folgende Schritte aus:
session = get_session()
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='GET',
url='/BFC/grids',
headers={'Content-Type':'application/json',
'Authorization':session})
grids = json.loads(conn.getresponse().read())
print grids
Die API zeigt den HTTP-Rückgabecode 200 und eine Liste der Grid-Datensätze an:
{"grid":{
"comp_id":1234,"id":2,"name":"SimpleGrid2",
"description":"SimpleGrid2 description",
"state":"resource_allocated_state",
"applogic_version":"3.1.2",
"applogic_hotfixes":null,
"enable_language_packs":false,
"xen_config":{
"grid_server_configuration":{
"min":2,"target":2,"max":2,
"selection_criteria":null}},
"esx_config":{
"grid_server_configuration":{
"min":2,"target":2,"max":2,
"selection_criteria":null}},
"servers":[],"external_network":"127.x.x.0/24",
"app_ips":[{
"grid_ip_range":{
subnet_id:2345,vlan:10,
public_private:"public",
ip_low:"127.x.x.2",
ip_high:"127.x.x.11"}],
"app_ip_count":10,
"controller_ip":"127.10.10.1","default_vlan":1,
"account_id":null,"account_key":null, "oem_kit":null,
"vmware_license_key":"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
"global_user_dir":null,
"grid_controller_name":null,
"grid_controller_user":null,
"grid_controller_password":null,
"recovery_password":null,"additional_config":null}},
{"grid":{
"comp_id":5678,"id":1,"name":"SimpleGrid1",
"description":"SimpleGrid1 description",
"state":"resource_allocated_state",
"applogic_version":"3.1.1",
"applogic_hotfixes":null,
"enable_language_packs":false,
"xen_config":{
"grid_server_configuration":{
"min":2,"target":2,"max":2,
"selection_criteria":null}},
"esx_config":{"
grid_server_configuration":{
"min":0,"target":0,"max":0,
"selection_criteria":null}},
"servers":[],"external_network":"127.x.x.0/24",
"app_ips":[{"grid_ip_range":{
subnet_id:1245,vlan:null,
public_private:"public",
ip_low:"127.x.x.13",ip_high:"127.x.x.22"}],
"app_ip_count":10,
"controller_ip":"127.x.x.12","default_vlan":1,
"account_id":null,"account_key":null, "oem_kit":null,
"vmware_license_key":"XXXXX-XXXXX-XXXXX-XXXXX-XXXXX",
"global_user_dir":null,
"grid_controller_name":null,
"grid_controller_user":null,
"grid_controller_password":null,
"recovery_password":null,
"additional_config":null,
"external_storage":null}}]}
Zum Beispiel hat "SimpleGrid1" die controller_IP "127.x.x.12".
Sie können Informationen über Ihre Discovery-Konfiguration abrufen. Zum Beispiel möchten Sie den Discovery-Modus eines Servers anzeigen.
Führen Sie folgende Schritte aus:
Zum Beispiel erstellen Sie "get_discovery.py".
from httplib import HTTPSConnection
import json
import os
import sys
bfcHost = os.environ["BFC_HOST"]
bfcSession = os.environ["BFC_SESSION"]
conn = HTTPSConnection(bfcHost + ':8443')
conn.connect()
conn.request(method='GET',
url='/BFC/admin/discovery',
headers={'Content-Type':'application/json',
'Authorization':bfcSession})
r1 = conn.getresponse()
print 'HTTP Response Code: {0}'.format(r1.status)
servers = json.loads(r1.read())
print json.dumps(servers, sort_keys=True, indent=4)
print grids
Die API zeigt den HTTP-Rückgabecode 200 und die Discovery-Konfiguration an:
{"discovery":{
"enabled":"true', "mode":"manual", "mac_addresses":00:01:02:03:04:05, "default_tags":"gold"}}
Zum Beispiel ist auf dem Server mit der MAC-Adresse "00:01:02:03:04:05" manuelle Discovery aktiviert.
Sie haben die Informationen über Ihre BFC-Umgebung erfolgreich abgerufen und können Ihre Planungs- oder Wartungsaufgaben ausführen.
|
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|