public function work()
 {
     $username = $this->args[0];
     $package_name = $this->args[1];
     $this->out(sprintf('Verifying package uniqueness %s/%s', $username, $package_name));
     $maintainer = $this->getMaintainer($username);
     if (!$maintainer) {
         return false;
     }
     $existing = $this->getExisting($maintainer['Maintainer']['id'], $package_name);
     if ($existing) {
         return false;
     }
     $packageData = new PackageData($username, $package_name, $this->Github);
     $data = $packageData->retrieve();
     if ($data === false) {
         return;
     }
     $data['maintainer_id'] = $maintainer['Maintainer']['id'];
     $this->out('Saving package');
     $this->Maintainer->Package->create();
     $saved = $this->Maintainer->Package->save(array('Package' => $data));
     if (!$saved) {
         return $this->out('Package not saved');
     }
     $this->out('Package saved');
 }
Пример #2
0
 public function setData($data)
 {
     $this->setname($data->ServiceName);
     $this->setDescription($data->ServiceDesc);
     $this->setClassName($data->ServClassName);
     $this->setType($data->ServiceType);
     $this->setUnits($data->Units);
     $this->setRate($data->Rate);
     $this->setRateOverride($data->RateOverride);
     $this->setMinimumServiceDate($data->MinServiceDate);
     if (!empty($data->PackageList->PkgContClass)) {
         $packageList = array();
         foreach ($data->PackageList->PkgContClass as $p) {
             $package = new PackageData();
             $package->setData($p);
             $packageList[] = $package;
         }
         $this->packageList = $packageList;
     } else {
         if (!empty($data->PkgContentList->PkgContent)) {
             /*
              * This handles the fact that subscriber packages dont come listed
              * in their classes.
              */
             // First we organize the content into package classes
             $t_packages_by_class = array();
             foreach ($data->PkgContentList->PkgContent as $pc) {
                 $packageContent = new PackageContentData();
                 $packageContent->setData($pc);
                 $packageContent->setProvisioned(true);
                 $t_packages_by_class[$pc->ContClassName][] = $packageContent;
                 unset($packageContent);
             }
             // Now we can add the packages properly
             $packageList = array();
             foreach ($t_packages_by_class as $class => $content) {
                 $package = new PackageData();
                 $package->setContentClassName($class);
                 $package->setPackageContentList($content);
                 $packageList[] = $package;
             }
             $this->packageList = $packageList;
         }
     }
 }
Пример #3
0
 /**
  * Update Attributes from Github
  *
  * @param array $package
  * @return array
  */
 public function updateAttributes($package, $packageData = null)
 {
     if (!$this->Github) {
         $this->Github = ClassRegistry::init('Github');
     }
     if ($packageData === null) {
         $packageData = new PackageData($package['Maintainer']['username'], $package[$this->alias]['name'], $this->Github);
     }
     $data = $packageData->retrieve();
     if ($data === false) {
         return;
     }
     foreach ($data as $key => $value) {
         if ($value !== null) {
             $package[$this->alias][$key] = $value;
         }
     }
     $packageData = $package[$this->alias];
     unset($packageData['modified']);
     $this->create();
     return $this->save($packageData);
 }
Пример #4
0
 public function __construct($vals = null)
 {
     if (!isset(self::$_TSPEC)) {
         self::$_TSPEC = array(1 => array('var' => 'pid', 'type' => TType::I32), 2 => array('var' => 'name', 'type' => TType::STRING), 3 => array('var' => 'folder', 'type' => TType::STRING), 4 => array('var' => 'site', 'type' => TType::STRING), 5 => array('var' => 'password', 'type' => TType::STRING), 6 => array('var' => 'dest', 'type' => TType::I32), 7 => array('var' => 'order', 'type' => TType::I16), 8 => array('var' => 'priority', 'type' => TType::BYTE), 9 => array('var' => 'links', 'type' => TType::LST, 'etype' => TType::STRUCT, 'elem' => array('type' => TType::STRUCT, 'class' => 'FileData')));
     }
     if (is_array($vals)) {
         if (isset($vals['pid'])) {
             $this->pid = $vals['pid'];
         }
         if (isset($vals['name'])) {
             $this->name = $vals['name'];
         }
         if (isset($vals['folder'])) {
             $this->folder = $vals['folder'];
         }
         if (isset($vals['site'])) {
             $this->site = $vals['site'];
         }
         if (isset($vals['password'])) {
             $this->password = $vals['password'];
         }
         if (isset($vals['dest'])) {
             $this->dest = $vals['dest'];
         }
         if (isset($vals['order'])) {
             $this->order = $vals['order'];
         }
         if (isset($vals['priority'])) {
             $this->priority = $vals['priority'];
         }
         if (isset($vals['links'])) {
             $this->links = $vals['links'];
         }
     }
 }
Пример #5
0
 public function read($input)
 {
     $xfer = 0;
     $fname = null;
     $ftype = 0;
     $fid = 0;
     $xfer += $input->readStructBegin($fname);
     while (true) {
         $xfer += $input->readFieldBegin($fname, $ftype, $fid);
         if ($ftype == TType::STOP) {
             break;
         }
         switch ($fid) {
             case 0:
                 if ($ftype == TType::LST) {
                     $this->success = array();
                     $_size125 = 0;
                     $_etype128 = 0;
                     $xfer += $input->readListBegin($_etype128, $_size125);
                     for ($_i129 = 0; $_i129 < $_size125; ++$_i129) {
                         $elem130 = null;
                         $elem130 = new PackageData();
                         $xfer += $elem130->read($input);
                         $this->success[] = $elem130;
                     }
                     $xfer += $input->readListEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             default:
                 $xfer += $input->skip($ftype);
                 break;
         }
         $xfer += $input->readFieldEnd();
     }
     $xfer += $input->readStructEnd();
     return $xfer;
 }