Hyphen +

openstack horizon 开发入门

Author:海峰 http://weibo.com/344736086

这段时间进行openstack控制台界面的开发有2个多月,感觉学到了不少东西。

1、前端

首先是前端的技术,之前只知道简单的html语法,对CSS,JS,JQUERY等一窍不通。年后,小组开发人手不是很够,果断转行去开发,记得刚开始,搞个练手的界面,搞了两天才实现。而且前提是别人写好的结构,拿过来修改使用。熟读唐诗三百首,不会做诗也会吟的境界。但是一旦碰到没有样例的界面,那就头疼了,因为很多标签都是不认识的。但只能问人,搜索用法,记得有几天,写几个界面,搞得有点喘不过气来。但事实证明一句老话,当你感觉到难受的时候,是你学东西最多的时候。因为不懂,所以觉得很难,因为一直坚持,所以特别难受,中途多次想不做前端了,让其他人做,只写后端好了,但还是一直坚持。截止本稿时间,终于学到了一些基本前端,现在做OPensack的控制台界面开发勉强够用。

2、后端

开发后端直接使用各个服务的client,因为Horizon就是这么干的。

通过实例化一个通过授权认证的客户端对象,然后可以进行后续的操作

2.1、nova

nova操作

import novaclient.v1_1.client as nvclient
nova = nvclient.Client(auth_url=auth_dict["--os-auth-url"],\
						username=auth_dict["--os-username"],\
						api_key=auth_dict["--os-password"],\
						project_id=auth_dict["--os-tenant-name"])

2.2 keystone

import keystoneclient.v2_0.client as ksclient                     
keystone = ksclient.Client(auth_url = auth_dict["--os-auth-url"], \
                                    username = auth_dict["--os-username"], \
                                    password = auth_dict["--os-password"], \
                                    tenant_name = auth_dict["--os-tenant-name"])

2.3 neutron

import keystoneclient.v2_0.client as ksclient
keystone = ksclient.Client(auth_url = auth_dict["--os-auth-url"], \
                                    username = auth_dict["--os-username"], \
                                    password = auth_dict["--os-password"], \
                                    tenant_name = auth_dict["--os-tenant-name"])

或者这样:

import keystoneclient.v2_0.client as ksclient  
keystone = ksclient.Client(auth_url = auth_dict["--os-auth-url"], \  
                                    username = auth_dict["--os-username"], \  
                                    password = auth_dict["--os-password"], \  
                                    tenant_name = auth_dict["--os-tenant-name"])  
  
endpoint_url = keystone.service_catalog.url_for(service_type='network')  
token = keystone.auth_token  
neutron2 = neutronclient.Client(endpoint_url=endpoint_url, token=token) 
neutron = neutronclient.Client(auth_url=auth_dict["--os-auth-url"],
username=auth_dict["--os-username"],
password=auth_dict["--os-password"],
tenant_name=auth_dict["--os-tenant-name"])                                   

这段时间进行openstack控制台界面的开发有2个多月,感觉学到了不少东西。

1、前端

首先是前端的技术,之前只知道简单的html语法,对CSS,JS,JQUERY等一窍不通。年后,小组开发人手不是很够,果断转行去开发,记得刚开始,搞个练手的界面,搞了两天才实现。而且前提是别人写好的结构,拿过来修改使用。熟读唐诗三百首,不会做诗也会吟的境界。但是一旦碰到没有样例的界面,那就头疼了,因为很多标签都是不认识的。但只能问人,搜索用法,记得有几天,写几个界面,搞得有点喘不过气来。但事实证明一句老话,当你感觉到难受的时候,是你学东西最多的时候。因为不懂,所以觉得很难,因为一直坚持,所以特别难受,中途多次想不做前端了,让其他人做,只写后端好了,但还是一直坚持。截止本稿时间,终于学到了一些基本前端,现在做OPensack的控制台界面开发勉强够用。

2、后端

开发后端直接使用各个服务的client,因为Horizon就是这么干的。

通过实例化一个通过授权认证的客户端对象,然后可以进行后续的操作

2.1、nova

nova操作

import novaclient.v1_1.client as nvclient
nova = nvclient.Client(auth_url=auth_dict["--os-auth-url"],\
						username=auth_dict["--os-username"],\
						api_key=auth_dict["--os-password"],\
						project_id=auth_dict["--os-tenant-name"])

2.2 keystone

import keystoneclient.v2_0.client as ksclient                     
keystone = ksclient.Client(auth_url = auth_dict["--os-auth-url"], \
                                    username = auth_dict["--os-username"], \
                                    password = auth_dict["--os-password"], \
                                    tenant_name = auth_dict["--os-tenant-name"])

2.3 neutron

import keystoneclient.v2_0.client as ksclient
keystone = ksclient.Client(auth_url = auth_dict["--os-auth-url"], \
                                    username = auth_dict["--os-username"], \
                                    password = auth_dict["--os-password"], \
                                    tenant_name = auth_dict["--os-tenant-name"])

或者这样:

import keystoneclient.v2_0.client as ksclient  
keystone = ksclient.Client(auth_url = auth_dict["--os-auth-url"], \  
                                    username = auth_dict["--os-username"], \  
                                    password = auth_dict["--os-password"], \  
                                    tenant_name = auth_dict["--os-tenant-name"])  
  
endpoint_url = keystone.service_catalog.url_for(service_type='network')  
token = keystone.auth_token  
neutron2 = neutronclient.Client(endpoint_url=endpoint_url, token=token) 
neutron = neutronclient.Client(auth_url=auth_dict["--os-auth-url"],
username=auth_dict["--os-username"],
password=auth_dict["--os-password"],
tenant_name=auth_dict["--os-tenant-name"])                                   
点击查看评论

Cloud

AI

Coding

Thinking