Exemple #1
0
def serialize_nova_flavor(flavor, updated_at=None):
    if hasattr(flavor, "to_dict"):
        serialized = {k: v for k, v in flavor.to_dict().items()
                      if k not in ("links")}
        serialized["extra_specs"] = flavor.get_keys()

        serialized[FLAVOR_ACCESS_FIELD] = _get_flavor_access(flavor)
    else:
        # This is a versioned flavor notification object
        serialized = copy.deepcopy(flavor)
        # Flavorid is a uuid like string.
        serialized['id'] = serialized['flavorid']
        # Extra specs and projects are added by update operation
        serialized['extra_specs'] = serialized.get('extra_specs') or {}
        serialized['projects'] = serialized.get('projects')

        # For consistent with the Flavor API response, we need to remove some
        # fields, and rename some fields key.
        for item in FLAVOR_BLACKLISTED_FIELDS:
            try:
                serialized.pop(item)
            except KeyError:
                pass

        for key, value in FLAVOR_FIELDS_MAP.items():
            try:
                serialized[value] = serialized.pop(key)
            except KeyError:
                pass

    if not serialized.get('updated_at'):
        serialized['updated_at'] = updated_at or utils.get_now_str()

    return serialized
Exemple #2
0
def serialize_nova_flavor(flavor, updated_at=None):
    if hasattr(flavor, "to_dict"):
        serialized = {k: v for k, v in flavor.to_dict().items()
                      if k not in ("links")}
        serialized["extra_specs"] = flavor.get_keys()

        serialized[FLAVOR_ACCESS_FIELD] = _get_flavor_access(flavor)
    else:
        # This is a versioned flavor notification object
        serialized = copy.deepcopy(flavor)
        # Flavorid is a uuid like string.
        serialized['id'] = serialized['flavorid']
        # Extra specs and projects are added by update operation
        serialized['extra_specs'] = serialized.get('extra_specs') or {}
        serialized['projects'] = serialized.get('projects')

        # For consistent with the Flavor API response, we need to remove some
        # fields, and rename some fields key.
        for item in FLAVOR_BLACKLISTED_FIELDS:
            try:
                serialized.pop(item)
            except KeyError:
                pass

        for key, value in FLAVOR_FIELDS_MAP.items():
            try:
                serialized[value] = serialized.pop(key)
            except KeyError:
                pass

    if not serialized.get('updated_at'):
        serialized['updated_at'] = updated_at or utils.get_now_str()

    return serialized
def serialize_network(network, updated_at=None):
    serialized = copy.deepcopy(network)
    # TODO(sjmc7): Once subnets are added, look at whether or not to
    # leave this in dependent on what notifications are received
    serialized.pop('subnets')
    # There are no times in network requests, so we'll slap the current
    # time on for the sake of argument
    serialized['updated_at'] = updated_at or utils.get_now_str()
    return serialized
Exemple #4
0
def serialize_nova_flavor(flavor, updated_at=None):
    serialized = {k: v for k, v in six.iteritems(flavor.to_dict())
                  if k not in ("links")}
    serialized["extra_specs"] = flavor.get_keys()

    serialized[FLAVOR_ACCESS_FIELD] = _get_flavor_access(flavor)

    if not getattr(flavor, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    return serialized
Exemple #5
0
def serialize_nova_flavor(flavor, updated_at=None):
    serialized = {
        k: v
        for k, v in six.iteritems(flavor.to_dict()) if k not in ("links")
    }
    serialized["extra_specs"] = flavor.get_keys()

    serialized[FLAVOR_ACCESS_FIELD] = _get_flavor_access(flavor)

    if not getattr(flavor, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    return serialized
Exemple #6
0
    def create(self, event_type, payload, timestamp):
        server_group = deepcopy(payload)
        server_group['id'] = server_group.pop('server_group_id')
        server_group['metadata'] = {}
        server_group['members'] = []
        server_group['updated_at'] = utils.get_now_str()

        LOG.debug("creating nova server group "
                  "information for %s", server_group['id'])
        version = self.get_version(server_group, timestamp)
        self.index_helper.save_document(server_group, version=version)
        return pipeline.IndexItem(self.index_helper.plugin, event_type,
                                  payload, server_group)
def serialize_nova_hypervisor(hypervisor, updated_at=None):
    serialized = hypervisor.to_dict()
    # The id for hypervisor is an integer, should be changed to
    # string.
    serialized['id'] = str(serialized['id'])
    serialized['cpu_info'] = json.loads(serialized['cpu_info'])
    if not getattr(hypervisor, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    # TODO(lyj): Remove this once hypervisor notifications supported.
    for key in ['running_vms', 'vcpus_used', 'memory_mb_used', 'free_ram_mb',
                'free_disk_gb', 'local_gb_used', 'current_workload']:
        if key in serialized:
            serialized.pop(key)
    return serialized
    def create(self, event_type, payload, timestamp):
        server_group = deepcopy(payload)
        server_group['id'] = server_group.pop('server_group_id')
        server_group['metadata'] = {}
        server_group['members'] = []
        server_group['updated_at'] = utils.get_now_str()

        LOG.debug("creating nova server group "
                  "information for %s", server_group['id'])
        version = self.get_version(server_group, timestamp)
        self.index_helper.save_document(server_group, version=version)
        return pipeline.IndexItem(self.index_helper.plugin,
                                  event_type,
                                  payload,
                                  server_group)
def serialize_nova_hypervisor(hypervisor, updated_at=None):
    serialized = hypervisor.to_dict()
    # The id for hypervisor is an integer, should be changed to
    # string.
    serialized['id'] = str(serialized['id'])
    serialized['cpu_info'] = json.loads(serialized['cpu_info'])
    if not getattr(hypervisor, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    # TODO(lyj): Remove this once hypervisor notifications supported.
    for key in [
            'running_vms', 'vcpus_used', 'memory_mb_used', 'free_ram_mb',
            'free_disk_gb', 'local_gb_used', 'current_workload'
    ]:
        if key in serialized:
            serialized.pop(key)
    return serialized
Exemple #10
0
def serialize_nova_hypervisor(hypervisor, updated_at=None):
    serialized = hypervisor.to_dict()
    # The id for hypervisor is an integer, should be changed to
    # string.
    serialized['id'] = str(serialized['id'])
    # The 'cpu_info' field of hypervisor has changed from string
    # to JSON object in microversion 2.28, we should be able to
    # deal with JSON object here.
    if not isinstance(serialized['cpu_info'], dict):
        serialized['cpu_info'] = jsonutils.loads(serialized['cpu_info'])
    if not getattr(hypervisor, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    # TODO(lyj): Remove this once hypervisor notifications supported.
    for key in ['running_vms', 'vcpus_used', 'memory_mb_used', 'free_ram_mb',
                'free_disk_gb', 'local_gb_used', 'current_workload']:
        if key in serialized:
            serialized.pop(key)
    return serialized
Exemple #11
0
def serialize_nova_hypervisor(hypervisor, updated_at=None):
    serialized = hypervisor.to_dict()
    # The id for hypervisor is an integer, should be changed to
    # string.
    serialized['id'] = str(serialized['id'])
    # The 'cpu_info' field of hypervisor has changed from string
    # to JSON object in microversion 2.28, we should be able to
    # deal with JSON object here.
    if not isinstance(serialized['cpu_info'], dict):
        serialized['cpu_info'] = jsonutils.loads(serialized['cpu_info'])
    if not getattr(hypervisor, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    # TODO(lyj): Remove this once hypervisor notifications supported.
    for key in ['running_vms', 'vcpus_used', 'memory_mb_used', 'free_ram_mb',
                'free_disk_gb', 'local_gb_used', 'current_workload']:
        if key in serialized:
            serialized.pop(key)
    return serialized
Exemple #12
0
def serialize_nova_servergroup(servergroup, updated_at=None):
    serialized = servergroup.to_dict()
    if not getattr(servergroup, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    return serialized
Exemple #13
0
def serialize_nova_servergroup(servergroup, updated_at=None):
    serialized = servergroup.to_dict()
    if not getattr(servergroup, 'updated_at', None):
        serialized['updated_at'] = updated_at or utils.get_now_str()
    return serialized
def serialize_port(port, updated_at=None):
    serialized = copy.deepcopy(port)
    serialized['updated_at'] = updated_at or utils.get_now_str()
    return serialized
Exemple #15
0
def serialize_security_group(sec_group, updated_at=None):
    serialized = copy.deepcopy(sec_group)
    if 'updated_at' not in sec_group:
        serialized['updated_at'] = updated_at or utils.get_now_str()
    serialized['project_id'] = serialized['tenant_id']
    return serialized
Exemple #16
0
def serialize_floatingip(fip, updated_at=None):
    serialized = copy.deepcopy(fip)
    if 'updated_at' not in fip:
        serialized['updated_at'] = updated_at or utils.get_now_str()
    serialized['project_id'] = serialized['tenant_id']
    return serialized
Exemple #17
0
def serialize_router(router, updated_at=None):
    serialized = copy.deepcopy(router)
    if 'updated_at' not in router:
        serialized['updated_at'] = updated_at or utils.get_now_str()
    serialized['project_id'] = serialized['tenant_id']
    return serialized