Esempio n. 1
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='3d2db4a87f86')
    upd.print_log('Make HostingPanel role internal...')
    role = Role.filter(Role.rolename == 'HostingPanel').one()
    role.internal = True
    role.save()
Esempio n. 2
0
def upgrade(upd, with_testing, *args, **kwargs):
    #00109_update.py
    upd.print_log('Update system settings scheme...')
    helpers.upgrade_db()

    redis = ConnectionPool.get_connection()
    old_settings = SystemSettings.get_all()

    # backup for downgrade
    if not redis.get('old_system_settings'):
        redis.set('old_system_settings',
                  json.dumps(old_settings),
                  ex=int(timedelta(days=7).total_seconds()))

    SystemSettings.query.delete()
    add_system_settings()
    for param in old_settings:
        SystemSettings.set_by_name(param.get('name'),
                                   param.get('value'),
                                   commit=False)
    db.session.commit()

    #00111_update.py
    helpers.restart_master_kubernetes()

    #00113_update.py
    upd.print_log('Adding "count_type" column to packages...')
    helpers.upgrade_db(revision='42b36be03945')
Esempio n. 3
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Add PersistentDisk model.')
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='56f9182bf415')

    upd.print_log('Populate db...')
    drives = []
    if CEPH:
        drives.extend(CephStorage().get())
    if AWS:
        drives.extend(AmazonStorage().get())
    if not drives:
        return

    pods_by_drives = get_pods_by_drives()
    for drive in drives:
        owner = User.filter_by(username=drive['owner']).one()
        pod = pods_by_drives.get(drive['drive_name'])
        pd = PersistentDisk(id=drive['id'],
                            drive_name=drive['drive_name'],
                            name=drive['name'],
                            owner=owner,
                            size=drive['size'],
                            pod=pod)
        db.session.add(pd)
    db.session.commit()
Esempio n. 4
0
def upgrade(upd, with_testing, *args, **kwargs):
    helpers.upgrade_db()
    # 00077_update.py
    upd.print_log('Clear cache...')
    from kubedock.core import ConnectionPool
    redis = ConnectionPool.get_connection()
    redis.delete('KDCOLLECTION')
    # 00081_update.py
    upd.print_log('Fix urls in main menu...')
    for item in MenuItem.query.all():
        if item.path:
            item.path = item.path.replace('/', '#', 1).rstrip('/')
    db.session.commit()
Esempio n. 5
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='5173b3f01db4')

    upd.print_log('Clear pod configs from old api...')
    for pod in Pod.query.all():
        conf = json.loads(pod.config)
        try:
            del conf['save_only']
        except KeyError:
            pass
        pod.config = json.dumps(conf)
    upd.print_log('Done.')
Esempio n. 6
0
def upgrade(upd, with_testing, *args, **kwargs):
    _upgrade_k8s_master(upd, with_testing)
    service, res = helpers.restart_master_kubernetes()
    if res != 0:
        raise helpers.UpgradeError('Failed to restart {0}. {1}'
                                   .format(service, res))

    _upgrade_etcd(upd)

    # Restart KD to make sure new libs are running
    res = helpers.restart_service(settings.KUBERDOCK_SERVICE)
    if res != 0:
        raise helpers.UpgradeError('Failed to restart KuberDock')

    helpers.upgrade_db()
    _update_pv_mount_paths(upd)
Esempio n. 7
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db()

    # 00103_update.py
    upd.print_log('Enabling restart for ntpd.service on master')
    local('mkdir -p ' + SERVICE_DIR)
    local('echo -e "' + OVERRIDE_CONF + '" > ' + OVERRIDE_FILE)
    local('systemctl daemon-reload')
    local('systemctl restart ntpd')

    # 00104_update.py
    upd.print_log('Restart pods with persistent storage')
    pc = PodCollection()
    pods = Pod.query.with_entities(Pod.id).filter(Pod.persistent_disks).all()
    for pod_id in pods:
        p = pc._get_by_id(pod_id[0])
        if p.status == POD_STATUSES.running:
            pc._stop_pod(p)
            pc._collection.pop((pod_id[0], pod_id[0]))
            pc._merge()
            p = pc._get_by_id(pod_id[0])
            pc._start_pod(p)

    # 00105_update.py
    upd.print_log('Add roles {}, resources {} and its permissions...'.format(
        ROLES, RESOURCES))
    fixtures.add_permissions(roles=ROLES,
                             resources=RESOURCES,
                             permissions=PERMISSIONS)
    upd.print_log('Add MenuRoles...')
    PAUserRole = Role.query.filter(Role.rolename == 'LimitedUser').first()
    for menu_role in Role.query.filter(
            Role.rolename == 'User').first().menus_assocs:
        db.session.add(
            MenuItemRole(role=PAUserRole, menuitem_id=menu_role.menuitem_id))
    db.session.commit()

    # Fixes for celery workers launching
    upd.print_log('Updating uwsgi configuration ...')
    local('test -f "{0}" && cp "{0}" "{1}"'.format(UWSGI_KUBERDOCK_INI_DEST,
                                                   SAVE_KUBERDOCK_INI))
    local('cp "{0}" "{1}"'.format(UWSGI_KUBERDOCK_INI_SOURCE,
                                  UWSGI_KUBERDOCK_INI_DEST))
    local('chmod 644 "{0}"'.format(UWSGI_KUBERDOCK_INI_DEST))
Esempio n. 8
0
def upgrade(upd, with_testing, *args, **kwargs):
    # 00090_update.py
    upd.print_log('Update system settings scheme...')
    helpers.upgrade_db()

    redis = ConnectionPool.get_connection()

    billing_apps_link = SystemSettings.get_by_name('billing_apps_link')
    persitent_disk_max_size = SystemSettings.get_by_name('persitent_disk_max_size')

    # backup for downgrade
    if not redis.get('old_billing_apps_link'):
        redis.set('old_billing_apps_link', billing_apps_link or '',
                  ex=int(timedelta(days=7).total_seconds()))
    if not redis.get('old_persitent_disk_max_size'):
        redis.set('old_persitent_disk_max_size', persitent_disk_max_size,
                  ex=int(timedelta(days=7).total_seconds()))

    billing_url = (urlparse(billing_apps_link)._replace(path='', query='',
                                                        params='').geturl()
                   if billing_apps_link else None)
    SystemSettings.query.delete()
    add_system_settings()
    SystemSettings.set_by_name(
        'persitent_disk_max_size', persitent_disk_max_size, commit=False)
    SystemSettings.set_by_name('billing_url', billing_url, commit=False)
    db.session.commit()

    # 00094_update.py
    upd.print_log('Drop table "node_missed_actions" if exists')
    table = Table('node_missed_actions', db.metadata)
    table.drop(bind=db.engine, checkfirst=True)
    db.session.commit()

    # 00095_update.py
    upd.print_log('Restart k8s2etcd service')
    upd.print_log(helpers.local('systemctl restart kuberdock-k8s2etcd'))

    # 00098_update.py
    copyfile('/var/opt/kuberdock/conf/sudoers-nginx.conf', '/etc/sudoers.d/nginx')
    local('chown nginx:nginx /etc/nginx/conf.d/shared-kubernetes.conf')
    local('chown nginx:nginx /etc/nginx/conf.d/shared-etcd.conf')

    helpers.close_all_sessions()
Esempio n. 9
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading DB...')
    helpers.upgrade_db()

    # 00116
    upd.print_log('Add system settings for CPU and Memory multipliers')
    db.session.add_all([
        SystemSettings(name='cpu_multiplier',
                       value=CPU_MULTIPLIER,
                       label='CPU multiplier',
                       description='Cluster CPU multiplier',
                       placeholder='Enter value for CPU multiplier'),
        SystemSettings(name='memory_multiplier',
                       value=MEMORY_MULTIPLIER,
                       label='Memory multiplier',
                       description='Cluster Memory multiplier',
                       placeholder='Enter value for Memory multiplier'),
    ])

    upd.print_log('Create table for NodeAction model if not exists')
    NodeAction.__table__.create(bind=db.engine, checkfirst=True)
    db.session.commit()

    # 00117
    upd.print_log('Update permissions...')
    Permission.query.delete()
    Resource.query.delete()
    add_permissions()
    db.session.commit()

    # Fix wrong pd_states if exists.
    wrong_states = db.session.query(PersistentDiskState).join(
        PersistentDisk,
        db.and_(
            PersistentDisk.name == PersistentDiskState.pd_name,
            PersistentDisk.owner_id == PersistentDiskState.user_id,
            PersistentDisk.state == PersistentDiskStatuses.DELETED)).filter(
                PersistentDiskState.end_time == None)
    for state in wrong_states:
        state.end_time = datetime.datetime.utcnow()
    db.session.commit()

    helpers.close_all_sessions()
Esempio n. 10
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Add MenuItemRole model.')
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='241a7b04a9ff')
    admin = Role.filter(Role.rolename == 'Admin').first()
    trialuser = Role.filter(Role.rolename == 'TrialUser').first()
    user = Role.filter(Role.rolename == 'User').first()
    menu_pods = MenuItem.filter(MenuItem.name == 'Pods').first()
    menu_publicip = MenuItem.filter(MenuItem.name == 'Public IPs').first()
    menu_pv = MenuItem.filter(MenuItem.name == 'Persistent volumes').first()
    menu_nodes = MenuItem.filter(MenuItem.name == 'Nodes').first()
    menu_papps = MenuItem.filter(
        MenuItem.name == 'Predefined Applications').first()
    menu_settings = MenuItem.filter(MenuItem.name == 'Settings').first()
    menu_adm = MenuItem.filter(MenuItem.name == 'Administration').first()
    menu_users = MenuItem.filter(MenuItem.name == 'Users').first()
    menu_ippool = MenuItem.filter(MenuItem.name == 'IP pool').first()
    MenuItemRole.create(menuitem=menu_pods, role=user)
    MenuItemRole.create(menuitem=menu_pods, role=trialuser)
    MenuItemRole.create(menuitem=menu_publicip, role=user)
    MenuItemRole.create(menuitem=menu_publicip, role=trialuser)
    MenuItemRole.create(menuitem=menu_pv, role=user)
    MenuItemRole.create(menuitem=menu_pv, role=trialuser)
    MenuItemRole.create(menuitem=menu_nodes, role=admin)
    MenuItemRole.create(menuitem=menu_papps, role=admin)
    MenuItemRole.create(menuitem=menu_settings, role=admin)
    MenuItemRole.create(menuitem=menu_settings, role=user)
    MenuItemRole.create(menuitem=menu_settings, role=trialuser)
    MenuItemRole.create(menuitem=menu_adm, role=admin)
    MenuItemRole.create(menuitem=menu_users, role=admin)
    MenuItemRole.create(menuitem=menu_ippool, role=admin)

    resource = Resource.filter(Resource.name == 'static_pages').first()
    if resource:
        Permission.filter(Permission.resource == resource).delete()
        resource.delete()
Esempio n. 11
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='312700b6c892')
    db.session.commit()
    db.session.execute('UPDATE predefined_apps set name = id')
    db.session.commit()
Esempio n. 12
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='28b23145af40')
Esempio n. 13
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='79a6e3998d6')
Esempio n. 14
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='1ee2cbff529c')
Esempio n. 15
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='382d3b1e63aa')
Esempio n. 16
0
def _update_00200_upgrade(upd):  # also applies 00196 update migration
    upd.print_log('Upgrading db...')
    helpers.upgrade_db()
Esempio n. 17
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Add permissions to system settings ...')
    add_permissions()
    helpers.upgrade_db(revision='589e137e4b7c')
Esempio n. 18
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='4912523d89cb')
Esempio n. 19
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='3505518f6f4f')

    update_node_ceph_flags()
Esempio n. 20
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='33b1e3a97fb8')
    upd.print_log('Done.')
Esempio n. 21
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='442f26252e67')
Esempio n. 22
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='56ab56a9ac5')
Esempio n. 23
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='144bf08f16b')
Esempio n. 24
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='30bf03408b5e')
Esempio n. 25
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='4fbcae87c090')
Esempio n. 26
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='46b5b819ba35')
Esempio n. 27
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='50e4a32fa6c3')
Esempio n. 28
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='5049471549ba')
Esempio n. 29
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='11bf9b6a89b2')
Esempio n. 30
0
def upgrade(upd, with_testing, *args, **kwargs):
    upd.print_log('Upgrading db...')
    helpers.upgrade_db(revision='299957c24510')