def modify_server(self, UUID, **kwargs):
        """
        modify_server allows updating the server's updateable_fields.

        Note: Server's IP-addresses and Storages are managed by their own add/remove methods.
        """
        body = dict()
        body['server'] = {}
        for arg in kwargs:
            if arg not in Server.updateable_fields:
                Exception('{0} is not an updateable field'.format(arg))
            body['server'][arg] = kwargs[arg]

        res = self.request('PUT', '/server/{0}'.format(UUID), body)
        server = res['server']

        # Populate subobjects
        IPAddresses = IPAddress._create_ip_address_objs(server.pop('ip_addresses'),
                                                          cloud_manager=self)

        storages = Storage._create_storage_objs(server.pop('storage_devices'),
                                                cloud_manager=self)

        return Server(
            server,
            ip_addresses=IPAddresses,
            storage_devices=storages,
            populated=True,
            cloud_manager=self
        )
示例#2
0
    def modify_server(self, UUID, **kwargs):
        """
        modify_server allows updating the server's updateable_fields.

        Note: Server's IP-addresses and Storages are managed by their own add/remove methods.
        """
        body = dict()
        body['server'] = {}
        for arg in kwargs:
            if arg not in Server.updateable_fields:
                Exception('{0} is not an updateable field'.format(arg))
            body['server'][arg] = kwargs[arg]

        res = self.put_request('/server/{0}'.format(UUID), body)
        server = res['server']

        # Populate subobjects
        IPAddresses = IPAddress._create_ip_address_objs(
            server.pop('ip_addresses'), cloud_manager=self)

        storages = Storage._create_storage_objs(server.pop('storage_devices'),
                                                cloud_manager=self)

        return Server(server,
                      ip_addresses=IPAddresses,
                      storage_devices=storages,
                      populated=True,
                      cloud_manager=self)
 def get_ips(self):
     """
     Get all IPAddress objects from the API.
     """
     res = self.get_request('/ip_address')
     IPs = IPAddress._create_ip_address_objs(res['ip_addresses'], cloud_manager=self)
     return IPs
示例#4
0
 def get_ips(self, ignore_ips_without_server=False):
     """
     Get all IPAddress objects from the API.
     """
     res = self.get_request('/ip_address')
     IPs = IPAddress._create_ip_address_objs(res['ip_addresses'], self,
                                             ignore_ips_without_server)
     return IPs
示例#5
0
 def get_ips(self):
     """
     Get all IPAddress objects from the API.
     """
     res = self.get_request('/ip_address')
     IPs = IPAddress._create_ip_address_objs(res['ip_addresses'],
                                             cloud_manager=self)
     return IPs
示例#6
0
    def get_server_data(self, uuid):
        server_data = {}
        servers = self.read_json_data("server_populated").get("servers").get(
            "server")
        for server in servers:
            if server.get("uuid") == uuid:
                server_data = server
        IPAddresses = IPAddress._create_ip_address_objs(
            server.pop("ip_addresses"), cloud_manager=self)

        storages = Storage._create_storage_objs(server.pop("storage_devices"),
                                                cloud_manager=self)
        return server_data, IPAddresses, storages
    def _handle_server_subobjs(cls, server, cloud_manager):
        ip_data = server.pop('ip_addresses', None)
        storage_data = server.pop('storage_devices', None)
        tags = server.pop('tags', None)

        if ip_data:
            ip_addresses = IPAddress._create_ip_address_objs(ip_data, cloud_manager=cloud_manager)
            server['ip_addresses'] = ip_addresses

        if storage_data:
            storages = Storage._create_storage_objs(storage_data, cloud_manager=cloud_manager)
            server['storage_devices'] = storages

        if tags and 'tag' in tags:
            server['tags'] = tags['tag']
示例#8
0
    def _handle_server_subobjs(cls, server, cloud_manager):
        ip_data = server.pop('ip_addresses', None)
        storage_data = server.pop('storage_devices', None)
        tags = server.pop('tags', None)

        if ip_data:
            ip_addresses = IPAddress._create_ip_address_objs(ip_data, cloud_manager=cloud_manager)
            server['ip_addresses'] = ip_addresses

        if storage_data:
            storages = Storage._create_storage_objs(storage_data, cloud_manager=cloud_manager)
            server['storage_devices'] = storages

        if tags and 'tag' in tags:
            server['tags'] = tags['tag']
    def get_server_data(self, UUID):
        """
        Return '/server/uuid' data in Python dict.

        Creates object representations of any IP-address and Storage.
        """
        data = self.get_request('/server/{0}'.format(UUID))
        server = data['server']

        # Populate subobjects
        IPAddresses = IPAddress._create_ip_address_objs(server.pop('ip_addresses'),
                                                          cloud_manager=self)

        storages = Storage._create_storage_objs(server.pop('storage_devices'),
                                                cloud_manager=self)

        return server, IPAddresses, storages
示例#10
0
    def get_server_data(self, UUID):
        """
        Return '/server/uuid' data in Python dict.

        Creates object representations of any IP-address and Storage.
        """
        data = self.get_request('/server/{0}'.format(UUID))
        server = data['server']

        # Populate subobjects
        IPAddresses = IPAddress._create_ip_address_objs(
            server.pop('ip_addresses'), cloud_manager=self)

        storages = Storage._create_storage_objs(server.pop('storage_devices'),
                                                cloud_manager=self)

        return server, IPAddresses, storages
示例#11
0
 def get_ips(self, ignore_ips_without_server=False):
     data = self.read_json_data("ip_address")
     IPs = IPAddress._create_ip_address_objs(data.get("ip_addresses"), self,
                                             ignore_ips_without_server)
     return IPs