openstack java sdk开发包

int32位 posted @ Mar 23, 2016 12:39:00 AM in openstack , 3455 阅读
转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!

What's openstack ?

OpenStack是一个云平台管理的项目,由几个主要的组件组合起来,旨在为公共及私有云的建设与管理提供平台。它是由 Rackspace 和 NASA 共同开发的云计算平台,帮助服务商和企业内部实现类似于 Amazon EC2 和 S3 的云基础架构服务(Infrastructure as a Service, IaaS),具体查看openstack官网

About this project

这个项目旨在写一个方便调用、方便扩展的openstack开发包。它是根据openstack api封装的java开发库,最初应实验室需求而开发。目前已经花了陆陆续续近3个月的时间,仅仅实现了基本功能,还有很多bug,以及功能尚未实现。

项目地址:https://github.com/krystism/openstack-java-sdk

How to use ?

首先使用maven构建本项目:

mvn package

如果需要把依赖包一块打进一个整体包,使用一下命令:

mvn assembly:assembly

项目运行需要配置文件,配置文件路径由系统变量OPENSTACK_CONF_PATH指定,默认为/etc/openstack,参考配置文件说明 我学习了openstack官方python库的设计架构,尽力做到调用简单,方便.以下是demo:

    OpenstackSession session = OpenstackSession.getSession("username", "password");// get session
    Nova nova = session.getNovaClient(); // get nova client
    // get a flavor list, print their name
    for (Flavor flavor : nova.flavors.list()) {
        System.out.println(flavor.getName());
    }
    // create a new server
    Server server = new Server();
    server.setName("demo");
    server.setImageRef("imageId");
    server.setFlavorRef("flavorId");
    // some other config 
    nova.servers.create(server); // call create method to execute.

Join me !

由于时间有限,加上本人代码功底尚浅,需要完美完成所有功能实在是感觉力不从心。希望有更多的大牛能够加入一起完成,并且指出我目前工作的不足,甚至重构整个代码,我真诚的感谢每一位热心的朋友!

下面讲讲我目前如何扩展新功能:

Step 1:创建model

model就是实体对应的java bean,接收请求过来的数据一般是json,即要把json表示的对象转化成的java对象。你可以完全由自己来定义自己的bean,我的所有bean都继承AbstractEntity,属性由Property注解,构造方法传递一个JSONObject对象,一般直接调用基类的构造方法就能完成JSONObject到java bean的转化。以下是model demo:

@Entity("volume_type")
public class VolumeType extends AbstractEntity {
    private static final long serialVersionUID = -6539238104579991330L;
    @Property("extra_specs")
    private JSONObject metadata;
    /*
    @Property("name")
    private String name;
    @Property("id")
    private String id;
    */
    public VolumeType() {
        super();
    }
    public VolumeType(JSONObject jsonObj) {
        super(jsonObj);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    // some other getter and setter here
}

Step 2:创建bean管理接口

管理接口即对bean定义操作,这些操作可能根据api的版本不同有不同的实现。在设计接口时,我没有使用共同接口,也尚未使用接口继承,原因是很多实体bean对应的操作差异性很大,即使是相同的操作,参数也不完全相同。下面是一个管理接口demo:

public interface ServerManager {
    /**
     * Get a server.
     * @param id ID of the Server to get.
     * @return Server
     * @throws OperationException
     */
    Server get(String id) throws OperationException;
    /**
     * Get a list of servers.
     * @return List of server
     * @throws OperationException
     */
    List<Server> list() throws OperationException;
    /**
     * Stop(power off) the server
     * @param id The id of server to stop.
     * @throws OperationException
     */
    void stop(String id) throws OperationException;
    /**
     * Start(power on) the server,
     * @param id The id of server to start.
     * @throws OperationException
     */
     void start(String id) throws OperationException;
     /**
      * Reboot a server, for a software-lever reboot
      * @param id The ID of server to reboot.
      * @see reboot(String id, boolean hard)
      */
     void reboot(String id) throws OperationException;
     /**
      * update the name for a Server
      * @param id the id of server to rename
      * @param name the new name of the server.
      * @throws OperationException
      */
     void rename(String id, String name) throws OperationException;
     /**
      * Create (boot) a new Server.<br/>
      * <i>Remember</i> : You must set name, imageRef, flavorRef !
      * @param instance The new server you have created.
      * @return
      * @throws OperationException
      */
     Server create(Server instance) throws OperationException;
     /**
      * Delete (i.e shut down and delete the image) this server.
      * @param id The ID of server to delete.
      * @throws OperationException
      */
     void delete(String id) throws OperationException;
}

Step 3: 实现管理接口

接下来就是具体实现接口,可能会根据api版本不同而有不同的实现,实际应用时可以根据配置文件指定需要使用的版本。下面是一个实现Demo:

public class Flavors extends AbstractManager<Flavor> implements FlavorManager{
    private final String PREFIX = "/flavors";
    public Flavors(Authenticated credentical) {
        super(credentical, Flavor.class);
    }
    /**
     * Get a list of all flavors
     * @return A List , which holds flavors
     * @throws OperationException
     */
    @Override
    public List<Flavor> list() throws OperationException {
        return _list(PREFIX + "/detail");
    }
    /**
     * Get a specific Flavor.
     * @param id The ID of Flavor to get. 
     * @return Flavor
     * @throws OperationException
     */
    @Override
    public Flavor get(String id) throws OperationException {
        return _get(PREFIX + "/" + id);
    }
    /**
     * Delete a specific Flavor.
     * @param id The ID of Flavor to delete.
     * @throws OperationException
     */
    @Override
    public void delete(String id) throws OperationException {
        _delete("/flavors/" + id);
    }
    /**
     * create a new flavor for a tenant
     * @param flavor The flavor to create
     * @return The new flavor
     * @throws OperationException
     */
    @Override
    public Flavor create(Flavor flavor) throws OperationException {
        return _create("/flavors", flavor);
    }
}

Step 4: 注册新功能

注册新功能就是把相应的管理接口添加到client下(比如Nova, Glance等),目前我直接硬编码,实际操作应该根据配置文件选择api版本由工厂负责创建,以下是demo:

public class Nova {
    public final FlavorManager flavors;
    public final HypervisorManager hypervisors;
    public final ServerManager servers;
    public final KeyPairManager keypairs;
    public Nova(Authenticated credentical) {
        // bad work, don't do that!!
        flavors = new Flavors(credentical);
        hypervisors = new Hypervisors(credentical);
        servers = new Servers(credentical);
        keypairs = new KeyPairs(credentical);
    }

How to extend new features?

如何为已经实现的接口增加新功能,比如在请求前记录日志,或者使用cache。只需要增加装饰器即可!以下是Demo:

public class FlavorCachedManager implements FlavorManager {
    private FlavorManager flavors;
    public FlavorCachedManager(FlavorManager flavors) {
        this.flavors = flavors;
    }
    @Override
    public Flavor get(String id) throws OperationException {
        Flavor flavor = getFromCache(id);
        if (flavor == null) {
            flavor = flavors.get(id);
        }
        addToCache(flavor);
        return flavor;
    }

}

Copyright

The MIT License (MIT)

转载请注明:http://krystism.is-programmer.com/若有错误,请多多指正,谢谢!
  • 无匹配
  • 无匹配
전설 서구 说:
2021年3月04日 21:00

New web site is looking good. Thanks for the great effort. movies downloads sites

전설 서구 说:
2021年3月13日 18:21

I appreciated your work very thanks naadeali.com/

전설 서구 说:
2021年3月14日 15:50

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic. If possible, as you gain expertise, would you mind updating your blog with more information? It is extremely helpful for me. gogo anime

John 111 说:
2021年3月15日 02:22

What a fantabulous post this has been. Never seen this kind of useful post. I am grateful to you and expect more number of posts like these. Thank you very much. jetez un œil ici

John 111 说:
2021年3月16日 13:41

I've been looking for info on this topic for a while. I'm happy this one is so great. Keep up the excellent work Check This Out

전설 서구 说:
2021年3月17日 18:33

Praėjus keliems, įstatymais numatytiems mėnesiams, valdžios institucijos pradės legendinių, 40 metų Añaza pakrantės peizažą gadinusių griaučių ardymą. tenerife world map

전설 서구 说:
2021年3月18日 19:11

Žinoma labai svarbus yra nusiteikimas. Kiekvienas, kuris tikrai nori vairuoti, turi didelę tikimybę, kad jam viskas puikiai klostysis. Visai kitaip sekasi tiems, kurie vairuoti nenori ar net bijo sėsti už automobilio vairo, todėl reikia suprasti, kad vidinė motyvacija mokytis vairuoti yra svarbiausia. Ne mažiau svarbu ir tai, kaip mokomasi. ket bilietai ir testai

John 111 说:
2021年3月19日 03:35

Search, compare, analyze and plan your holiday in Sydney. Book cheap flights to Sydney for your budget travel. Experience this wonderful city with its beautiful beaches, excellent night life and delicacies of all over the world. cheap flight deals

John 111 说:
2021年3月19日 03:40

Barcelona is a key European tourist destination with many tourist attractions. If you plan to make an economic trip to this coastal city, there are various tips that can assist you get an economical Barcelona flight. cheapo flights

biaakhan 说:
2021年3月30日 19:12

I really appreciate this wonderful post that you have provided for us. I assure this would be beneficial for most of the people. Health Fitness Post

John 111 说:
2021年3月30日 20:13

Great survey. I'm sure you're getting a great response. 澳洲高等教育留学

John 111 说:
2021年4月01日 20:29

Chicago is a popular destination for travelers. It doesn't matter whether you're coming for business or pleasure. This city offers some of the best hospitality, that you will experience anywhere. cheap ticket

John 111 说:
2021年4月06日 01:23

This is a great inspiring article.I am pretty much pleased with your good work.You put really very helpful information. Keep it up. Keep blogging. Looking to reading your next post. 토토갤러리

전설 서구 说:
2021年4月08日 16:14 I really thank you for the valuable info on this great subject and look forward to more great posts. Thanks a lot for enjoying this beauty article with me. I am appreciating it very much! Looking forward to another great article. Good luck to the author! All the best! ดูอนิเมะ
John 111 说:
2021年4月08日 18:03

I definitely enjoying every little bit of it. It is a great website and nice share. I want to thank you. Good job! You guys do a great blog, and have some great contents. Keep up the good work. strongest testosterone booster

전설 서구 说:
2021年4月08日 19:25

I definitely enjoying every little bit of it. It is a great website and nice share. I want to thank you. Good job! You guys do a great blog, and have some great contents. Keep up the good work. also check

John 111 说:
2021年4月09日 00:15

Today it is possible to book cheap travel and explore the world without spending too much. Booking online cheap flights from Canberra to any destination in Australia or overseas is fast and easy. cheapoflights

John 111 说:
2021年4月10日 22:55

I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post. penis enlargement

John 111 说:
2021年4月11日 13:51

Truly, this article is really one of the very best in the history of articles. I am a antique ’Article’ collector and I sometimes read some new articles if I find them interesting. And I found this one pretty fascinating and it should go into my collection. Very good work! 메이저사이트

John 111 说:
2021年4月12日 19:01

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. testogen review

John 111 说:
2021年4月14日 18:45

Cheap Flights Find Cheap Flight For Your Searching for cheap airfare and Last Minte Travel deals your cheap flight deals are almost ready Pay the remaining amount up to 72 hours before your flight's departure. Save money & time on your next flight booking with cheap flights.com Average trip savings calculated based on the price. For domestic flights, mondays showed the highest average airline ticket prices and for international flights, avoid booking on fridays. Find Cheap Flights

John 111 说:
2021年4月23日 12:28

Your website is really cool and this is a great inspiring article. Cuet kuet ruet Admission

John 111 说:
2021年4月23日 12:41

I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work... how to find the dark web

Top SEO 说:
2021年4月24日 12:52

I most likely appreciating each and every bit of it. It is an incredible site and decent impart. I need to much obliged. Great employment! You all do an incredible blog, and have some extraordinary substance. Keep doing awesome. kuliah karyawan

Top SEO 说:
2021年4月24日 13:09

Nice to read your article! I am looking forward to sharing your adventures and experiences. women's clothes

Top SEO 说:
2021年4月24日 13:13

Thanks for a very interesting blog. What else may I get that kind of info written in such a perfect approach? I’ve a undertaking that I am simply now operating on, and I have been at the look out for such info. ロリラブドール

John 111 说:
2021年5月02日 13:10 What a fantabulous post this has been. Never seen this kind of useful post. I am grateful to you and expect more number of posts like these. Thank you very much. Non Woven Fabric Factory
John 111 说:
2021年5月06日 03:14

A very awesome blog post. We are really grateful for your blog post. You will find a lot of approaches after visiting your post. buy psilocin pills online

John 111 说:
2021年5月17日 19:54

I admire this article for the well-researched content and excellent wording. I got so involved in this material that I couldn’t stop reading. I am impressed with your work and skill. Thank you so much. 안전놀이터

John 111 说:
2021年5月21日 18:16

Thank you because you have been willing to share information with us. we will always appreciate all you have done here because I know you are very concerned with our. 먹튀검증

John 111 说:
2021年5月26日 19:07

A bullet proof vest can save your life in the nick of time. If gun fights happen to be a part of your life, you cannot think of getting out there without one of these vests. best place to order firearm

John 111 说:
2021年5月30日 15:04

The capital city of the world's richest country, Doha is the backbone of the Qatar's economy. Literally translated as 'The Big Tree', Doha has been at the center of all the major activities held in and done by Qatar. Being the host of the Asian Games, 2006 brought the city in the limelight, and it has been shining gloriously since then. Filled with an invigorating environment which gives equal importance to the rapid progress and old traditions, one can roam around old souqs and gorgeous malls and see the crux of Doha in both. Alessandro Bazzoni

John 111 说:
2021年5月30日 15:22

Discover the key to overcoming workplaces distractions and working in a more focused and productive way. Marshmallows just may hold the key to getting more done in less time despite the distractions around you from emails, texts and conversations. Alessandro Bazzoni

John 111 说:
2021年5月30日 15:33

Como is a small town that is situated in the Lombardy region of Italy which is located along the Italian Swiss border. This place served as the crossing point between the Central Europe and the Mediterranean Sea. The city is also known for the silk which is produced locally here. Alessandro Bazzoni

John 111 说:
2021年5月30日 15:43

The football equivalent of the Oscars swept into London on Tuesday as the first ever FIFpro awards were announced in front of renowned stars from the worlds of sport, music, screen and even our very own Marc Duffy (but the legality of how the ticket was gain is still under suspicion!) Alessandro Bazzoni

John 111 说:
2021年5月30日 15:55

Insurance Agency Websites, SEO, SEM, Social Media Marketing and Blogging - there is certainly a lot to keep up with these days in terms of staying current and reaching a given target market. Insurance agency marketing should funnel content toward a given target market. A primary step toward this goal is the creation of a quality blog. Once that is accomplished, and to ensure an agency remains ahead of the curve, agents should seriously consider vlogging as an important addition to their insurance agency web marketing strategy. PR Agencies in India

John 111 说:
2021年5月30日 16:04

Although the implants, made out of titanium alloy or ceramic, are now considered the Number 1 option to replace missing teeth but because they are surgically implanted in jaw you may encounter some problems and complications. As with any surgical procedure there are some potential downsides to dental implants that you should be aware of before considering it as an alternative for replacing your missing teeth. Dental Implants in India

John 111 说:
2021年5月31日 23:26

I appreciated your work very thanks 꽁머니사이트

먹튀검증 说:
2021年5月31日 23:49

Your articles are inventive. I am looking forward to reading the plethora of articles that you have linked here. Thumbs up!

마추자먹튀 说:
2021年6月10日 15:04

Great post, you have pointed out some fantastic points , I likewise think this s a very wonderful website.

John 111 说:
2021年6月11日 08:10

This is my first visit to your web journal! We are a group of volunteers and new activities in the same specialty. Website gave us helpful data to work. eco friendly storage bin

John 111 说:
2021年6月12日 12:40

Thanks for a very interesting blog. What else may I get that kind of info written in such a perfect approach? I’ve a undertaking that I am simply now operating on, and I have been at the look out for such info. slot online

John 111 说:
2021年6月15日 01:26

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I'll be subscribing to your feed and I hope you post again soon. Big thanks for the useful info. sewing kit

John 111 说:
2021年6月15日 13:12

I was surfing the Internet for information and came across your blog. I am impressed by the information you have on this blog. It shows how well you understand this subject. dewacasino

John 111 说:
2021年6月16日 12:01

This is my first visit to your web journal! We are a group of volunteers and new activities in the same specialty. Website gave us helpful data to work. earthhershop

Top SEO 说:
2021年6月18日 08:29

check this link. its full of sex education. and also useful in your life. and help in your sex life better porno en paraguay 2021

John 111 说:
2021年6月21日 11:21

This particular papers fabulous, and My spouse and i enjoy each of the perform that you have placed into this. I’m sure that you will be making a really useful place. I has been additionally pleased. Good perform! nextclippingpath

John 111 说:
2021年6月22日 19:51

This blog is so nice to me. I will keep on coming here again and again. Visit my link as well.. extra long cobweb duster

John 111 说:
2021年6月25日 18:07

You make so many great points here that I read your article a couple of times. Your views are in accordance with my own for the most part. This is great content for your readers. 토토사이트검증

John 111 说:
2021年6月26日 18:54

I need to position my website very high in Google both in México luxury courses online

John 111 说:
2021年6月30日 23:18 I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post. 안전놀이터
Top SEO 说:
2021年9月21日 06:37

If you are looking for more information about flat rate locksmith Las Vegas check that right away. Uttarakhand 10th Question Paper

Top SEO 说:
2021年9月28日 14:10

I wanted to thank you for this excellent read!! I definitely loved every little bit of it. I have you bookmarked your site to check out the new stuff you post. Restaurant Business Consultant

MBOSE Board 12th Exa 说:
2021年10月11日 15:16

The Meghalaya Board of School Education has announced the MBOSE HSSLC model paper 2022. The board publishes MBOSE class 12 model papers in pdf format for English, Mathematics, Hindi, Physics, Chemistry, Accounting, History, and other courses. MBOSE Board 12th Exam Pattern 2022 Candidates should download these MBOSE Sample model papers Class 12 and practise for their test since they will gain an understanding of the exam format, such as the types of questions that will be asked, the marking scheme, and so on.

Top SEO 说:
2021年10月14日 16:31

foodbusinessexpert foods which has the foodbusinessexpert affect of physically changing persons chemistry. Once the foodbusinessexpert bodies chemistry has changed which affects emotional and mental association to eating comfort food and relaxation through repeated eating comfort food for through reinforcement of behavior with comfort food the mind learns to relax before it even starts to eat your foodbusinessexpert comfort food and that experience forms mental addicted attachment and behavior. Restaurant Management Tips

Top SEO 说:
2021年10月26日 15:02

When you use a genuine service, you will be able to provide instructions, share materials and choose the formatting style. SBOBET88

Question Paper 2022 说:
2021年11月01日 14:00

They begin their search for such preparation materials on the internet, hoping to find some good Question Papers pdf. So, in order to assist you, Question Paper 2022 Pdf we've compiled a list of the greatest Question Papers, which you can readily download from this page. Students who are studying often wonder which questions are most significant for the board test.

Top SEO 说:
2021年11月02日 14:06

I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work... US Driving license for sale

Top SEO 说:
2021年11月03日 09:33

I definitely enjoying every little bit of it. It is a great website and nice share. I want to thank you. Good job! You guys do a great blog, and have some great contents. Keep up the good work. asian escorts new york

Top SEO 说:
2021年11月03日 14:21

I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. HR System in Cambodia

Top SEO 说:
2021年11月03日 20:32

Thank you for the update, very nice site.. singapore top cleaning hero

John 说:
2021年11月04日 19:01

Nice post! This is a very nice blog that I will definitively come back to more times this year! Thanks for informative post. Cheating Spouse Hacker where to Find and Hire Premium Phone-Spy Expert-Nso group Hire a Hacker

John 说:
2021年11月05日 12:14 I was reading some of your content on this website and I conceive this internet site is really informative ! Keep on putting up. بيع متابعين انستقرام
John 说:
2021年11月06日 13:42

We've all seen sidewalks, driveways, or concrete steps that are crumbling away to dust much sooner than should occur. This could have been prevented simply by using the right material in the first place. There are many different brands and types designed for different applications and even different climates. Using the right material for the job and location makes all the difference in the world, especially when it comes to lasting a lifetime. get more info

John 说:
2021年11月06日 20:05

When it comes to Northern Tools vs Harbor Freight, the only real comparison we need to be concerned about would be those having to do with issues of quality, selection, pricing, and level of customer service you get. After all, if you are going to be spending a lot of money of tools you want to be sure you get questions answered assuming you have them. Better Homes and Gardens

John 说:
2021年11月06日 20:10

Finding the cheapest airfare is as much an art as a science. There are nuances aplenty in this hourly-changing industry. The large travel search sites like Travelocity and Orbitz are no longer your one-stop-shop, though don't think you should avoid them. Those larger sites should still be part of your overall strategy. Travelzoo Dubai

John 说:
2021年11月12日 04:08

If you are tired of losing money betting sports then read on. I am about to show you how essential application of sports betting systems is if you ever want to make another dollar betting on sports. 먹튀검증

John 说:
2021年11月12日 20:07

When your website or blog goes live for the first time, it is exciting. That is until you realize no one but you and your. House Painters West Auckland

John 说:
2021年11月12日 20:11

I see the greatest contents on your blog and I extremely love reading them. Scaffolding Auckland

John 说:
2021年11月12日 20:14

Pretty good post. I just stumbled upon your blog and wanted to say that I have really enjoyed reading your blog posts. Any way I’ll be subscribing to your feed and I hope you post again soon. FIXED ELECTRICAL

Top SEO 说:
2021年11月13日 14:37

Great job for publishing such a beneficial web site. Your web log isn’t only useful but it is additionally really creative too. meru the succubus

Pavzi.com 说:
2021年11月14日 00:26

Pavzi Post brings you breaking news, celebrity gossip, movie reviews, educational resources, career opportunities, gadgets, the economy, social and print media, and much more. Pavzi.com The major idea or goal of this website has been to provide comprehensive information on any issue that may be accessible over the Internet. To ensure that each reader receives what is important and worthwhile on the issue for which they have searched and linked to hear from us.

Top SEO 说:
2021年11月14日 12:32

I like your post. It is good to see you verbalize from the heart and clarity on this important subject can be easily observed... Girly feminine haircut for guys 

Top SEO 说:
2021年11月17日 14:24

Thank you for the update, very nice site.. this pages

Top SEO 说:
2021年11月17日 20:36

Thank you for taking the time to publish this information very useful! Loansbid

Top SEO 说:
2021年11月17日 20:44

Took me time to read all the comments, but I really enjoyed the article. It proved to be Very helpful to me and I am sure to all the commenters here! It’s always nice when you can not only be informed, but also entertained! Moviesflix

Top SEO 说:
2021年11月20日 17:23

Love to read it,Waiting For More new Update and I Already Read your Recent Post its Great Thanks. ženy

Top SEO 说:
2021年11月29日 06:59

This particular papers fabulous, and My spouse and i enjoy each of the perform that you have placed into this. I’m sure that you will be making a really useful place. I has been additionally pleased. Good perform! henna designs

Top SEO 说:
2021年11月29日 20:23

Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!Thanks Nangs Melbourne

Top SEO 说:
2021年12月01日 19:49

Very informative post! There is a lot of information here that can help any business get started with a successful social networking campaign. Zalo.me

jackseo 说:
2021年12月04日 22:30

i love reading this article so beautiful!!great job! 北美代写

Top SEO 说:
2021年12月08日 21:04

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often. ssr movies

Top SEO 说:
2021年12月09日 15:56

That is really nice to hear. thank you for the update and good luck. บาคาร่า

jackseo 说:
2021年12月16日 05:18

I feel really happy to have seen your webpage and look forward to so many more entertaining times reading here. Thanks once more for all the detailscustom embroidered patches

Top SEO 说:
2021年12月27日 13:20

wow, great, I was wondering how to cure acne naturally. and found your site by google, learned a lot, now i’m a bit clear. I’ve bookmark your site and also add rss. keep us updated. fontkeren.net

jackseo 说:
2021年12月31日 04:13

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking. Seo

Top SEO 说:
2022年1月03日 19:25

Amazing knowledge and I like to share this kind of information with my friends and hope they like it they why I do.. https://www.amazon.fr/dp/B09M49R3TX

Top SEO 说:
2022年1月11日 19:49

Amazing knowledge and I like to share this kind of information with my friends and hope they like it they why I do.. hannibalmoweddingphotography

link 说:
2022年1月15日 21:06

This is highly informatics, crisp and clear. I think that everything has been described in systematic manner so that reader could get maximum information and learn many things.

HOW TO CHECK SHUTTER 说:
2022年1月18日 14:50

Thanks for a wonderful share. Your article has proved your hard work and experience you have got in this field. Brilliant .i love it reading. GOD

Top SEO 说:
2022年1月20日 19:16

Hi! This is my first visit to your blog! We are a team of volunteers and new initiatives in the same niche. Blog gave us useful information to work. You have done an amazing job! pk god

Top SEO 说:
2022年1月21日 00:40

I have read all the comments and suggestions posted by the visitors for this article are very fine,We will wait for your next article so only.Thanks! CNBC streaming

Top SEO 说:
2022年1月23日 14:32

Glad to chat your blog, I seem to be forward to more reliable articles and I think we all wish to thank so many good articles, blog to share with us. 메이저놀이터

Top SEO 说:
2022年2月07日 14:35

I was very pleased to find this site.I wanted to thank you for this great read!! I definitely enjoying every little bit of it and I have you bookmarked to check out new stuff you post. computer repair services

Top SEO 说:
2022年2月09日 17:13

I have express a few of the articles on your website now, and I really like your style of blogging. I added it to my favorite’s blog site list and will be checking back soon… digital marketing philadelphia

Top SEO 说:
2022年2月13日 13:00

I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. baddie girl aesthetic

바둑이 说:
2022年2月14日 15:45

It's superior, however , check out material at the street address.

Top SEO 说:
2022年2月15日 18:12

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking. yard service near me 77429

Top SEO 说:
2022年2月16日 16:11

A very awesome blog post. We are really grateful for your blog post. combat, law enforcement You will find a lot of approaches after visiting your post. I was exactly searching for. Thanks for such post and please keep it up. Great work. North American Bancard Agent Program

how to become a paym 说:
2022年2月21日 14:14

I prefer merely excellent resources and you can see these in

how to be a merchant 说:
2022年2月22日 22:17

You made such an interesting piece to read, giving every subject enlightenment for us to gain knowledge. Thanks for sharing the such information with us to read this...

토토사이트 说:
2022年2月23日 16:12

Amazing, this is great as you want to learn more, I invite to This is my page.

Merchant Services Sa 说:
2022年2月24日 03:02

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place

become a merchant pr 说:
2022年2月26日 02:58

If more people that write articles really concerned themselves with writing great content like you, more readers would be interested in their writings. Thank you for caring about your content.

How to Become a Cred 说:
2022年2月28日 18:12

This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the enjoyment here! keep up the good work

Top SEO 说:
2022年3月03日 14:52

I am definitely enjoying your website. You definitely have some great insight and great stories. psychic for love houston tx

theweekndmerchshop 说:
2022年3月04日 13:52

This is a very nice blog and learned more knowledge to read this post thanks for sharing this informative post.

North American Banca 说:
2022年3月05日 18:59

Very useful post. This is my first time i visit here. I found so many interesting stuff in your blog especially its discussion. Really its great article. Keep it up.

Top SEO 说:
2022年3月07日 14:57

Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well. I wanted to thank you for this websites! Thanks for sharing. Great websites! SEO content

Top SEO 说:
2022年3月12日 21:02

You make so many great points here that I read your article a couple of times. Your views are in accordance with my own for the most part. This is great content for your readers. ambbet

voyance tel 说:
2022年3月13日 00:12

Thanks for posting this info. I just want to let you know that I just check out your site and I find it very interesting and informative. I can't wait to read lots of your posts

먹튀검증 说:
2022年3月23日 16:07

You ought to basically fantastic not to mention solid advice, which means notice:

SMTP relay service p 说:
2022年3月26日 05:00

It was wondering if I could use this write-up on my other website, I will link it back to your website though.Great Thanks.

Top SEO 说:
2022年3月28日 05:11

Well we really like to visit this site, many useful information we can get here. cash app

SMTP relay service p 说:
2022年3月30日 21:57

The emails server comes with certain limitations on the number of emails sent in a day or hour. Furthermore, the bigger the campaign, the lower rate of delivery may get. Ergo, the selection of the right bulk email service becomes critical for the success of your email marketing campaign

bobsredmill recipes 说:
2022年4月06日 16:04

My friend mentioned to me your blog, so I thought I’d read it for myself. Very interesting insights, will be back for more!

SEO 说:
2022年4月18日 02:31

Thanks for sharing nice information with us. i like your post and all you share with us is uptodate and quite informative, i would like to bookmark the page so i can come here again to read you, as you have done a wonderful job. product design agency

abdul 说:
2022年4月22日 19:20

This particular papers fabulous, and My spouse and i enjoy each of the perform that you have placed into this. I’m sure that you will be making a really useful place. I has been additionally pleased. Good perform! Best Discount Broker In India

DEEP WEB 说:
2022年4月28日 23:26

<a href="https://deepweb.blog/">deep web</a> I think this is an informative post and it is very useful and knowledgeable…

login 说:
2022年5月04日 01:28

This blog is basically wonderful and data and info right here is so outstanding

ufabet 说:
2022年5月07日 18:05

Your post got my attention and shows me different perception for how we should boost our site.

portable cell phone 说:
2022年5月15日 04:39

Thank the seller for the rapidly supply and quality of the goods! recommend!

healthy seasonal rec 说:
2022年5月16日 00:23

I have ever seen. The product comes with a very lovely package, magnetic top and world-class packaging. It's a good structure and is actually proud. They are honest people, and they offer honest services and products at affordable rates

seo 说:
2022年5月31日 20:38

Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!THANKS!!!!!! บาคาร่าออนไลน์

SEO 说:
2022年6月05日 17:09

Thanks For sharing this Superb article.I use this Article to show my assignment in college.it is useful For me Great Work. 가라오케

SEO 说:
2022年6月06日 16:05 What a fantabulous post this has been. Never seen this kind of useful post. I am grateful to you and expect more number of posts like these. Thank you very much. 우리카지노
SEO 说:
2022年6月07日 16:27

The article looks magnificent, but it would be beneficial if you can share more about the suchlike subjects in the future. Keep posting. https://www.shoplocaldirectoryinc.com/unit-4-flynn-row-fenton-industrial-estate-stoke-on-trent-st4-2se/professional-services/sure-signal-solutions

khatribaba 说:
2022年6月08日 15:39

Hey what a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this. Thank you very much and will look for more postings from you. <a href="https://www.facebook.com/ibmseopk/">IBMSEO</a>

khatribaba 说:
2022年6月08日 15:40

Hey what a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this. Thank you very much and will look for more postings from you. <a href="https://www.facebook.com/ibmseopk/">IBMSEO</a>

khatribaba 说:
2022年6月08日 16:14

Hey what a brilliant post I have come across and believe me I have been searching out for this similar kind of post for past a week and hardly came across this. Thank you very much and will look for more postings from you. <a href="https://www.facebook.com/ibmseopk/">IBMSEO</a>

SEO 说:
2022年6月08日 23:01

Oppo Reno3 Youth Specs, Reviews and Price in Pakistan, MLT World offers all information about this phone.

abdul 说:
2022年6月12日 16:30

This is a very nice blog and learned more knowledge to read this post thanks for sharing this informative post. شركة تنظيف بجدة

SEO 说:
2022年6月12日 19:15

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking. https://www.flickr.com/people/195802626@N05/

abdul 说:
2022年6月12日 21:18

Please share more like that. Free Dirt Service

seoexpertosim 说:
2022年6月13日 22:31

Excellent information on your blog, thank you for taking the time to share with us. Amazing insight you have on this, it's nice to find a website that details so much information about different artists.<a href="https://seoexpertosim.com/">Best SEO Expert In Bangladesh</a>

SEO 说:
2022年6月15日 16:32 The website is looking bit flashy and it catches the visitors eyes. Design is pretty simple and a good user friendly interface. สล็อต เว็บตรง ขั้นต่ำ 1 บาท
SEO 说:
2022年6月25日 22:50 You understand your projects stand out of the crowd. There is something unique about them. It seems to me all of them are brilliant. http://rijswijk.bloggerbags.com/15522989/comment-devenir-auto-entrepreneur-avec-startupo
SEO 说:
2022年6月27日 19:07

I am continually amazed by the amount of information available on this subject. What you presented was well researched and well worded in order to get your stand on this across to all your readers. slot online

SEO 说:
2022年6月27日 20:25

Great post, you have pointed out some excellent points, I as well believe this is a very superb website. slot tembak ikan

dafabet55 说:
2022年6月30日 20:32

I would like to say that this blog is really convincing, because it made me win the big lottery

Odin77 说:
2022年7月06日 23:45

i have bookmarked your blog, the articles are mannerism augmented than substitute associated blogs.. thanks for a cordial blog!

osimkumar92 说:
2022年7月07日 12:40

howdy was simply checking whether you minded a remark. i like your site and the thme you picked is super. I will be back. <a href="https://seoexpertosim.com">Best SEO Expert In Bangladesh</a>

seo 说:
2022年7月13日 20:21

The matter you we highlighted above is surely value able for anyone to workout. the concept of your article is very true and It will result in a positive way. poker online

Buy YouTube subscrib 说:
2022年7月25日 21:09

It was wondering if I could use this write-up on my other website, I will link it back to your website though.Great Thanks.

Get the facts 说:
2022年7月29日 18:12

As always your articles do inspire me. Every single detail you have posted was great.

Online Marketing Age 说:
2022年7月30日 03:03

I have a similar interest this is my page read everything carefully and let me know what you think

maid service dubai 说:
2022年8月01日 17:03

Don’t have time to thoroughly clean your home? Between work and family, you only have few free moments. You don’t want to spend it vacuuming, dusting and tidying up your space, you need a local, trusted home cleaning solution. Hello Cleaner is a professional cleaning company in Dubai, we treat your home like it’s ours. Our specialty is cleaning, and your satisfaction is guaranteed.

cleaning services du 说:
2022年8月01日 17:03

Our cleaners wear clean gloves, shoe covers, and use new microfiber cloth at each appointment. We clean hard to reach areas. We use hospital grade disinfectants and steam machine to sanitize the surfaces. Our towels are laundered and sanitized at a professional facility to kill germs and bacteria; our cleaning equipment is sanitized daily. We provide one-time cleaning to recurring services, we tailor our services to your needs. Book online or Call us today.

cleaning company dub 说:
2022年8月01日 17:05

House cleaning can be a chore and we know you have many choices when you consider hiring a maid service. Because of that, we are constantly thriving to improve our already high standards, to have you see us as the absolute best in the industry. It’s not enough to have trust in the cleaning crew that you let into your home, but you also have to trust that they will perform a first-class cleaning job for you. Putting our employees through a rigorous training program, ensures each member of our cleaning team understands their role, and how it relates to the overall performance of the team.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter