cobbler api接口开发测试实例

条件1:必须搭建好cobbler服务,并且可以通过web访问:http://cobbler_ip/cobbler_web 测试可以打开。然后再用以下命令测试。

  1 #!/opt/python3/bin/python3
  2 #Author: zhaoyong
  3 
  4 import xmlrpc.client,time
  5 
  6 if __name__ == '__main__':
  7     time_str = time.time()
  8     server = 'http://cobbler_ip/cobbler_api'
  9     user = 'cobbler'
 10     passwd = '账号密码'
 11 
 12     try:
 13         remote_server = xmlrpc.client.Server(server)
 14         tokin = remote_server.login(user, passwd)
 15     except Exception as e:
 16         exit('URL:%s no access' % server)
 17 
 18     # print(remote_server.ping())  # cobbler服务器状态监测
 19     # print(remote_server.get_user_from_token(tokin))  # 返回cobbler系统登录账号
 20     # print(remote_server.get_item('distro','Centos6.9-x86_64')) # 获取指定发布版本的信息
 21     # print('-------------------------')
 22     # print(remote_server.get_distro('Centos6.9-x86_64'))  #返回distro指定名称的详细信息
 23     # print('-------------------------')
 24     # print(remote_server.get_profile('CT6.8_PHY_db_high'))  # 返回profile 指定名称的详细信息
 25     # print('-------------------------')
 26     # print(remote_server.get_distros())   # 返回所有distro 的已有内容
 27     # print('-------------------------')
 28     # print(remote_server.get_profiles())  # 返回所有profiles的已有内容
 29     # print('-------------------------')
 30     # print(remote_server.find_system())  # 以列表返回所有的 system 名称
 31     # print('-------------------------')
 32     # print(remote_server.find_distro())  # 以列表返回所有的distro名称
 33     # print('-------------------------')
 34     # print(remote_server.find_profile())  # 以列表返回所有profile的名称
 35     # print('-------------------------')
 36     # print(remote_server.has_item('distro','Centos6.9-x86_64'))  # 检测指定distro中指定的名称是否存在
 37     # print('-------------------------')
 38     # print(remote_server.get_distro_handle('Centos6.9-x86_64',tokin))  # 没啥用
 39     # print(remote_server.remove_profile('test111',tokin))  # 删除指定的profile
 40     # print('-------------------------')
 41     # print(remote_server.remove_system('hostname121',tokin)) # 删除指定的system
 42     # print('-------------------------')
 43     # prof_id = remote_server.new_profile(tokin)  # 创建一个新的profile 并保存
 44     # print('profile new id:%s' % prof_id)
 45     # print('-------------------------')
 46     # remote_server.modify_profile(prof_id,'name','vm_test1',tokin) # 修改prof_id指定的profile 名称
 47     # remote_server.modify_profile(prof_id,'distro','centos6.8-x86_64',tokin)  # 也是修改prof_id的信息
 48     # remote_server.modify_profile(prof_id,'kickstart','/var/lib/cobbler/kickstarts/txt111',tokin)
 49     # remote_server.save_profile(prof_id,tokin) # 保存
 50     # remote_server.sync(tokin) # 同步cobbler修改后的信息,这个做任何操作后,都要必须有
 51     # print('-------------------------')
 52     # print(remote_server.get_kickstart_templates())  # 获取所有KS模板文件路径
 53     print('-------------------------')
 54     print(remote_server.get_snippets())  # 获取所有snippets文件路径
 55     # print('-------------------------')
 56     # print(remote_server.is_kickstart_in_use('/var/lib/cobbler/kickstarts/CT6.8_PHY_db_middle.ks')) # 判断ks文件是否在使用
 57     # print('-------------------------')
 58     # print(remote_server.generate_kickstart('CT6.8_PHY_web_high')) # 打印profile对应的ks文件内存
 59     # print('-------------------------')
 60     # print(remote_server.generate_kickstart('vm_test1','t1'))# 打印profile对应的ks文件内存
 61     # print('-------------------------')
 62     # print(remote_server.generate_gpxe('vm_test1')) # 启动方面的,没用
 63     # print('-------------------------')
 64     # print(remote_server.generate_bootcfg('vm_test1'))
 65     # print('-------------------------')
 66     # print(remote_server.get_blended_data('vm_test1')) # 获取profile 的详细信息
 67     # print('-------------------------')
 68     # print(remote_server.get_settings())  # 没啥用
 69     # print('-------------------------')
 70     # print(remote_server.get_signatures())  # 不知道输出的是啥
 71     # print('-------------------------')
 72     # print(remote_server.get_valid_breeds())  # 获取的是各个操作系统的类型,
 73     #输出: ['debian', 'freebsd', 'generic', 'nexenta', 'redhat', 'suse', 'ubuntu', 'unix', 'vmware', 'windows', 'xen']
 74     # print('-------------------------')
 75     # print(remote_server.get_valid_os_versions())  # 没啥用
 76     # print('-------------------------')
 77     # print(remote_server.get_repo_config_for_profile('vm_test1'))
 78     # print('-------------------------')
 79     # print(remote_server.get_repo_config_for_system('t1'))
 80     # print('-------------------------')
 81     # print(remote_server.version())  # 返回cobbler版本,没啥用
 82     # print('-------------------------')
 83     # print(remote_server.extended_version())  # 返回cobbler详细版本信息,没啥用
 84     # print('-------------------------')
 85     # print(remote_server.logout(tokin))  # 退出当前cobbler连接
 86     # print('-------------------------')
 87     # print(remote_server.token_check(tokin))  # 检测当前tokin状态,是否失效
 88     # print('-------------------------')
 89     # print(remote_server.sync_dhcp(tokin)  # 同步DHCP
 90     # print('-------------------------')
 91     # print(remote_server.sync(tokin))  # 进行同步更新
 92     # print('-------------------------')
 93     # print(remote_server.read_or_write_kickstart_template('cobbler上ks文件路径','false为可写','将要替换ks文件的内容',tokin))  # 注意 替换KS字符串如果为-1,将删除此Ks文件,条件是此ks文件已不在引用
 94     # print(remote_server.read_or_write_kickstart_template('/var/lib/cobbler/kickstarts/hostname106.ks',False,-1,tokin))
 95     # print('-------------------------')
 96     # print(remote_server.get_config_data('zhaoyong'))  # 没啥用
 97     # print('-------------------------')
 98     # x  = remote_server.test_xmlrpc_ro()
 99     # print(x.distro)
100     # print(remote_server.read_or_write_snippet('/var/lib/cobbler/snippets/test1',False,'zhaoyong_test',tokin)) # 在snippgets下建立脚本文件
101     # distro_obj = cbl_distro.cobbler_distro(remote_server,tokin)
102     # # distro 查询
103     # out = distro_obj.find_distro_name()
104     # print(out)
105     # out = distro_obj.find_distro_info('Centos6.9-x86_64')
106     # print(out)
107     #
108     # profile_obj = cbl_profile.cobbler_profiles(remote_server,tokin)
109     #  profile 查找
110     # pro_name_list = profile_obj.find_profile_name()
111     # print(out)
112     # out = profile_obj.find_profile_info('CT6.8_VM_web_custom')
113     # print(out)
114     #
115     # system_obj = cbl_system.cobbler_system(remote_server,tokin)
116     # # system 查询
117     # out_all = system_obj.find_system_name()
118     # print(out_all)
119     # out = system_obj.system_name_info('tttttt')
120     # print(out)
121     # del system

猜你喜欢

转载自www.cnblogs.com/zy6103/p/8990333.html