OpenStack GCEAPI服务
gce-api的Python项目详细描述
OpenStack Nova GCE API自述文件
----
支持OpenStack的GCE-API。
安装
=
确保已安装Python PIP包。
检查并更正"install.sh"文件开头的默认选项。
运行"install"。sh"
如果需要,请在/etc/gce api/gceapi.conf中检查其他选项。
运行它-"gce api"。
运行授权命令:
python google cloud sdk/platform/gcutil/gcutil--authorization_uri_base=http://localhost:8787 auth
和下一个任何其他命令:
python google cloud sdk/platform/gcutil/gcutil--api_host=http://localhost:8787/--authorization_uri_base=http://localhost:8787--项目演示列表区域
2。您必须拥有google帐户
您可以使用
gcloud config set account<;account>;
激活已授权的帐户,或使用
gcloud auth login
授权新帐户下一步必须通过运行authorization命令在openstack中授权:
gcutil--authorizationion_uri_base=http://localhost:8787 auth
然后您可以运行任何其他命令:
gcutil--api_host=http://localhost:8787/--authorization_uri_base=http://localhost:8787--project demo listzones
make gcutil始终使用'--api_host'标志和您的gce ap使用您的gce api端点i
使用"--authorization\u uri\u base"标志的授权终结点。此外,您还可以将此
设置存储在"~/.gcutil.flags"文件中。
如果由于某种原因无法工作,请检查pythonpath是否已导出,并将其正确设置为类似于
`/usr/lib/python2.7/dist packages:/usr/local/lib/python2.7/dist packages`.
限制
===========
*名称在GCE中是唯一的,用于识别。名称在nova中不是唯一的。而是使用id。
解决方案:gce管理的openstack安装也应该保持唯一的命名。
*gce id是ulong(8字节)。openstack id可以是不同的(int,string),但它们大多是guid(16字节)。
解决方案:由于openstack id的长度和性质不同,而且gce api从不使用id作为参数
现在,生成并返回8字节的散列,以便任何id都可以报告。
*gce允许per-user ssh密钥规范,但nova只支持一个密钥。
解决方案:nova gce api只使用第一个密钥。
*默认的openstack风格可用作机器类型。gce不允许在机器类型名称中使用符号".",这就是为什么gce api plugin在"g e t"请求中将符号"."转换为"-"(例如,机器类型请求将名称"m1.tiny"转换为m1 tiny),在"put/post/delete"请求中将符号"."转换为"-"(例如,实例创建将转换为将"n1-standard-1"命名为"n1.standard.1")。这个协议的简单充分的实现
被添加到nova的gce api服务中,因为它在keystone中不存在。
当前的实现允许在google允许的情况下,为
一个经过身份验证的用户操作多个openstack项目。对于在
身份验证期间返回的初始令牌,它不包含keystone所需的项目信息。
相反,当传入的项目
信息添加到现有用户信息并在keystone中获取新令牌时,将对每个请求进行另一次身份验证。
支持的功能
=====
不支持标准查询参数(字段和prettyprint除外)。
支持的资源类型
*地址
*磁盘
*防火墙
*图像
*实例
*机器类型
*网络
*项目
*注册表离子
*区域
不支持的资源类型
*wardingrules
*httphealthchecks
*targetpools
roject/regions/region/addresses
+列出get/project/regions/region/addresses
+disks
+aggregated list get/project/aggregated/disks
+createsnapshot post/project/zones/zone/disks/createsnapshot
+删除/project/zones/disks/disk
+获取/project/zones/zone/disks/disk
+插入post/project/zones/zone/disks
+列出get/project/zones/zone/disks
+防火墙
+删除删除/project/global/firewall/firewall
+列出get/project/global/firewall/firewall
+插入post/project/global/firewall
+列出get/project/global/firewall
-修补程序/project/global/firewall/firewall
-更新put/project/global/firewalls/firewall
-转发规则
-聚合列表get/project/aggregated/forwardingrules
-删除删除/project/regions/region/forwardingrules/forwardingrule
-获取/project/regions/region/forwardingrules/forwardingrule
-插入post/project/regions/region/forwardingrules
-列表get/project/regions/region/forwardingrules
-settarget post/project/regions/region/forwardingrules/forwardingrule/settarget
+globalooperations
+aggregated list get/project/aggregated/operations
+delete delete/project/global/operations
+get/project/global/operations
+list get/p项目/全局/操作
-httphealthchecks
-delete删除/project/global/httphealthchecks/httphealthchecks
-get get/project/global/httphealthchecks/httphealthchecks
-insert post/project/global/httphealthchecks
-list get/project/global/httphealthchecks
-patch补丁/project/global/httphealthchecks/httphealthcheck
-更新put/project/global/httphealthchecks/httphealthcheck
+images
+delete delete/project/global/images/images
-deprecate post/project/global/images/images/deprecate
+get/project/global/images/images
+insert post/project/global/images
+list get/project/global/images
+instances
+addaccessconfig post/project/zones/zone/instances/instance/addaccessconfig
+aggregatedlist get/project/aggregated/instances
+attachdisk post/project/zones/zone/instances/instance/attachdisk
+delete delete/project/zones/zone/instances/instance
+deleteaccessconfig post/project/zones/zonence/deleteaccessconfig
+detachdisk post/project/zones/zone/instances/instance/detachdisk
+get get/project/zones/zone/instances/instance
-getserialportoutput get/project/zones/zone/instances/instance/serialport
+insert post/project/zones/zone/instances
+list get/project/zones/zone/instances
+reset post/project/zones/zone/instances/instance/reset
-setmetadata post/project/zones/zone/instances/instance/setmetadata
-settags post/project/zones/zone/instances/instance/setscheduling
-setscheduling post/project/zones/zone/instances/instance/setscheduling
+machinetypes
+aggregatedlist get/project/aggregated/machinetypes
+get get/project/zones/zone/machinetypes/machinetype
+list get/project/zones/zone/machinetypes
+networks
+delete delete/project/global/networks/network
+get/project/global/networks
+insert post/project/global/networks
+list get/project/global/networks
+projects
+et get/project
+setCommonInstanceMetadata post/project/setCommonInstanceMetadata
-regionoperations
+delete delete/project/regions/区域/操作/操作
+get get/project/regions/region/operation/operation
+list get/project/regions/region/operations
+regions
+get/project/regions/region
+list get/project/regions
+routes
+delete delete/project/global/routes/route
+get get/project/global/routes/route
+插入post/project/global/routes
+列出get/project/global/routes
+snapshots
+删除delete/project/global/snapshots/snapshot
+获取get/project/global/snapshots/snapshot
+列出get/project/global/snapshots
-targetpools
-添加healthcheck post/project/regions/targetpools/targetetpool/addhealthcheck
-addinstance post/project/regions/region/targetpools/targetpool/addinstance
-aggregatedlist get/project/aggregated/targetpools
-delete delete/project/regions/region/targetpools/targetpool
-get get/project/regions/region/targetpools/targetpool
-gethealth post/project/regions/region/targetpools/targetpool/gethealth
-插入post/project/regions/region/targetpools
-列出get/project/regions/region/targetpools
-removeHealthCheck post/project/regions/region/targetpools/targetpool/removeHealthCheck
-removeInstance post/project/regions/region/targetpools/targetpool/removeInstance
-设置备份post/project/regions/区域/targetpools/targetpool/setbackup
+zone operations
+delete delete/project/zones/zone/operations
+get get/project/zones/operations
+list get/project/zones/zone/operations
+zones
+get/project/zones/zone
+list get/project/zones
----
支持OpenStack的GCE-API。
安装
=
确保已安装Python PIP包。
检查并更正"install.sh"文件开头的默认选项。
运行"install"。sh"
如果需要,请在/etc/gce api/gceapi.conf中检查其他选项。
运行它-"gce api"。
运行授权命令:
python google cloud sdk/platform/gcutil/gcutil--authorization_uri_base=http://localhost:8787 auth
和下一个任何其他命令:
python google cloud sdk/platform/gcutil/gcutil--api_host=http://localhost:8787/--authorization_uri_base=http://localhost:8787--项目演示列表区域
2。您必须拥有google帐户
您可以使用
gcloud config set account<;account>;
激活已授权的帐户,或使用
gcloud auth login
授权新帐户下一步必须通过运行authorization命令在openstack中授权:
gcutil--authorizationion_uri_base=http://localhost:8787 auth
然后您可以运行任何其他命令:
gcutil--api_host=http://localhost:8787/--authorization_uri_base=http://localhost:8787--project demo listzones
make gcutil始终使用'--api_host'标志和您的gce ap使用您的gce api端点i
使用"--authorization\u uri\u base"标志的授权终结点。此外,您还可以将此
设置存储在"~/.gcutil.flags"文件中。
如果由于某种原因无法工作,请检查pythonpath是否已导出,并将其正确设置为类似于
`/usr/lib/python2.7/dist packages:/usr/local/lib/python2.7/dist packages`.
限制
===========
*名称在GCE中是唯一的,用于识别。名称在nova中不是唯一的。而是使用id。
解决方案:gce管理的openstack安装也应该保持唯一的命名。
*gce id是ulong(8字节)。openstack id可以是不同的(int,string),但它们大多是guid(16字节)。
解决方案:由于openstack id的长度和性质不同,而且gce api从不使用id作为参数
现在,生成并返回8字节的散列,以便任何id都可以报告。
*gce允许per-user ssh密钥规范,但nova只支持一个密钥。
解决方案:nova gce api只使用第一个密钥。
*默认的openstack风格可用作机器类型。gce不允许在机器类型名称中使用符号".",这就是为什么gce api plugin在"g e t"请求中将符号"."转换为"-"(例如,机器类型请求将名称"m1.tiny"转换为m1 tiny),在"put/post/delete"请求中将符号"."转换为"-"(例如,实例创建将转换为将"n1-standard-1"命名为"n1.standard.1")。这个协议的简单充分的实现
被添加到nova的gce api服务中,因为它在keystone中不存在。
当前的实现允许在google允许的情况下,为
一个经过身份验证的用户操作多个openstack项目。对于在
身份验证期间返回的初始令牌,它不包含keystone所需的项目信息。
相反,当传入的项目
信息添加到现有用户信息并在keystone中获取新令牌时,将对每个请求进行另一次身份验证。
支持的功能
=====
不支持标准查询参数(字段和prettyprint除外)。
支持的资源类型
*地址
*磁盘
*防火墙
*图像
*实例
*机器类型
*网络
*项目
*注册表离子
*区域
不支持的资源类型
*wardingrules
*httphealthchecks
*targetpools
roject/regions/region/addresses
+列出get/project/regions/region/addresses
+disks
+aggregated list get/project/aggregated/disks
+createsnapshot post/project/zones/zone/disks/createsnapshot
+删除/project/zones/disks/disk
+获取/project/zones/zone/disks/disk
+插入post/project/zones/zone/disks
+列出get/project/zones/zone/disks
+防火墙
+删除删除/project/global/firewall/firewall
+列出get/project/global/firewall/firewall
+插入post/project/global/firewall
+列出get/project/global/firewall
-修补程序/project/global/firewall/firewall
-更新put/project/global/firewalls/firewall
-转发规则
-聚合列表get/project/aggregated/forwardingrules
-删除删除/project/regions/region/forwardingrules/forwardingrule
-获取/project/regions/region/forwardingrules/forwardingrule
-插入post/project/regions/region/forwardingrules
-列表get/project/regions/region/forwardingrules
-settarget post/project/regions/region/forwardingrules/forwardingrule/settarget
+globalooperations
+aggregated list get/project/aggregated/operations
+delete delete/project/global/operations
+get/project/global/operations
+list get/p项目/全局/操作
-httphealthchecks
-delete删除/project/global/httphealthchecks/httphealthchecks
-get get/project/global/httphealthchecks/httphealthchecks
-insert post/project/global/httphealthchecks
-list get/project/global/httphealthchecks
-patch补丁/project/global/httphealthchecks/httphealthcheck
-更新put/project/global/httphealthchecks/httphealthcheck
+images
+delete delete/project/global/images/images
-deprecate post/project/global/images/images/deprecate
+get/project/global/images/images
+insert post/project/global/images
+list get/project/global/images
+instances
+addaccessconfig post/project/zones/zone/instances/instance/addaccessconfig
+aggregatedlist get/project/aggregated/instances
+attachdisk post/project/zones/zone/instances/instance/attachdisk
+delete delete/project/zones/zone/instances/instance
+deleteaccessconfig post/project/zones/zonence/deleteaccessconfig
+detachdisk post/project/zones/zone/instances/instance/detachdisk
+get get/project/zones/zone/instances/instance
-getserialportoutput get/project/zones/zone/instances/instance/serialport
+insert post/project/zones/zone/instances
+list get/project/zones/zone/instances
+reset post/project/zones/zone/instances/instance/reset
-setmetadata post/project/zones/zone/instances/instance/setmetadata
-settags post/project/zones/zone/instances/instance/setscheduling
-setscheduling post/project/zones/zone/instances/instance/setscheduling
+machinetypes
+aggregatedlist get/project/aggregated/machinetypes
+get get/project/zones/zone/machinetypes/machinetype
+list get/project/zones/zone/machinetypes
+networks
+delete delete/project/global/networks/network
+get/project/global/networks
+insert post/project/global/networks
+list get/project/global/networks
+projects
+et get/project
+setCommonInstanceMetadata post/project/setCommonInstanceMetadata
-regionoperations
+delete delete/project/regions/区域/操作/操作
+get get/project/regions/region/operation/operation
+list get/project/regions/region/operations
+regions
+get/project/regions/region
+list get/project/regions
+routes
+delete delete/project/global/routes/route
+get get/project/global/routes/route
+插入post/project/global/routes
+列出get/project/global/routes
+snapshots
+删除delete/project/global/snapshots/snapshot
+获取get/project/global/snapshots/snapshot
+列出get/project/global/snapshots
-targetpools
-添加healthcheck post/project/regions/targetpools/targetetpool/addhealthcheck
-addinstance post/project/regions/region/targetpools/targetpool/addinstance
-aggregatedlist get/project/aggregated/targetpools
-delete delete/project/regions/region/targetpools/targetpool
-get get/project/regions/region/targetpools/targetpool
-gethealth post/project/regions/region/targetpools/targetpool/gethealth
-插入post/project/regions/region/targetpools
-列出get/project/regions/region/targetpools
-removeHealthCheck post/project/regions/region/targetpools/targetpool/removeHealthCheck
-removeInstance post/project/regions/region/targetpools/targetpool/removeInstance
-设置备份post/project/regions/区域/targetpools/targetpool/setbackup
+zone operations
+delete delete/project/zones/zone/operations
+get get/project/zones/operations
+list get/project/zones/zone/operations
+zones
+get/project/zones/zone
+list get/project/zones