コード例 #1
0
 def save(self, *args, **kwargs):  # noqa
     if not self.summary:
         self.summary = ''
         prev_release = self.previous()
         # compare this build to the previous build
         old_build = prev_release.build if prev_release else None
         old_config = prev_release.config if prev_release else None
         old_limit = prev_release.config.limit if prev_release else None
         # if the build changed, log it and who pushed it
         if self.version == 1:
             self.summary += "{} created initial release".format(
                 self.app.owner)
         elif self.build != old_build:
             if self.build.sha:
                 self.summary += "{} deployed {}".format(
                     self.build.owner, self.build.sha[:7])
             else:
                 self.summary += "{} deployed {}".format(
                     self.build.owner, self.build.image)
         # if the config data changed, log the dict diff
         if self.config != old_config:
             dict1 = self.config.values
             dict2 = old_config.values if old_config else {}
             diff = dict_diff(dict1, dict2)
             # try to be as succinct as possible
             added = ', '.join(k for k in diff.get('added', {}))
             added = 'added ' + added if added else ''
             changed = ', '.join(k for k in diff.get('changed', {}))
             changed = 'changed ' + changed if changed else ''
             deleted = ', '.join(k for k in diff.get('deleted', {}))
             deleted = 'deleted ' + deleted if deleted else ''
             changes = ', '.join(i for i in (added, changed, deleted) if i)
             if changes:
                 if self.summary:
                     self.summary += ' and '
                 self.summary += "{} {}".format(self.config.owner, changes)
         # if the limit changes, log the dict diff
         if self.config.limit != old_limit:
             changes = []
             old_mem = old_limit.memory if old_limit else {}
             diff = dict_diff(self.config.limit.memory, old_mem)
             if diff.get('added') or diff.get('changed') or diff.get(
                     'deleted'):
                 changes.append('memory')
             old_cpu = old_limit.cpu if old_limit else {}
             diff = dict_diff(self.config.limit.cpu, old_cpu)
             if diff.get('added') or diff.get('changed') or diff.get(
                     'deleted'):
                 changes.append('cpu')
             if changes:
                 changes = 'changed limits for ' + ', '.join(changes)
                 self.summary += "{} {}".format(self.config.owner, changes)
         if not self.summary:
             if self.version == 1:
                 self.summary = "{} created the initial release".format(
                     self.owner)
             else:
                 self.summary = "{} changed nothing".format(self.owner)
     super(Release, self).save(*args, **kwargs)
コード例 #2
0
ファイル: models.py プロジェクト: jamtur01/deis
 def save(self, *args, **kwargs):  # noqa
     if not self.summary:
         self.summary = ''
         prev_release = self.previous()
         # compare this build to the previous build
         old_build = prev_release.build if prev_release else None
         old_config = prev_release.config if prev_release else None
         old_limit = prev_release.config.limit if prev_release else None
         # if the build changed, log it and who pushed it
         if self.version == 1:
             self.summary += "{} created initial release".format(self.app.owner)
         elif self.build != old_build:
             if self.build.sha:
                 self.summary += "{} deployed {}".format(self.build.owner, self.build.sha[:7])
             else:
                 self.summary += "{} deployed {}".format(self.build.owner, self.build.image)
         # if the config data changed, log the dict diff
         if self.config != old_config:
             dict1 = self.config.values
             dict2 = old_config.values if old_config else {}
             diff = dict_diff(dict1, dict2)
             # try to be as succinct as possible
             added = ', '.join(k for k in diff.get('added', {}))
             added = 'added ' + added if added else ''
             changed = ', '.join(k for k in diff.get('changed', {}))
             changed = 'changed ' + changed if changed else ''
             deleted = ', '.join(k for k in diff.get('deleted', {}))
             deleted = 'deleted ' + deleted if deleted else ''
             changes = ', '.join(i for i in (added, changed, deleted) if i)
             if changes:
                 if self.summary:
                     self.summary += ' and '
                 self.summary += "{} {}".format(self.config.owner, changes)
         # if the limit changes, log the dict diff
         if self.config.limit != old_limit:
             changes = []
             old_mem = old_limit.memory if old_limit else {}
             diff = dict_diff(self.config.limit.memory, old_mem)
             if diff.get('added') or diff.get('changed') or diff.get('deleted'):
                 changes.append('memory')
             old_cpu = old_limit.cpu if old_limit else {}
             diff = dict_diff(self.config.limit.cpu, old_cpu)
             if diff.get('added') or diff.get('changed') or diff.get('deleted'):
                 changes.append('cpu')
             if changes:
                 changes = 'changed limits for '+', '.join(changes)
                 self.summary += "{} {}".format(self.config.owner, changes)
         if not self.summary:
             if self.version == 1:
                 self.summary = "{} created the initial release".format(self.owner)
             else:
                 self.summary = "{} changed nothing".format(self.owner)
     super(Release, self).save(*args, **kwargs)
コード例 #3
0
 def save(self, *args, **kwargs):
     if not self.summary:
         self.summary = ''
         prev_release = self.previous()
         # compare this build to the previous build
         old_build = prev_release.build if prev_release else None
         # if the build changed, log it and who pushed it
         if self.build != old_build:
             self.summary += "{} deployed {}".format(self.build.owner, self.build.image)
         # compare this config to the previous config
         old_config = prev_release.config if prev_release else None
         # if the config data changed, log the dict diff
         if self.config != old_config:
             dict1 = self.config.values
             dict2 = old_config.values if old_config else {}
             diff = dict_diff(dict1, dict2)
             # try to be as succinct as possible
             added = ', '.join(k for k in diff.get('added', {}))
             added = 'added ' + added if added else ''
             changed = ', '.join(k for k in diff.get('changed', {}))
             changed = 'changed ' + changed if changed else ''
             deleted = ', '.join(k for k in diff.get('deleted', {}))
             deleted = 'deleted ' + deleted if deleted else ''
             changes = ', '.join(i for i in (added, changed, deleted) if i)
             if changes:
                 if self.summary:
                     self.summary += ' and '
                 self.summary += "{} {}".format(self.config.owner, changes)
             if not self.summary:
                 if self.version == 1:
                     self.summary = "{} created the initial release".format(self.owner)
                 else:
                     self.summary = "{} changed nothing".format(self.owner)
     super(Release, self).save(*args, **kwargs)
コード例 #4
0
    def diff(self, other, display_only=False):
        if not isinstance(other, MBSObject):
            raise Exception("Cannot diff against a non mbs object")

        my_dict = self.to_document(display_only=display_only)
        other_dict = other.to_document(display_only=display_only)
        return utils.dict_diff(my_dict, other_dict)
コード例 #5
0
    def diff(self, other, display_only=False):
        if not isinstance(other, MBSObject):
            raise Exception("Cannot diff against a non mbs object")

        my_dict = self.to_document(display_only=display_only)
        other_dict = other.to_document(display_only=display_only)
        return utils.dict_diff(my_dict, other_dict)
コード例 #6
0
ファイル: models.py プロジェクト: bdemers/deis
 def save(self, *args, **kwargs):  # noqa
     if not self.summary:
         self.summary = ""
         prev_release = self.previous()
         # compare this build to the previous build
         old_build = prev_release.build if prev_release else None
         old_config = prev_release.config if prev_release else None
         # if the build changed, log it and who pushed it
         if self.version == 1:
             self.summary += "{} created initial release".format(self.app.owner)
         elif self.build != old_build:
             if self.build.sha:
                 self.summary += "{} deployed {}".format(self.build.owner, self.build.sha[:7])
             else:
                 self.summary += "{} deployed {}".format(self.build.owner, self.build.image)
         # if the config data changed, log the dict diff
         if self.config != old_config:
             dict1 = self.config.values
             dict2 = old_config.values if old_config else {}
             diff = dict_diff(dict1, dict2)
             # try to be as succinct as possible
             added = ", ".join(k for k in diff.get("added", {}))
             added = "added " + added if added else ""
             changed = ", ".join(k for k in diff.get("changed", {}))
             changed = "changed " + changed if changed else ""
             deleted = ", ".join(k for k in diff.get("deleted", {}))
             deleted = "deleted " + deleted if deleted else ""
             changes = ", ".join(i for i in (added, changed, deleted) if i)
             if changes:
                 if self.summary:
                     self.summary += " and "
                 self.summary += "{} {}".format(self.config.owner, changes)
             # if the limits changed (memory or cpu), log the dict diff
             changes = []
             old_mem = old_config.memory if old_config else {}
             diff = dict_diff(self.config.memory, old_mem)
             if diff.get("added") or diff.get("changed") or diff.get("deleted"):
                 changes.append("memory")
             old_cpu = old_config.cpu if old_config else {}
             diff = dict_diff(self.config.cpu, old_cpu)
             if diff.get("added") or diff.get("changed") or diff.get("deleted"):
                 changes.append("cpu")
             if changes:
                 changes = "changed limits for " + ", ".join(changes)
                 self.summary += "{} {}".format(self.config.owner, changes)
             # if the tags changed, log the dict diff
             changes = []
             old_tags = old_config.tags if old_config else {}
             diff = dict_diff(self.config.tags, old_tags)
             # try to be as succinct as possible
             added = ", ".join(k for k in diff.get("added", {}))
             added = "added tag " + added if added else ""
             changed = ", ".join(k for k in diff.get("changed", {}))
             changed = "changed tag " + changed if changed else ""
             deleted = ", ".join(k for k in diff.get("deleted", {}))
             deleted = "deleted tag " + deleted if deleted else ""
             changes = ", ".join(i for i in (added, changed, deleted) if i)
             if changes:
                 if self.summary:
                     self.summary += " and "
                 self.summary += "{} {}".format(self.config.owner, changes)
         if not self.summary:
             if self.version == 1:
                 self.summary = "{} created the initial release".format(self.owner)
             else:
                 self.summary = "{} changed nothing".format(self.owner)
     super(Release, self).save(*args, **kwargs)