OpenStack-Restful API接口测试(一)

       目前 OpenStack中消息传递有两种机制,一种是消息队列,另一种就是Restful API。其中OpenStack项目的接口遵循REST原则,即使用Restful Api实现OpenStack各Server与Client交互通信。下面测试一下直接使用OpenStack中Restful API去实现相应的功能。Postman是一款前端调用工具,本文采用该工具来测试后端的接口。

1. keytone get-token

token是环境可操作的前提,OpenStack登陆时填写的用户名+密码,登陆之后的操作都是使用token。下面使用postman工具测试keystone服务的接口,尝试向keystone服务的endpoint地址发送携带用户名及用户名密码的POST请求,具体要求如下:

若发送POST请求后传入的用户名密码参数验证通过,则返回状态信息200,并成功获取token数据。

从上述截图返回的body信息来看,除了获取到认证的token外,并且获取到了Openstack全部服务的请求地址,详见下面"serviceCatalog"字段,后续将可以拿着该token去访问Openstack其他服务,如:nova、glance。

    "serviceCatalog": [
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:8774/v2/fc6c592284bb4d6d87f2dada93a0d144",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:8774/v2/fc6c592284bb4d6d87f2dada93a0d144",
            "id": "786c8981ea6c4a50ab1e9b6889fd54ae",
            "publicURL": "http://10.154.4.65:8774/v2/fc6c592284bb4d6d87f2dada93a0d144"
          }
        ],
        "endpoints_links": [],
        "type": "compute",
        "name": "nova"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:9696",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:9696",
            "id": "858213266aac4d7794be98faf2cbd820",
            "publicURL": "http://10.154.4.65:9696"
          }
        ],
        "endpoints_links": [],
        "type": "network",
        "name": "neutron"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:8776/v2/fc6c592284bb4d6d87f2dada93a0d144",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:8776/v2/fc6c592284bb4d6d87f2dada93a0d144",
            "id": "268616abc7944cb4a8fa1f3f6dded4d4",
            "publicURL": "http://10.154.4.65:8776/v2/fc6c592284bb4d6d87f2dada93a0d144"
          }
        ],
        "endpoints_links": [],
        "type": "volumev2",
        "name": "cinderv2"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:9292",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:9292",
            "id": "71cbec44c42746048bcd77f9fe9487b0",
            "publicURL": "http://10.154.4.65:9292"
          }
        ],
        "endpoints_links": [],
        "type": "image",
        "name": "glance"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:8777",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:8777",
            "id": "0533e2fc65594f308c689a4b26df450b",
            "publicURL": "http://10.154.4.65:8777"
          }
        ],
        "endpoints_links": [],
        "type": "metering",
        "name": "ceilometer"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:8776/v1/fc6c592284bb4d6d87f2dada93a0d144",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:8776/v1/fc6c592284bb4d6d87f2dada93a0d144",
            "id": "1d81e66df8524baa8c7dc483a7257efd",
            "publicURL": "http://10.154.4.65:8776/v1/fc6c592284bb4d6d87f2dada93a0d144"
          }
        ],
        "endpoints_links": [],
        "type": "volume",
        "name": "cinder"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:8773/services/Admin",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:8773/services/Cloud",
            "id": "2c7fb3475aac4eec928316ee8818a765",
            "publicURL": "http://10.154.4.65:8773/services/Cloud"
          }
        ],
        "endpoints_links": [],
        "type": "ec2",
        "name": "nova_ec2"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:8080",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:8080/v1/AUTH_fc6c592284bb4d6d87f2dada93a0d144",
            "id": "589c8c52ddb84882811403b77e260673",
            "publicURL": "http://10.154.4.65:8080/v1/AUTH_fc6c592284bb4d6d87f2dada93a0d144"
          }
        ],
        "endpoints_links": [],
        "type": "object-store",
        "name": "swift"
      },
      {
        "endpoints": [
          {
            "adminURL": "http://10.154.4.65:35357/v2.0",
            "region": "RegionOne",
            "internalURL": "http://10.154.4.65:5000/v2.0",
            "id": "7b5cd0dfbb6e41a69841aa6a69760df6",
            "publicURL": "http://10.154.4.65:5000/v2.0"
          }
        ],
        "endpoints_links": [],
        "type": "identity",
        "name": "keystone"
      }
    ],

2. nova   get server-list

下面用上述拿到的token和nova服务的endpoint信息来查询admin租户下的全部虚机。

填写Postman,填写的内容有4个点,分别是:
1.请求类型:GET。
2.请求的URL地址:/servers。
3.设置访问的header,这里是设置token的key。第一步已经获取了token的值,剩余的访问都是使用token处理。
4.设置token的值。

可知上图返回的body信息中查询到一台“wy”虚机。更多有关nova的操作,可参看官方文档中nova服务的API的描述,从API使用手册中进入Compute API(https://developer.openstack.org/api-ref/compute/)。下面给出一些nova server的操作请求地址:

3.glance  get image-list

同nova操作,我们使用postman工具查看OpenStack的glance服务中存在的镜像。glance服务的访问地址参看官方glance服务的API文档(https://developer.openstack.org/api-ref/image/v2/

查询image-list需要在Postman填写的内容如下:
1.请求类型:GET。
2.请求的URL地址:/v2/images。
3.设置访问的header,这里是设置token的key。第一步已经获取了token的值,剩余的访问都是使用token处理。
4.设置token的值。

可知上图返回的body信息中查询到windows2012的镜像以及它的各种属性。

4.总结

       使用接口测试工具Postman简单测试一下发现,Restful API客户端能够调用keytone、nova、glance服务。下篇将以创建虚拟机为例,讲述使用Restful API客户端能够调用OpenStack各种服务,并各服务之间的相互配合也是通过其完成。

### 回答1: OpenStack是一个开源的云计算平台,提供了一套完整的API接口文档,通过这些文档可以了解并使用OpenStack的功能。 OpenStackAPI接口文档使用RESTful架构风格设计,提供了一套标准的HTTP方法,包括GET、POST、PUT和DELETE等,用于对云资源进行操作。这些API接口文档通过HTTP请求和响应进行通信,主要是使用JSON或XML格式来传输数据。 在API接口文档中,可以找到各种资源的详细说明和操作方法。其中包括但不限于虚拟机、网络、存储和身份认证等。通过调用相应的API接口,可以对资源进行创建、查询、修改和删除等操作。这些接口的参数、返回值和错误码也都在文档中有明确的说明,方便开发者理解和使用。 此外,API接口文档还提供了一些高级功能的操作方法。例如,可以通过接口实现虚拟机镜像的创建和更新,网络服务的配置和管理,以及负载均衡和弹性伸缩等操作。 总之,OpenStackAPI接口文档为开发者提供了访问和操作OpenStack平台的详细指南。通过深入研究和使用这些接口,开发者可以根据自己的需求,使用OpenStack提供的功能来构建和管理自己的云计算环境。 ### 回答2: OpenStack是一种开源的云计算平台,提供了多种服务,例如虚拟机实例、网络、存储等。为了方便用户与OpenStack平台进行交互,OpenStack提供了RESTful API接口。 RESTful API是一种基于HTTP协议的API设计风格,通过URL来访问不同的资源,并使用HTTP方法(如GET、POST、PUT、DELETE)来对资源进行操作。OpenStackRESTful API遵循这个设计风格,通过发送HTTP请求来实现对OpenStack服务的管理。 OpenStackRESTful API接口文档是开发人员在与OpenStack进行交互时的指南。该文档详细描述了每个API的URL、HTTP方法、输入参数、输出结果等信息。 通过RESTful API接口文档,开发人员可以了解每个API的功能和使用方法。例如,如果想创建一个虚拟机实例,可以查找对应的API文档,根据文档中的URL和HTTP方法,发送合适的HTTP请求,并传递必要的参数。API文档还会说明该API的返回结果类型和状态码,开发人员可以根据这些信息来处理API的返回结果。 除了API文档,OpenStack还提供了软件开发工具包(SDK),可以帮助开发人员更方便地使用API进行应用程序开发。SDK会封装底层的API请求和响应,对开发人员屏蔽细节,提供更简洁的接口供开发人员使用。 总之,OpenStackRESTful API接口文档是帮助开发人员理解和使用OpenStack服务的重要资源。通过查阅API文档,开发人员可以根据自己的需求,使用合适的API进行操作,实现各种云计算功能。 ### 回答3: OpenStack是一个开源的云计算平台,其提供了一组RESTful API接口,用于管理和操作云计算资源。下面是OpenStack RESTful API接口文档的概述: 1. 概述:首先,OpenStack RESTful API接口文档提供了对OpenStack各个组件的解释和介绍。它描述了API的用途、功能和操作方式,以及输入和输出参数等详细信息。 2. 资源和操作:文档中列出了OpenStack支持的各种资源类型,如虚拟机实例、网络、存储等,以及每种资源所支持的操作,如创建、删除、更新等。此外,还包括了资源和操作之间的关系和依赖。 3. 访问权限:OpenStack RESTful API文档中描述了各个资源和操作的访问权限控制。它定义了角色和权限的概念,并说明了如何使用身份验证令牌和访问控制策略来限制用户对资源和操作的访问。 4. URL和HTTP方法:每个API接口都有一个唯一的URL和对应的HTTP方法。资源和操作的URL路径和参数在文档中得以详细说明,以及每个HTTP方法所对应的操作和行为。 5. 响应和错误码:文档中还描述了OpenStack RESTful API的响应格式和错误码。它提供了不同API接口返回的数据格式和状态码的解释,以及可能出现的错误情况和错误码的含义。 OpenStack RESTful API接口文档是开发人员和云管理者的重要参考资料。通过它,用户可以了解到如何使用OpenStack提供的API接口来管理和操作云计算资源,以及如何实现对资源的访问控制和权限管理。这些详细的API文档能够提高开发效率,帮助用户更好地利用OpenStack平台的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值