def setUpClass(cls):

        block = [{"volume_id": "sample_id",
                  "delete_on_termination": "0", "device_name": "vda"}]

        server_request_object = CreateServer(
            name='cctestserver',
            flavor_ref='2',
            image_ref='sample-image-ref',
            block_device_mapping=block)

        cls.server_request_json = server_request_object.serialize('json')
    def setUpClass(cls):

        block = [{
            "volume_id": "sample_id",
            "delete_on_termination": "0",
            "device_name": "vda"
        }]

        server_request_object = CreateServer(name='cctestserver',
                                             flavor_ref='2',
                                             image_ref='sample-image-ref',
                                             block_device_mapping=block)

        cls.server_request_json = server_request_object.serialize('json')
Beispiel #3
0
 def _obj_to_json(self):
     server = CreateServer(name=self.name,
                           imageRef=self.image_ref,
                           flavorRef=self.flavor_ref,
                           personality=self.personality,
                           metadata=self.metadata,
                           diskConfig=self.disk_config,
                           networks=self.networks)
     server_json = server._obj_to_json()
     body = {'type': 'launch_server', 'args': json.loads(server_json)}
     if self.load_balancers:
         body['args']['loadBalancers'] = self.load_balancers
     #if self.disk_config:
     #    del body['args']['server']['diskConfig']
     return json.dumps(body)
Beispiel #4
0
 def _obj_to_json(self):
     server = CreateServer(name=self.name, imageRef=self.image_ref,
                           flavorRef=self.flavor_ref,
                           personality=self.personality,
                           metadata=self.metadata,
                           diskConfig=self.disk_config,
                           networks=self.networks)
     server_json = server._obj_to_json()
     body = {'type': 'launch_server',
             'args': json.loads(server_json)}
     if self.load_balancers:
         body['args']['loadBalancers'] = self.load_balancers
     #if self.disk_config:
     #    del body['args']['server']['diskConfig']
     return json.dumps(body)
    def setUpClass(cls):

        block = [{"volume_id": "sample_id",
                  "delete_on_termination": "0", "device_name": "vda"}]

        server_request_object = CreateServer(
            name='cctestserver',
            flavor_ref='2',
            image_ref='sample-image-ref',
            block_device_mapping=block)

        cls.server_request = server_request_object.serialize('xml')
        root = ET.fromstring(cls.server_request)
        cls.server_request_xml = root.attrib
        cls.server_request_xml_child = root.getchildren()
Beispiel #6
0
    def _obj_to_json(self):
        kwargs = {
            "name": self.name,
            "imageRef": self.image_ref,
            "flavorRef": self.flavor_ref,
            "personality": self.personality,
            "metadata": self.metadata,
            "diskConfig": self.disk_config,
            "networks": self.networks
        }
        server_json = CreateServer(**kwargs)._obj_to_json()
        server_json = json.loads(server_json)
        # allow null args specifically - cloudcafe removes any that are None
        for k, v in kwargs.iteritems():
            if v is null:
                server_json['server'][k] = None

        # TODO: pass this in kwargs once Cloudcafe is updated so that
        # CreateServer takes a block_device_mapping kwarg
        if self.block_device_mapping:
            server_json['server'][
                'block_device_mapping'] = self.block_device_mapping

        body = {'type': 'launch_server', 'args': server_json}
        if self.load_balancers:
            body['args']['loadBalancers'] = self.load_balancers

        return json.dumps(body)
    def setUpClass(cls):

        block = [{
            "volume_id": "sample_id",
            "delete_on_termination": "0",
            "device_name": "vda"
        }]

        server_request_object = CreateServer(name='cctestserver',
                                             flavor_ref='2',
                                             image_ref='sample-image-ref',
                                             block_device_mapping=block)

        cls.server_request = server_request_object.serialize('xml')
        root = ET.fromstring(cls.server_request)
        cls.server_request_xml = root.attrib
        cls.server_request_xml_child = root.getchildren()
Beispiel #8
0
    def create_server(self,
                      name,
                      image_ref,
                      flavor_ref,
                      personality=None,
                      metadata=None,
                      accessIPv4=None,
                      accessIPv6=None,
                      disk_config=None,
                      networks=None,
                      admin_pass=None,
                      key_name=None,
                      requestslib_kwargs=None):
        """
        @summary: Creates an instance of a server given the
         provided parameters
        @param name: Name of the server
        @type name: String
        @param image_ref: Identifier for the image used to build the server
        @type image_ref: String
        @param flavor_ref: Identifier for the flavor used to build the server
        @type flavor_ref: String
        @param metadata: A dictionary of values to be used as server metadata
        @type meta: Dictionary
        @param personality: A list of dictionaries for files to be
         injected into the server.
        @type personality: List
        @param accessIPv4: IPv4 address for the server.
        @type accessIPv4: String
        @param accessIPv6: IPv6 address for the server.
        @type accessIPv6: String
        @param disk_config: MANUAL/AUTO/None
        @type disk_config: String
        @return: Response Object containing response code and
         the server domain object
        @rtype: Requests.response
        """

        server_request_object = CreateServer(name=name,
                                             flavorRef=flavor_ref,
                                             imageRef=image_ref,
                                             personality=personality,
                                             metadata=metadata,
                                             accessIPv4=accessIPv4,
                                             accessIPv6=accessIPv6,
                                             diskConfig=disk_config,
                                             networks=networks,
                                             adminPass=admin_pass,
                                             key_name=key_name)

        url = '{base_url}/servers'.format(base_url=self.url)
        resp = self.request('POST',
                            url,
                            response_entity_type=Server,
                            request_entity=server_request_object,
                            requestslib_kwargs=requestslib_kwargs)
        return resp
Beispiel #9
0
    def create_server(self,
                      name,
                      image_ref,
                      flavor_ref,
                      personality=None,
                      user_data=None,
                      metadata=None,
                      accessIPv4=None,
                      accessIPv6=None,
                      disk_config=None,
                      networks=None,
                      admin_pass=None,
                      key_name=None,
                      config_drive=None,
                      scheduler_hints=None,
                      requestslib_kwargs=None,
                      block_device_mapping=None):
        """
        @summary: Creates an instance of a server given the
         provided parameters
        @param name: Name of the server
        @type name: String
        @param image_ref: Identifier for the image used to build the server
        @type image_ref: String
        @param flavor_ref: Identifier for the flavor used to build the server
        @type flavor_ref: String
        @param metadata: A dictionary of values to be used as server metadata
        @type meta: Dictionary
        @param personality: A list of dictionaries for files to be
         injected into the server.
        @type personality: List
        @param block_device_mapping: A list of dictionaries needed for boot
         from volume feature
        @type block_device_mapping: List
        @param user_data: Config Init User data
        @type user_data: String
        @param accessIPv4: IPv4 address for the server.
        @type accessIPv4: String
        @param accessIPv6: IPv6 address for the server.
        @type accessIPv6: String
        @param disk_config: MANUAL/AUTO/None
        @type disk_config: String
        @param config_drive: false/true
        @type config_drive: String
        @return: Response Object containing response code and
         the server domain object
        @rtype: Requests.response
        """

        default_files = self.config.default_injected_files
        # Encode the file contents
        for personality_file in default_files:
            personality_file['contents'] = base64.b64encode(
                personality_file['contents'])

        if personality is None:
            personality = default_files
        else:
            personality += default_files

        server_request_object = CreateServer(
            name=name,
            flavor_ref=flavor_ref,
            image_ref=image_ref,
            personality=personality,
            block_device_mapping=block_device_mapping,
            user_data=user_data,
            metadata=metadata,
            accessIPv4=accessIPv4,
            accessIPv6=accessIPv6,
            disk_config=disk_config,
            networks=networks,
            admin_pass=admin_pass,
            key_name=key_name,
            config_drive=config_drive,
            scheduler_hints=scheduler_hints)

        url = '{base_url}/servers'.format(base_url=self.url)
        resp = self.request('POST',
                            url,
                            response_entity_type=Server,
                            request_entity=server_request_object,
                            requestslib_kwargs=requestslib_kwargs)
        return resp