Django项目:CMDB(服务器硬件资产自动采集系统)--02--02CMDB将服务器基本信息提交到API接口

AutoCmdb

 1 # urls.py
 2 """AutoCmdb URL Configuration
 3
 4 The `urlpatterns` list routes URLs to views. For more information please see:
 5     https://docs.djangoproject.com/en/2.0/topics/http/urls/
 6 Examples:
 7 Function views
 8     1. Add an import:  from my_app import views
 9     2. Add a URL to urlpatterns:  path(‘‘, views.home, name=‘home‘)
10 Class-based views
11     1. Add an import:  from other_app.views import Home
12     2. Add a URL to urlpatterns:  path(‘‘, Home.as_view(), name=‘home‘)
13 Including another URLconf
14     1. Import the include() function: from django.urls import include, path
15     2. Add a URL to urlpatterns:  path(‘blog/‘, include(‘blog.urls‘))
16 """
17 from django.contrib import admin
18 from django.urls import path
19
20 # ————————02CMDB将服务器基本信息提交到API接口————————
21 from django.conf.urls import url
22 from django.conf.urls import include
23 # ————————02CMDB将服务器基本信息提交到API接口————————
24
25 urlpatterns = [
26     path(‘admin/‘, admin.site.urls),
27
28     # ————————02CMDB将服务器基本信息提交到API接口————————
29     url(r‘^api/‘, include(‘api.urls‘)),
30     # ————————02CMDB将服务器基本信息提交到API接口————————
31
32 ]

# urls.py

1 # urls.py
2 # ————————02CMDB将服务器基本信息提交到API接口————————
3 from django.conf.urls import url
4 from api import views
5
6 urlpatterns = [
7     url(r‘^asset$‘, views.AssetView.as_view()),
8 ]
9 # ————————02CMDB将服务器基本信息提交到API接口————————

# urls.py

 1 from django.shortcuts import render
 2
 3 # Create your views here.
 4
 5 # views.py
 6
 7 # ————————02CMDB将服务器基本信息提交到API接口————————
 8 import json #轻量级的文本数据交换格式
 9 from django.views import View
10 from django.views.decorators.csrf import csrf_exempt #和HTML的{% csrf_token %}作用一样
11 from django.utils.decorators import method_decorator #安全通过 ‘django.middleware.csrf.CsrfViewMiddleware‘,
12 from django.http import JsonResponse#这个类是HttpRespon的子类
13 class AssetView(View):# http_method_names = [‘get‘, ‘post‘, ‘put‘, ‘patch‘, ‘delete‘, ‘head‘, ‘options‘, ‘trace‘]
14     @method_decorator(csrf_exempt)#和HTML的{% csrf_token %}作用一样,安全通过 ‘django.middleware.csrf.CsrfViewMiddleware‘,
15     def dispatch(self, request, *args, **kwargs):
16         return super(AssetView, self).dispatch(request, *args, **kwargs)
17     def post(self, request, *args, **kwargs):#接受客户端到信息
18         server_info = json.loads(request.body.decode(‘utf-8‘))
19         print(‘获取到的信息: ‘,type(server_info),server_info)
20         server_info = json.loads(server_info)#把字符串转换成字典
21         print(‘转换后的信息: ‘,type(server_info),server_info)
22         hostname = server_info[‘hostname‘]
23         print(‘主机名‘,hostname)
24         ret = {‘code‘: 1000, ‘message‘: ‘[%s]更新完成‘ % hostname}#返回到客户端到信息
25         print(ret)
26         return JsonResponse(ret)#这个类是HttpRespon的子类
27 # ————————02CMDB将服务器基本信息提交到API接口————————

# views.py

 1 #settings.py
 2 # ————————01CMDB获取服务器基本信息————————
 3 import os
 4
 5 BASEDIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))##当前路径
 6
 7 # 采集资产的方式,选项有:agent(默认), salt, ssh
 8 MODE = ‘agent‘
 9
10 # ————————01CMDB获取服务器基本信息————————
11
12 # ————————02CMDB将服务器基本信息提交到API接口————————
13 # 资产信息API
14 ASSET_API = "http://127.0.0.1:8000/api/asset"
15 # ————————02CMDB将服务器基本信息提交到API接口————————

#settings.py

 1 # client.py
 2 # ————————01CMDB获取服务器基本信息————————
 3 from src import plugins  #__init__.py
 4 from lib.serialize import Json #转成字符串或者模式
 5
 6 # ————————02CMDB将服务器基本信息提交到API接口————————
 7 import requests  #伪造页面访问
 8 from config import settings #文件配置
 9 # ————————02CMDB将服务器基本信息提交到API接口————————
10
11 class AutoBase(object):
12
13     # ————————02CMDB将服务器基本信息提交到API接口————————
14     def __init__(self):
15         self.asset_api = settings.ASSET_API  #ASSET_API = "http://127.0.0.1:8000/api/asset"
16     def post_asset(self, msg):#post方式向API接口提交资产信息
17         status = True#获取到信息
18         try:
19             response = requests.post(
20                 url=self.asset_api,
21                 json=msg
22             )
23         except Exception as e:
24             response = e
25             status = False  #获取信息时出现错误
26         print(response.json())
27     # ————————02CMDB将服务器基本信息提交到API接口————————
28
29     def process(self):#派生类需要继承此方法,用于处理请求的入口
30         raise NotImplementedError(‘您必须实现过程的方法‘)
31
32 class AutoAgent(AutoBase):
33     def process(self):
34         server_info = plugins.get_server_info()#获取本地基本信息
35         server_json = Json.dumps(server_info.data)#json.dumps将 Python 对象编码成 JSON 字符串
36         print(‘提交资产信息:‘,server_json)
37 # ————————01CMDB获取服务器基本信息————————
38
39         # ————————02CMDB将服务器基本信息提交到API接口————————
40         self.post_asset(server_json)# post方式向接口提交资产信息
41         # ————————02CMDB将服务器基本信息提交到API接口————————

# client.py

原文地址:https://www.cnblogs.com/ujq3/p/9219093.html

时间: 2024-08-28 13:40:04

Django项目:CMDB(服务器硬件资产自动采集系统)--02--02CMDB将服务器基本信息提交到API接口的相关文章

Django项目:CMDB(服务器硬件资产自动采集系统)--11--07CMDB文件模式测试采集硬件数据

1 #settings.py 2 # --------01CMDB获取服务器基本信息-------- 3 import os 4 5 BASEDIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))##当前路径 6 7 # 采集资产的方式,选项有:agent(默认), salt, ssh 8 MODE = 'agent' 9 10 # --------01CMDB获取服务器基本信息-------- 11 12 # ----

Django项目:CMDB(服务器硬件资产自动采集系统)--01--01CMDB获取服务器基本信息

AutoClient 1 #settings.py 2 # --------01CMDB获取服务器基本信息-------- 3 import os 4 5 BASEDIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))##当前路径 6 7 # 采集资产的方式,选项有:agent(默认), salt, ssh 8 MODE = 'agent' 9 10 # --------01CMDB获取服务器基本信息-------- #

Django项目:CMDB(服务器硬件资产自动采集系统)--08--06CMDB测试Linux系统采集硬件数据的命令03

https://www.virtualbox.org/wiki/Downloads https://mirrors.aliyun.com/centos/7/isos/x86_64/ http://www.xitongzhijia.net/soft/24315.html http://www.downxia.com/downinfo/4574.html 原文地址:https://www.cnblogs.com/ujq3/p/9245356.html

Django项目:CMDB(服务器硬件资产自动采集系统)--09--06CMDB测试Linux系统采集硬件数据的命令04

root 123456 ip addr init 0 root 123456 ip addr root 123456 python3 yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel yum -y install wget 原文地址:https://www

Django项目:CMDB(服务器硬件资产自动采集系统)--10--06CMDB测试Linux系统采集硬件数据的命令05

cd /py/AutoClient/bin python3 auto-client.py /usr/local/python3/bin/pip install requests python3 auto-client.py https://www.bejson.com/ 原文地址:https://www.cnblogs.com/ujq3/p/9245767.html

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt)

Django 1.6 最佳实践: 如何设置django项目的设置(settings.py)和部署文件(requirements.txt) 作者: Desmond Chen,发布日期: 2014-05-17, 修改日期: 2014-05-18 在Django 1.6中的settings.py中可以修改130多项设置, 但大多数都继承自默认值. 设置是在web服务器启动时首次载入的, 服务器重启时重新载入, 因此, 程序员们应尽量避免修改正式服务器上使用的settings.py文件. 以下是一些我们

Apache部署django项目

我想这应该是很普遍的一篇文章,百度了一下确实有不少相关的文章,居然还在讲用“mod_python” , 我也是醉了.在些过程中颇费了些力气.在些记录. ---------------------------------------------- 在此之前,我们一直使用django的manage.py 的runserver 命令来运行django应用,但这只是我们的开发环境,当项目真正部署上线的时候这做就不可行了,必须将我们的项目部署到特定的web服务器上. 安装apache Apache是非常有

Nginx+uwsgi或fastcgi部署Django项目

nginx+uwsgi ubuntu下先安装下C编译器和Python环境: sudo apt-get install build-essential python-dev 使用pip安装uwsgi: pip install uwsgi nginx配置: 可以单独为站点设置一个配置文件: sudo vim /etc/nginx/sites-enabled/mysite 或者直接在nginx.conf中设置: sudo vim /etc/nginx/nginx.conf 设置: server { l

django项目流程

使用eclipse创建一个django项目 打开settings.py添加: STATIC_ROOT = os.path.join(os.path.dirname(__file__),'static') STATICFILES_DIRS = (     ('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ),       ('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ),