Exemple #1
0
 def perform(self, dryrun=False):
     """ Perform the release: push source, deploy artifacts and upload
     packages."""
     cwd = os.getcwd()
     marketplaces_skipped = []
     for marketplace in self.get_packages_list():
         log("")
         if self.mp_config.has_option(marketplace, "skip"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace,
                                 self.mp_config.get(marketplace, "skip")))
             marketplaces_skipped.append(marketplace)
             upgrade_only = True
         else:
             upgrade_only = False
         if not self.mp_config.getboolean(marketplace, "prepared"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared"))
             continue
         if self.mp_config.getboolean(marketplace, "performed"):
             log("Skipped '%s' (%s)" % (marketplace, "Already performed"))
             continue
         try:
             if upgrade_only:
                 log("Upgrade skipped %s..." % marketplace)
             else:
                 log("Perform %s" % marketplace)
             os.chdir(os.path.join(self.repo.mp_dir, marketplace))
             mp_repo = Repository(os.getcwd(), self.alias)
             # Perform release
             (_, branch, tag, next_snapshot, maintenance_version, is_final,
              skipTests, skipITs, _, other_versions,
              _, _) = Release.read_release_log(mp_repo.basedir)
             mp_release = Release(mp_repo, branch, tag, next_snapshot,
                                  maintenance_version, is_final=is_final,
                                  skipTests=skipTests, skipITs=skipITs,
                                  other_versions=other_versions)
             mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only)
             performed = True
         except Exception, e:
             stack = traceback.format_exc()
             if hasattr(e, 'message') and e.message is not None:
                 stack = e.message + "\n" + stack
             log("[ERROR] %s" % stack)
             performed = False
             stack = stack.replace("%", "%%")
             self.mp_config.set(marketplace, "skip", "Failed! %s" % stack)
         self.mp_config.set(marketplace, "performed", str(performed))
         self.repo.save_mp_config(self.mp_config)
         if performed and not upgrade_only:
             # Upload on Connect
             for dirpath, _, filenames in os.walk(mp_repo.basedir):
                 for name in filenames:
                     path = os.path.join(dirpath, name)
                     if (os.path.isfile(path) and
                         fnmatch.fnmatch(path[len(mp_repo.basedir) + 1:],
                         self.mp_config.get(marketplace, "mp_to_upload"))):
                         self.upload(CONNECT_PROD_URL, path, dryrun=dryrun)
                         self.mp_config.set(marketplace, "uploaded",
                                            CONNECT_PROD_URL + ": " + path)
                         self.repo.save_mp_config(self.mp_config)
Exemple #2
0
 def perform(self, dryrun=False):
     """ Perform the release: push source, deploy artifacts and upload
     packages."""
     cwd = os.getcwd()
     marketplaces_skipped = []
     for marketplace in self.get_packages_list():
         log("")
         if self.mp_config.has_option(marketplace, "skip"):
             log("[WARN] Skipped '%s' (%s)" %
                 (marketplace, self.mp_config.get(marketplace, "skip")))
             marketplaces_skipped.append(marketplace)
             upgrade_only = True
         else:
             upgrade_only = False
         if not self.mp_config.getboolean(marketplace, "prepared"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared"))
             continue
         if self.mp_config.getboolean(marketplace, "performed"):
             log("Skipped '%s' (%s)" % (marketplace, "Already performed"))
             continue
         try:
             if upgrade_only:
                 log("Upgrade skipped %s..." % marketplace)
             else:
                 log("Perform %s" % marketplace)
             os.chdir(os.path.join(self.repo.mp_dir, marketplace))
             mp_repo = Repository(os.getcwd(), self.alias)
             # Perform release
             (_, branch, tag, next_snapshot, maintenance_version, is_final,
              skipTests, skipITs, _, other_versions, _,
              _) = Release.read_release_log(mp_repo.basedir)
             mp_release = Release(mp_repo,
                                  branch,
                                  tag,
                                  next_snapshot,
                                  maintenance_version,
                                  is_final=is_final,
                                  skipTests=skipTests,
                                  skipITs=skipITs,
                                  other_versions=other_versions)
             mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only)
             performed = True
         except Exception, e:
             stack = traceback.format_exc()
             if hasattr(e, 'message') and e.message is not None:
                 stack = e.message + "\n" + stack
             log("[ERROR] %s" % stack)
             performed = False
             stack = stack.replace("%", "%%")
             self.mp_config.set(marketplace, "skip", "Failed! %s" % stack)
         self.mp_config.set(marketplace, "performed", str(performed))
         self.repo.save_mp_config(self.mp_config)
         if performed and not upgrade_only:
             self.upload(CONNECT_PROD_URL, marketplace, dryrun=dryrun)
Exemple #3
0
 def perform(self, dryrun=False):
     """ Perform the release: push source, deploy artifacts and upload
     packages."""
     cwd = os.getcwd()
     marketplaces_skipped = []
     for marketplace in self.get_packages_list():
         log("")
         if self.mp_config.has_option(marketplace, "skip"):
             log("[WARN] Skipped '%s' (%s)" %
                 (marketplace, self.mp_config.get(marketplace, "skip")))
             marketplaces_skipped.append(marketplace)
             upgrade_only = True
         else:
             upgrade_only = False
         if not self.mp_config.getboolean(marketplace, "prepared"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared"))
             continue
         if self.mp_config.getboolean(marketplace, "performed"):
             log("Skipped '%s' (%s)" % (marketplace, "Already performed"))
             continue
         try:
             if upgrade_only:
                 log("Upgrade skipped %s..." % marketplace)
             else:
                 log("Perform %s" % marketplace)
             os.chdir(os.path.join(self.repo.mp_dir, marketplace))
             mp_repo = Repository(os.getcwd(), self.alias)
             # Perform release
             release_info = ReleaseInfo()
             release_info.read_release_log(
                 ReleaseInfo.get_release_log(mp_repo.basedir))
             mp_release = Release(mp_repo, release_info)
             mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only)
             performed = True
         except Exception, e:
             stack = traceback.format_exc()
             if hasattr(e, 'message') and e.message is not None:
                 stack = e.message + "\n" + stack
             log("[ERROR] %s" % stack)
             performed = False
             stack = stack.replace("%", "%%")
             self.mp_config.set(marketplace, "skip", "Failed! %s" % stack)
         self.mp_config.set(marketplace, "performed", str(performed))
         self.repo.save_mp_config(self.mp_config)
         if performed and not upgrade_only:
             owner = None
             if self.mp_config.has_option(marketplace, "owner"):
                 owner = self.mp_config.get(marketplace, "owner")
             creds = ":".join(self.nos_credentials().prod)
             self.upload(creds,
                         CONNECT_PROD_URL,
                         marketplace,
                         dryrun=dryrun,
                         owner=owner)
Exemple #4
0
 def perform(self):
     """ Perform the release: push source, deploy artifacts and upload
     packages."""
     cwd = os.getcwd()
     marketplaces = self.mp_config.sections()
     if self.restart_from:
         idx = marketplaces.index(self.restart_from)
         marketplaces = marketplaces[idx:]
     for marketplace in marketplaces:
         if self.mp_config.has_option(marketplace, "skip"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace,
                                 self.mp_config.get(marketplace, "skip")))
             continue
         if not self.mp_config.getboolean(marketplace, "prepared"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared"))
             continue
         if self.mp_config.getboolean(marketplace, "performed"):
             log("Skipped '%s' (%s)" % (marketplace, "Already performed"))
             continue
         try:
             log("Perform %s" % marketplace)
             os.chdir(os.path.join(self.repo.mp_dir, marketplace))
             mp_repo = Repository(os.getcwd(), self.alias)
             # Perform release
             (_, branch, tag, next_snapshot, maintenance_version, is_final,
              skipTests, _, other_versions,
              _, _) = Release.read_release_log(mp_repo.basedir)
             mp_release = Release(mp_repo, branch, tag, next_snapshot,
                                  maintenance_version, is_final=is_final,
                                  skipTests=skipTests,
                                  other_versions=other_versions)
             mp_release.perform()
             performed = True
         except:
             stack = traceback.format_exc()
             log("[ERROR] %s" % stack)
             performed = False
             self.mp_config.set(marketplace, "skip", "Failed! %s" % stack)
         self.mp_config.set(marketplace, "performed", performed)
         self.repo.save_mp_config(self.mp_config)
         if performed:
             # Upload on Connect
             for dirpath, _, filenames in os.walk(mp_repo.basedir):
                 for name in filenames:
                     path = os.path.join(dirpath, name)
                     if (os.path.isfile(path) and
                         fnmatch.fnmatch(path[len(mp_repo.basedir) + 1:],
                         self.mp_config.get(marketplace, "mp_to_upload"))):
                         self.upload(CONNECT_PROD_URL, path)
                         self.mp_config.set(marketplace, "uploaded",
                                            CONNECT_PROD_URL + ": " + path)
                         self.repo.save_mp_config(self.mp_config)
     os.chdir(cwd)
Exemple #5
0
 def perform(self, dryrun=False):
     """ Perform the release: push source, deploy artifacts and upload
     packages."""
     cwd = os.getcwd()
     marketplaces_skipped = []
     for marketplace in self.get_packages_list():
         log("")
         if self.mp_config.has_option(marketplace, "skip"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace, self.mp_config.get(marketplace, "skip")))
             marketplaces_skipped.append(marketplace)
             upgrade_only = True
         else:
             upgrade_only = False
         if not self.mp_config.getboolean(marketplace, "prepared"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared"))
             continue
         if self.mp_config.getboolean(marketplace, "performed"):
             log("Skipped '%s' (%s)" % (marketplace, "Already performed"))
             continue
         try:
             if upgrade_only:
                 log("Upgrade skipped %s..." % marketplace)
             else:
                 log("Perform %s" % marketplace)
             os.chdir(os.path.join(self.repo.mp_dir, marketplace))
             mp_repo = Repository(os.getcwd(), self.alias)
             # Perform release
             release_info = ReleaseInfo()
             release_info.read_release_log(ReleaseInfo.get_release_log(mp_repo.basedir))
             mp_release = Release(mp_repo, release_info)
             mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only)
             performed = True
         except Exception, e:
             stack = traceback.format_exc()
             if hasattr(e, 'message') and e.message is not None:
                 stack = e.message + "\n" + stack
             log("[ERROR] %s" % stack)
             performed = False
             stack = stack.replace("%", "%%")
             self.mp_config.set(marketplace, "skip", "Failed! %s" % stack)
         self.mp_config.set(marketplace, "performed", str(performed))
         self.repo.save_mp_config(self.mp_config)
         if performed and not upgrade_only:
             owner = None
             if self.mp_config.has_option(marketplace, "owner"):
                 owner = self.mp_config.get(marketplace, "owner")
             self.upload(CONNECT_PROD_URL, marketplace, dryrun=dryrun, owner=owner)
Exemple #6
0
 def perform(self, dryrun=False):
     """ Perform the release: push source, deploy artifacts and upload
     packages."""
     cwd = os.getcwd()
     marketplaces = self.mp_config.sections()
     marketplaces_skipped = []
     if self.restart_from:
         idx = marketplaces.index(self.restart_from)
         marketplaces = marketplaces[idx:]
     for marketplace in marketplaces:
         log("")
         if self.mp_config.has_option(marketplace, "skip"):
             log("[WARN] Skipped '%s' (%s)" %
                 (marketplace, self.mp_config.get(marketplace, "skip")))
             marketplaces_skipped.append(marketplace)
             upgrade_only = True
         else:
             upgrade_only = False
         if not self.mp_config.getboolean(marketplace, "prepared"):
             log("[WARN] Skipped '%s' (%s)" % (marketplace, "Not prepared"))
             continue
         if self.mp_config.getboolean(marketplace, "performed"):
             log("Skipped '%s' (%s)" % (marketplace, "Already performed"))
             continue
         try:
             if upgrade_only:
                 log("Upgrade skipped %s..." % marketplace)
             else:
                 log("Perform %s" % marketplace)
             os.chdir(os.path.join(self.repo.mp_dir, marketplace))
             mp_repo = Repository(os.getcwd(), self.alias)
             # Perform release
             (_, branch, tag, next_snapshot, maintenance_version, is_final,
              skipTests, skipITs, _, other_versions, _,
              _) = Release.read_release_log(mp_repo.basedir)
             mp_release = Release(mp_repo,
                                  branch,
                                  tag,
                                  next_snapshot,
                                  maintenance_version,
                                  is_final=is_final,
                                  skipTests=skipTests,
                                  skipITs=skipITs,
                                  other_versions=other_versions)
             mp_release.perform(dryrun=dryrun, upgrade_only=upgrade_only)
             performed = True
         except Exception, e:
             stack = traceback.format_exc()
             if hasattr(e, 'message') and e.message is not None:
                 stack = e.message + "\n" + stack
             log("[ERROR] %s" % stack)
             performed = False
             stack = stack.replace("%", "%%")
             self.mp_config.set(marketplace, "skip", "Failed! %s" % stack)
         self.mp_config.set(marketplace, "performed", str(performed))
         self.repo.save_mp_config(self.mp_config)
         if performed and not upgrade_only:
             # Upload on Connect
             for dirpath, _, filenames in os.walk(mp_repo.basedir):
                 for name in filenames:
                     path = os.path.join(dirpath, name)
                     if (os.path.isfile(path) and fnmatch.fnmatch(
                             path[len(mp_repo.basedir) + 1:],
                             self.mp_config.get(marketplace,
                                                "mp_to_upload"))):
                         self.upload(CONNECT_PROD_URL, path, dryrun=dryrun)
                         self.mp_config.set(marketplace, "uploaded",
                                            CONNECT_PROD_URL + ": " + path)
                         self.repo.save_mp_config(self.mp_config)