| # Licensed to the Apache Software Foundation (ASF) under one or more |
| # contributor license agreements. See the NOTICE file distributed with |
| # this work for additional information regarding copyright ownership. |
| # The ASF licenses this file to You under the Apache License, Version 2.0 |
| # (the "License"); you may not use this file except in compliance with |
| # the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| """ |
| ServerLove Driver |
| """ |
| |
| from libcloud.compute.types import Provider |
| from libcloud.compute.drivers.elasticstack import ( |
| ElasticStackBaseConnection, |
| ElasticStackBaseNodeDriver, |
| ) |
| |
| # API end-points |
| API_ENDPOINTS = { |
| "uk-1": { |
| "name": "United Kingdom, Manchester", |
| "country": "United Kingdom", |
| "host": "api.z1-man.serverlove.com", |
| } |
| } |
| |
| # Default API end-point for the base connection class. |
| DEFAULT_ENDPOINT = "uk-1" |
| |
| # Retrieved from http://www.serverlove.com/cloud-server-faqs/api-questions/ |
| STANDARD_DRIVES = { |
| "679f5f44-0be7-4745-a658-cccd4334c1aa": { |
| "uuid": "679f5f44-0be7-4745-a658-cccd4334c1aa", |
| "description": "CentOS 5.5", |
| "size_gunzipped": "1GB", |
| "supports_deployment": True, |
| }, |
| "5f2e0e29-2937-42b9-b362-d2d07eddbdeb": { |
| "uuid": "5f2e0e29-2937-42b9-b362-d2d07eddbdeb", |
| "description": "Ubuntu Linux 10.04", |
| "size_gunzipped": "1GB", |
| "supports_deployment": True, |
| }, |
| "5795b68f-ed26-4639-b41d-c93235062b6b": { |
| "uuid": "5795b68f-ed26-4639-b41d-c93235062b6b", |
| "description": "Debian Linux 5", |
| "size_gunzipped": "1GB", |
| "supports_deployment": True, |
| }, |
| "41993a02-0b22-4e49-bb47-0aa8975217e4": { |
| "uuid": "41993a02-0b22-4e49-bb47-0aa8975217e4", |
| "description": "Windows Server 2008 R2 Standard", |
| "size_gunzipped": "15GB", |
| "supports_deployment": False, |
| }, |
| "85623ca1-9c2a-4398-a771-9a43c347e86b": { |
| "uuid": "85623ca1-9c2a-4398-a771-9a43c347e86b", |
| "description": "Windows Web Server 2008 R2", |
| "size_gunzipped": "15GB", |
| "supports_deployment": False, |
| }, |
| } |
| |
| |
| class ServerLoveConnection(ElasticStackBaseConnection): |
| host = API_ENDPOINTS[DEFAULT_ENDPOINT]["host"] |
| |
| |
| class ServerLoveNodeDriver(ElasticStackBaseNodeDriver): |
| type = Provider.SERVERLOVE |
| api_name = "serverlove" |
| website = "http://www.serverlove.com/" |
| name = "ServerLove" |
| connectionCls = ServerLoveConnection |
| features = {"create_node": ["generates_password"]} |
| _standard_drives = STANDARD_DRIVES |