作为主干管理员,您需要使用 BFC API 检索 BFC 服务器的相关信息。 在修改环境之前,此信息可帮助您了解 BFC 配置。 例如,需要先查看配置,然后再添加更多的网格。 可以创建用于检索 BFC 环境相关信息的 Python 脚本,其中包括产品版本、服务器、配置的网络、可用的网格和发现配置。
注意:您可以使用文本编辑器将脚本创建为 GET 操作,然后在 BFC API 中执行这些脚本。
下图显示了检索 BFC 相关信息的方式:

可以在 BFC 中检索当前可用的版本记录集的相关信息。 版本记录指示信息(如 comp_id、esx_version)和安装的即时修正。 可以查看处于 resource_running_state 状态的版本以创建 CA AppLogic® 网格。
完成以下步骤:
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)
API 会显示您的会话 ID。
例如,创建 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)
API 显示 HTTP 返回代码 200 和版本记录列表:
[{'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}}]
例如,BFC 包含 lp3561、lp2668 和 lp1248 即时修正。
您可以检索系统中所有服务器的相关信息,如主干服务器、外部服务器和电源控制器。 例如,需要查看服务器名称、状态、CPU 核心数和 IP 地址。
完成以下步骤:
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)
API 显示 HTTP 返回代码 200 和服务器记录列表:
[{"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"]}}]%
例如,eth1 具有 MAC 地址 00:01:02:03:AA:BB。
您可以检索系统中所有配置的网络的相关信息。 例如,需要查看地址空间、可用的 IP 地址范围、网关地址以及类型。
完成以下步骤:
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)
API 显示 HTTP 返回代码 200 和网络记录列表:
[{"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": []}}]
例如,主干网的基本地址为 192.168.x.x。
您可以检索系统中网格的相关信息。 例如,需要查看 comp_id、网格配置、网格 IP 范围和网格说明。
完成以下步骤:
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
API 显示 HTTP 返回代码 200 和网格记录列表:
{"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}}]}
例如,SimpleGrid1 的 controller_IP 为 127.x.x.12。
您可以检索发现配置的相关信息。 例如,需要查看服务器的发现模式。
完成以下步骤:
例如,创建 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
API 显示 HTTP 返回代码 200 和发现配置:
{"discovery":{
"enabled":"true', "mode":"manual", "mac_addresses":00:01:02:03:04:05, "default_tags":"gold"}}
例如,具有 00:01:02:03:04:05 MAC 地址的服务器已启用手工发现。
已成功检索 BFC 环境的相关信息,并可以执行规划或维护任务。
|
版权所有 © 2013 CA。
保留所有权利。
|
|